Я создал новую установку nginx
и php5-fpm
на сервере Ubuntu 14.04 и внес указанные ниже изменения, чтобы конфигурация заработала. Когда я перехожу в каталог, содержащий index.php
или попробуйте перейти к phpinfo.php
файл, браузер пытается загрузить файл (т.е. PHP не обрабатывает файл и не возвращает ответ).
Если я перейду к другим файлам php, например process.php
или test.php
он работает нормально.
обновлено /etc/php5/fpm/pool.d/www.conf
слушать TCP-сокет
listen = 127.0.0.1:9000
файл: /etc/nginx/nginx.conf
user www-data;
worker_processes 4;
pid /run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
gzip_disable "msie6";
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
файл: / etc / nginx / sites-available / default
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /home/user/www;
index index.php index.html index.htm;
autoindex on;
server_name _;
error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
# Try a document root
root /home/user/www
# try_files $uri =404;
#fastcgi_split_path_info ^(.+\.php)(/.+)$;
# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
# With php5-cgi alone:
fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
#fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Когда возникает ошибка (происходит загрузка, а не страница процесса) Ничего не отображается
когда tail -f
'файлы журнала:
/var/log/php5-fpm.log
/var/log/nginx/error.log
/var/log/nginx/access.log
Что не так с этим конфигом?
Ваш location ~ \.php$
имеет root /home/user/www
, что не нужно, так как тот же root
уже определен на уровне сервера. В определении также отсутствует точка с запятой.
Итак, убираем лишнее root
определение и посмотрите, поможет ли это.
попробуйте поставить линию перемещения
include fastcgi_params;
от последнего до первого в блоке
location ~ \.php$ {
потому что он перезагрузит параметры по умолчанию, поэтому ваш индивидуальный параметр будет заменен