我用c ++编写了一个程序并用gcc编译它(就像fastcgi.com中的示例一样),但我不知道如何在localhost上运行它.
我搜索的每个地方,我发现mod_fcgi的php配置不适用于c ++.
是否有任何机构配置apache和mod_fcgi来运行c ++ Web应用程序???
mod_fcgi?我发现只有mod_fastcgi和mod_fcgid.Apache配置看起来非常简单.让我们编译FastCGI示例并创建一个简约的Apache实例来提供它:
安装libfcgi-dev
在某处创建临时目录并从https://opensource.apple.com/source/FastCGI/FastCGI-4/fcgi/doc/fcgi-devel-kit.htm#S3.1编译示例
当你只是运行它,它已经有一些输出:
$ ./tiny-cgi Content-type: text/htmlFastCGI Hello! FastCGI Hello!
Request number 1 running on host (null)
安装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与其余目录放在同一目录中并不是很好,但这只是一个简单的例子.
跑 sudo /usr/sbin/apache2 -d . -f apache.conf -X
这-X
是针对调试模式,当服务器没有守护进程(不分离)时,这对于这种播放非常方便.
转到http://localhost:8080/tiny-cgi
,您将看到FastCGI程序的输出.如果没有,请参阅error.log
.
停止Apache,安装libapache2-mod-fastcgi,将配置中的两行替换为:
LoadModule fastcgi_module /usr/lib/apache2/modules/mod_fastcgi.so SetHandler fastcgi-script
http://localhost:8080/tiny-cgi
再次访问.