我有两个不同的服务器用于不同的目的。一个是apache2 mpm-event服务器,另一个是nginx 1.2服务器。每个服务器都运行php5-fpm / FCGI。
有什么特别的,就是在nginx服务器上,我读到的教程提到设置cgi.fix_pathinfo = 0,因为这可能是一个安全风险。我这样做了,在那台服务器上,我运行WordPress,PHPBB和其他一些问题没有问题。
然而,在apache2服务器上,我正在运行roundcube和其他一些不太知名的PHP应用程序,这些应用程序遇到致命的PHP错误,这些错误是我在php.ini中设置cgi.fix_pathinfo = 0的结果该服务器上的文件。
我的两个配置在下面,一个用于apache2,另一个用于nginx。在nginx配置中是否有一些东西允许我将cgi.fix_pathinfo设置为0,而我在apache端缺少一些相同的东西?
或者我是幸运的是,我在nginx盒子上运行的软件从来没有使用过PHP PATH全局,而apache2软件呢?
Apache2配置:
<IfModule mod_fastcgi.c>
AddHandler fastcgi-script .fcgi
#FastCgiWrapper /usr/lib/apache2/suexec
FastCgiIpcDir /var/lib/apache2/fastcgi
Alias /php5.fastcgi /var/www/fastcgi/php5.fastcgi
AddHandler php-script .php
FastCGIExternalServer /var/www/fastcgi/php5.fastcgi -socket /var/run/php5-fpm.sock
Action php-script /php5.fastcgi virtual
# This part is not necessary to get it to work, but it stops anything else from being
# accessed from it by mistake or maliciously.
<Directory "/var/www/fastcgi">
Order allow,deny
<Files "php5.fastcgi">
Order deny,allow
</Files>
</Directory>
</IfModule>
nginx config:
# Handle PHP requests
# pass the PHP scripts to FastCGI server listening on the php-fpm socket
location ~ \.php$ {
try_files $uri = 404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
假设是这些:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
但找不到任何apache指南,说明如何连接类似的东西。有什么想法吗?