12.04 – Nginx / PHP-FPM“访问被拒绝.”错误
作者:互联网
我正在尝试设置一个新安装的Ubuntu(12.04)服务器,但我无法通过php-fpm运行PHP文件.无论我做什么,我总是得到“拒绝访问”.页面(纯文本,而不是HTML或任何东西).
安装包:
nginx
nginx-common
nginx-full
php5
php5-cli
php5-common
php5-fpm
配置细节:
PHP-FPM:
user = www-data
group = www-data
listen = /var/run/php5-fpm.sock
Nginx的:
user www-data;
worker_processes 3;
events { worker_connections 1024; }
默认/测试域:
server {
listen 80;
server_name localhost;
root /extra/htdocs/default;
index index.html index.php
access_log /extra/logs/default/access.log;
error_log /extra/logs/default/error.log;
location / {
try_files $uri $uri/ /index.html;
}
location ~ \.php
{
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_index index.php;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
/extra/htdocs/default/index.php:
<?php
phpinfo();
其他一切都是默认的. Nginx和php-fpm日志都没有显示错误.然而,当我加载http://< server-ip> /index.php时,我得到了“拒绝访问”页面.
故障排除:
> index.html文件工作得很好.因此它必须是php-fpm,或Nginx和php-fpm之间的fastcgi绑定.
>我已经将整个/额外目录的所有权(包括用户和组)设置为www-data,并将所有权设置为777,这是肯定的(当然,我会在它工作时将其调低).所以它肯定不是权限问题
>这不是我看到的security.limit_extensions问题:默认设置为.php,这正是我要求的.我明确地将它设置为.php .html,结果相同.
我真的厌倦了这个,我已经安装了两次这个设置(尽管在OSX机器上),一切都运行得很完美.有什么我可以忽略的吗?
日志内容:
Nginx错误日志为空.
Nginx访问日志(删除ip):
<ip> - - [17/Jul/2012:11:21:25 +0200] "GET /favicon.ico HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11"
<ip> - - [17/Jul/2012:11:21:28 +0200] "GET /index.php HTTP/1.1" 403 46 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11"
<ip> - - [17/Jul/2012:11:21:34 +0200] "-" 400 0 "-" "-"
php-fpm日志:
[17-Jul-2012 10:44:14] NOTICE: fpm is running, pid 4969
[17-Jul-2012 10:44:14] NOTICE: ready to handle connections
解决方法:
最后修好了.
罪魁祸首是我的配置中的这一行:
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
如果我评论这一行,一切都很好.但是我几乎在每一篇关于Nginx配置的帖子中都看到了这一点,所以它让我感到困扰.在第一百万次查看我的配置时,我看到cgi.fix_pathinfo(在php.ini中)设置为0,它应该是1. PHP使用的默认值也是1,所以我必须在我的调试时间,因为我记得读过这个值,并认为它设置正确.
无论如何,也许它可以帮助任何人谷歌搜索这个问题.
标签:php,nginx,12-04 来源: https://codeday.me/bug/20190808/1616435.html