我有一个使用 fcgi 运行 PHP 5.2.17(由于各种原因,技术和政策,PHP 版本不可协商)的网站。此版本的 PHP 是通过 PHPFarm 安装的,这样我就可以在此服务器上的不同子域上运行其他版本的 PHP。
不幸的是,网站上并非所有页面都能正常工作。我收到一些页面的以下 Apache 错误:
End of script output before headers: php-cgi-5.2.17
您可以查看 phpinfo() 文件这里以供参考。
以下是 /etc/httpd/conf.d/x-pcit-le-ssl.conf 的代码:
<VirtualHost *:443>
ServerName pcit.extensiononline.ucdavis.edu
DocumentRoot /var/www/vhosts/pcit
<Directory "/var/www/vhosts/pcit">
Options +ExecCGI
SSLOptions +StdEnvVars
AddHandler fcgid-script .php
Action php-cgi /php-fcgi/php-cgi-5.2.17
<FilesMatch "\.php$">
SetHandler php-cgi
</FilesMatch>
</Directory>
RewriteEngine on
# Certificate info here #
ErrorLog /var/log/httpd/pcit.error.log
</VirtualHost>
以下是 /var/www/cgi-bin/php-cgi.5.2.17 的代码:
#!/bin/sh
version="5.2.17"
PHPRC=/opt/phpfarm/inst/php-${version}/lib/php.ini
export PHPRC
PHP_FCGI_CHILDREN=3
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=50000
export PHP_FCGI_MAX_REQUESTS
# which php-cgi binary to execute
exec /opt/phpfarm/inst/php-${version}/bin/php-cgi
suexec 已安装。以下是目录列表:
-rwsr-xr-x 1 root apache 14368 Jan 19 08:56 /usr/sbin/suexec*
该服务器正在运行 Amazon Linux AMI,据我了解,它与 RH 7 类似。
我在 Google 上搜索了好几个小时,手指都酸了。我找到了几个处理这个问题的页面,它们似乎表明 fcgi 存在问题,但我不知道如何正确配置它。我找到了mod_fcgid 的 Apache 页面,但似乎没有任何相关内容。
我对这种级别的服务器管理还比较陌生,因此如果有人能提供任何帮助,我将不胜感激。提前致谢。