Это сбило меня с толку. Когда я захожу на домен, он загружает index.php
файл. Когда я захожу на домен / index.php, он работает нормально. Я пытался комментировать тут и там, просто не могу это исправить. Этот Zend Framework 3
, У меня есть другой сайт PHP на том же сервере. Они в порядке. Я начинаю удивляться, что это ZF3 особенный сейчас.
Мой nginx такой:
server {
listen 80;
server_name xxx.xxx.com;
index index.php index.html;
root /data/www/xxx/public;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /data/www/xxx/public/index.php;
}
access_log logs/worth.jusfeel.cn.log main;
}
Я пробовал и другие настройки. Это то же самое. URL в адресной строке изменится на ..domain/index.php
, но все же скачать index.php
файл.
server {
listen 80;
server_name www.example.com;
root /var/www/www.example.com/myapplication;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Загрузка index.php
file означает, что nginx не использует php-fpm для обработки файла. Наиболее распространенная причина этой ситуации — неправильная настройка между nginx и php-fpm.
Контрольный список:
php.ini
, Это обеспечивает реальный PATH_INFO
/PATH_TRANSLATED
поддержка CGI и она включена (1)
по умолчанию.public
каталог вашего приложения ZF3. В этом случае вам может понадобиться заменить его /var/www/www.example.com/myapplication
в /var/www/www.example.com/myapplication/public
location ~ \.php$ { }
блокировать, так как все запросы PHP обрабатываются index.php
, Эта директива определяет регулярное выражение, которое фиксирует значение для nginx $fastcgi_path_info
переменная.Например:
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Надеюсь, поможет.
Других решений пока нет …