доступ запрещен на nginx и php

Использование веб-сервера nginx и php. nginx работает, я вижу «Добро пожаловать в nginx!» но я получаю «доступ запрещен» при попытке получить доступ к php-странице. Я также установил php-fastcgi.

Вот мой конфиг по умолчанию nginx:

# 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; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { root /usr/share/nginx/html; fastcgi_index index.php; fastcgi_pass unix:/var/run/php5-fpm.sock; include fastcgi_params; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; include fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # location ~ /\.ht { deny all; } 

Я активировал security.limit_extensions = .php .php3 .php4 .php5 .html и listen = /var/run/php5-fpm.sock в /etc/php-fpm.d/www.conf и cgi.fix_pathinfo = 0 в / и т.д. / php5 / FPM / php.ini

Я перезапустил nginx и php5-fpm.

Спасибо за помощь.

Related of "доступ запрещен на nginx и php"

Сделайте это, когда у вас есть вторичное местоположение

 location / { try_files $uri $uri/ =404; root /path/to/your/www; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } 

Эти 2 параметра – волшебный соус:

 fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 

Пожалуйста, проверьте файл fastcgi_params и соответствующим образом измените его на этот пост https://askubuntu.com/questions/164627/nginx-php-fpm-access-denied-error

Я решил проблему, используя вышеупомянутый метод.

Я знаю некоторые возможные сценарии, когда nginx и php не могут обращаться к файлам:

  1. Скорее всего, процесс php-fpm запускается пользователем, который не имеет разрешения на чтение в соответствующих файлах .php. Это дает простую ошибку Access denied.

  2. Процесс nginx не имеет прав на чтение и перемещение в root каталоге, содержащем файлы сайтов. Это дает 403 Forbidden error.

  3. Процесс php-fpm не может пройти абсолютный путь к root каталогу. Это дает Ошибка File not found .

Поскольку автор упоминает, что проблема возникает только при доступе к php-файлам, я бы сказал, что здесь применяется первый сценарий.

Я считаю, что nginx запускается как один пользователь и php-fpm как другой, только пользователь php-fpm забыл предоставить доступ для чтения.