Прежде всего, я искал везде и все проверял, но все равно не работает. Я устанавливаю php5-fpm
и nginx
. Когда я открываю localhost
в браузере, я вижу эту страницу :
Welcome to nginx!
Итак, теперь все работает, настраиваем php5-fpm с nginx /etc/php5/fpm/pool.d/www.conf
:
user = www-data
group = www-data
listen = /var/run/php5-fpm.sock
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
chdir = /
Все остальные строки закомментированы, вот конфигурация nginx:
upstream php {
server unix:/var/run/php5-fpm.socket;
}
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.html index.htm index.php;
# Make site accessible from http://localhost/
server_name localhost;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
# Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests
#location /RequestDenied {
# proxy_pass http://127.0.0.1:8080;
#}
#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;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# allow all;
#}
}
Проблема в том, что когда я пытаюсь запустить .php
файлы, они nginx
загружаются .php
, а не выполняются.
решение1
Разрешения сокета PHP-FPM
Проверьте, имеет ли сокет соответствующие разрешения.
$ ll /var/run/php5-fpm.sock
srw-rw---- 1 www-data www-data 0 Aug 6 14:16 /var/run/php5-fpm.sock=
Вероятно, добавьте listen.mode = 0660
к своему www.conf
, если вывод отличается.
Возможно связано:Ошибка nginx. Не удалось подключиться к php5-fpm.sock (13: Отказано в доступе)
конфигурация nginx
Это действительно то место, где находятся ваши файлы?
root /usr/share/nginx/html; index index.html index.htm index.php;
Что должен делать этот блок?
upstream php { server unix:/var/run/php5-fpm.socket; }
Я бы предложил удалить
try_files $uri =404;
изlocation ~ \.php$
блока.Почему отступы строк в 2 и 3 отличаются от остальных? Обратите внимание, что это повлияет на правильную конфигурацию, но это оставляет впечатление, что они были небрежно склеены. Пожалуйста, предоставьте ссылку на инструкции, которые вы использовали.
решение2
Можешь попробоватьEasyEngineкоторый может настроить веб-сервер с помощью одной команды
Документы/вики:https://github.com/rtCamp/easyengine/wiki
Как настроить:http://www.unixmen.com/easyengine-auto-installer-script-managing-wordpress-nginx-websites-ubuntu-debian/