apache — Почему apache2 + php-fpm требует cgi.fix_pathinfo = 1, а nginx + php-fpm — нет?

У меня есть два разных сервера, работающих в разных целях. Один из них — сервер apache2 mpm-событий, а другой — сервер nginx 1.2. Каждый сервер работает с php5-fpm / FCGI.

Особенность заключается в том, что на сервере nginx, которое я прочитал, упоминается установка cgi.fix_pathinfo = 0, поскольку это может быть угрозой безопасности. Я так и сделал, и на этом сервере я без проблем запускаю WordPress, PHPBB и некоторые другие проблемы.

Однако на сервере apache2 я запускаю roundcube и несколько других менее известных приложений PHP, которые сталкиваются с неустранимыми ошибками PHP, которые являются результатом установки cgi.fix_pathinfo = 0 в моем файле php.ini для этого сервер.

Мои два конфига приведены ниже, один для 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:

    # 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, которое показывает, как подключить что-то подобное. Есть идеи?

3

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector