Разрешения сокета PHP-FPM

Разрешения сокета PHP-FPM

Прежде всего, я искал везде и все проверял, но все равно не работает. Я устанавливаю 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

  1. Это действительно то место, где находятся ваши файлы?

    root /usr/share/nginx/html;
    index index.html index.htm index.php;
    
  2. Что должен делать этот блок?

      upstream php {
            server unix:/var/run/php5-fpm.socket;
      }
    
  3. Я бы предложил удалить try_files $uri =404;из location ~ \.php$блока.

  4. Почему отступы строк в 2 и 3 отличаются от остальных? Обратите внимание, что это повлияет на правильную конфигурацию, но это оставляет впечатление, что они были небрежно склеены. Пожалуйста, предоставьте ссылку на инструкции, которые вы использовали.

решение2

Можешь попробоватьEasyEngineкоторый может настроить веб-сервер с помощью одной команды

Документы/вики:https://github.com/rtCamp/easyengine/wiki

Как настроить:http://www.unixmen.com/easyengine-auto-installer-script-managing-wordpress-nginx-websites-ubuntu-debian/

Связанный контент