Я настроил свое новое приложение php 5.6 на новом сервере Ubuntu 16.04, с помощью Nginx 1.10, php5.6-fpm,
Когда я пытался настроить phpmyadmin для открытия его с помощью моего URL приложения "http://myapp.com/pm", это говорит что Доступ запрещен со следующей ошибкой в моем журнале nginx:
2017/05/31 12:39:37 [error] 30267#30267: *9 FastCGI sent in stderr: "Access to the script '/var/www/html' has been denied (see security.limit_extensions)" while reading response header from upstream, client: xxx.xxx.xxx.xx, server: myapp.com, request: "GET /pm HTTP/1.1", upstream: "fastcgi://unix:/run/php/php5.6-fpm.sock:", host: "myapp.com"
Моя конфигурация vhost:
server {
listen 80;
server_name myapp.com;
index index.php index.html index.htm;
root /var/www/myapp/;
access_log /var/log/nginx/myapp_access.log;
error_log /var/log/nginx/myapp_error.log;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location /pm {
root /var/www/html;
index index.php;
try_files $uri $uri/ =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php5.6-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ \.php {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_index index.php;
fastcgi_pass unix:/run/php/php5.6-fpm.sock;
fastcgi_read_timeout 18000;
}
}
И путь phpmyadmin:
ls -l /var/www/html/
total 4
-rw-r--r-- 1 www-data www-data 612 May 24 17:46 index.nginx-debian.html
lrwxrwxrwx 1 www-data www-data 22 May 25 17:01 pm -> /usr/share/phpmyadmin/
Какая-либо справка?
Вот некоторые возможные решения:
- В Вашем php-fpm www.conf безопасность limit_extensions набора к .php или .php5 или безотносительно исков Ваша среда. Для некоторых пользователей, полностью удаляя все значения или устанавливая его на ЛОЖЬ был единственный способ получить его работа.
- В Вашем nginx файле конфигурации устанавливает fastcgi_pass на Ваш адрес сокета (например, unix:/var/run/php-fpm/php-fpm.sock;) вместо Вашего адреса сервера и порта.
- Проверка Ваш SCRIPT_FILENAME fastcgi параметрический усилитель и набор это согласно местоположению Ваших файлов. В Вашем nginx файле конфигурации включают fastcgi_split_path_info ^ (. +. php) (/. $ +); в блоке местоположения, где все другие fastcgi параметрические усилители определяются.
- В Вашем php.ini устанавливает cgi.fix_pathinfo на 1
( Источник )