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

Sas*_*hin 9 c++ apache fastcgi

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

我搜索的每个地方,我发现mod_fcgi的php配置不适用于c ++.

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

Mes*_*ssa 9

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>
    
    Run Code Online (Sandbox Code Playgroud)
  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
    
    Run Code Online (Sandbox Code Playgroud)

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

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

    -X是针对调试模式,当服务器没有守护进程(不分离)时,这对于这种播放非常方便.

  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
    
    Run Code Online (Sandbox Code Playgroud)
  7. http://localhost:8080/tiny-cgi再次访问.