c++ - 如何配置 apache2 和 fastCGI 来运行我的 C++ 应用程序

标签 c++ apache fastcgi

我用 c++ 编写了一个程序并用 gcc 编译了它(就像 fastcgi.com 中的示例),但我不知道如何在 localhost 上运行它。

在我搜索的每一个地方,我发现 mod_fcgi 的 php 配置不起作用 对于 c++。

是否有任何机构配置 apache 和 mod_fcgi 来运行 c++ Web 应用程序???

最佳答案

mod_fcgi?我只找到了 mod_fastcgi 和 mod_fcgid。两者的 Apache 配置看起来都非常简单。让我们编译 FastCGI 示例并创建一个简约的 Apache 实例来服务它:

  1. 安装 libfcgi-dev

  2. 在某处创建临时目录并从 https://opensource.apple.com/source/FastCGI/FastCGI-4/fcgi/doc/fcgi-devel-kit.htm#S3.1 编译示例

    当你简单地运行它时,它已经有一些输出了:

    $ ./tiny-cgi 
    Content-type: text/html
    
    <title>FastCGI Hello!</title><h1>FastCGI Hello!</h1>Request number 1 running on host <i>(null)</i>
    
  3. 安装apache2和libapache2-mod-fcgid;创建配置文件apache.conf:

    User www-data
    Listen 8080
    PidFile apache.pid
    DocumentRoot .
    LoadModule fcgid_module /usr/lib/apache2/modules/mod_fcgid.so
    SetHandler fcgid-script
    Options +ExecCGI
    ErrorLog error.log
    

    用户 www-data 很重要,因为它可以访问 /var/lib/apache2/fcgid/sock/,这对于 fcgid 非常重要(我在 Debian 上运行,可能在其他地方会有所不同)。将 DocumentRoot 与其余部分放在同一目录中并不是很好,但这只是一个简单的示例。

  4. 运行 sudo/usr/sbin/apache2 -d 。 -f apache.conf -X

    那个-X是 Debug模式,当服务器不守护(不分离)时,这对于这种播放来说非常方便。

  5. 转到 http://localhost:8080/tiny-cgi,您将在其中看到 FastCGI 程序的输出。如果没有,请参阅 error.log

  6. 停止Apache,安装libapache2-mod-fastcgi,将配置中的两行替换为:

    LoadModule fastcgi_module /usr/lib/apache2/modules/mod_fastcgi.so
    SetHandler fastcgi-script
    
  7. 再次访问http://localhost:8080/tiny-cgi

关于c++ - 如何配置 apache2 和 fastCGI 来运行我的 C++ 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3781979/

相关文章:

Apache2 和 CGI​​ - 如何防止 Apache 缓冲 POST 数据?

php - 如何让 Apache 服务 index.php 而不是 index.html?

linux - 如何在 CGI Bash 脚本中读取 HTTP header 值

c++ - 创建一个求和函数以仅对 vector 的一部分求和

c++ - protected 数据设计模式

ajax - 如何保护ajax内容

php - 在 Ubuntu 中使用 Foreman 在本地运行 Heroku PHP 项目时权限不正确

Apache .htaccess,url 重写问题

c++ - 从迭代器中获取 const_iterator

c++ - 如何在没有运行时开销的情况下轻松配置类?