当前位置: 首页 > 知识库问答 >
问题:

拒绝访问(403)PHP文件与Nginx PHP-FPM

钱睿范
2023-03-14

我花了几个小时在这个问题上,尽管相关帖子很多,但我无法解决它。我有一个Fedora 20盒与Nginx PHP-FPM,直到今天工作得很好(在我重新加载php-fpm.service我猜)。Nginx提供的静态文件没有问题,但是任何PHP文件都会触发错误403。

权限正常,nginx和php fpm在用户“nginx”下运行:

root     13763  0.0  0.6 490428 24924 ?        Ss   15:47   0:00 php-fpm: master process (/etc/php-fpm.conf)
nginx    13764  0.0  0.1 490428  7296 ?        S    15:47   0:00 php-fpm: pool www
nginx    13765  0.0  0.1 490428  7296 ?        S    15:47   0:00 php-fpm: pool www
nginx    13766  0.0  0.1 490428  7296 ?        S    15:47   0:00 php-fpm: pool www
nginx    13767  0.0  0.1 490428  7296 ?        S    15:47   0:00 php-fpm: pool www
nginx    13768  0.0  0.1 490428  6848 ?        S    15:47   0:00 php-fpm: pool www

服务的文件也被设置为nginx用户,我甚至结束了chmoding 777这些文件的尝试,但仍然"访问拒绝"任何PHP文件。

下面是我Nginx配置的服务器:

server {
        listen          80;
        server_name     localhost;

        root            /var/www/html;

         location ~ \.php$ {
            fastcgi_intercept_errors on;
            try_files $uri =404;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
}

PHP-FPM池:

[www]
...
listen = 127.0.0.1:9000
user = nginx
group = nginx
...

对于版本:

php-5.5。11(当然还有php-fpm-5.5.11)

nginx-1.4。7.

我正在添加Nginx错误日志:

 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.xxx, server: localhost, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "xxx.xxx.xxx.xxx"

准确地说,安全性。限制扩展名正确,设置为:安全。极限扩展=。php

关于路径权限,可以遍历/var/www/html。我错过了什么?

共有3个答案

柯瀚海
2023-03-14

php.ini后不要忘记重启php5-fpm服务!!

重新启动php5-fpm服务或重新加载php5-fpm服务

fpm预启动php5,因此仅重启nginx应用更改是不够的。

鲁向明
2023-03-14

请注意,上述解决方案(将cgi.fix_pathinfo设置为1)是一个糟糕的想法。看见https://nealpoole.com/blog/2011/04/setting-up-php-fastcgi-and-nginx-dont-trust-the-tutorials-check-your-configuration/为了获得一个良好的概述。

这个问题可能是由于您的应用程序依赖PATH_INFO。为php启用访问日志以获取有关如何调用应用程序的详细信息,以帮助您调试此问题。

再一次,可以肯定的是,公认的解决方案是一个糟糕的想法,很可能会让你的网站遭到黑客攻击。

史高阳
2023-03-14

以下是一些可能的解决方案:

>

在nginx配置文件中,将fastcgi\u传递到套接字地址(例如unix:/var/run/php fpm/php fpm.sock;),而不是服务器地址和端口。

检查SCRIPT\u文件名fastcgi参数,并根据文件位置进行设置。

在nginx配置文件中包含fastcgi_split_path_info^(。\. php)(/. )$;的位置块中,其中定义了所有其他Fastcgi参数。

在php中。ini setcgi。将路径信息修复为1

 类似资料:
  • 我正在制作一个RESTFul API(不是web应用程序)并添加Spring Security性,但无法成功完成。 在阅读了大量有关stackoverflow的文章和帖子后,我终于发布了我的问题。请检查一下,让我知道我遗漏了什么或配置错误了什么? 基本实体 角色实体 用户实体 SecurtiyConfig类 CurrentUserDetails UserDetailsService 用户控制器类

  • 我正在制作一个RESTFul API(不是web-app)并添加Spring Security性,但无法成功地做到这一点。 在浏览了stackoverflow上的大量文章和帖子之后,我终于发表了我的问题。请仔细检查一下,让我知道我错过了什么或者配置错误了什么? 基本实体 UserDetailsService UserController类 AdminContrller类 尝试使用ROLE_USER

  • 问题内容: 我在FoxPro 6.0命令窗口中使用SQL命令,并遇到“文件访问被拒绝”。 我的SQL命令是: 情况: Windows 7专业版 FoxPro 6.0 main.dbf被共享给许多用户。 main.dbf不是 隐藏的 ,也不是 只写 任何意见将不胜感激! 问题答案: 此DBF文件位于共享驱动器上吗?如果是这样,则另一个用户可能使文件打开了“排他”,或者您正试图打开文件“排他”。默认状

  • 我正在尝试进行查询-https://GRAPH.microsoft.com/v1.0/users/user.name@contoso.com/messages?$select=from,to recipients,ccRecipients,bccRecipients on GRAPH Explorer-https://developer.microsoft.com/en-us/GRAPH/grap

  • 登录成功,但即使我允许访问USER,Spring安全也会阻止url。我如何管理这个东西? 登录控制器。JAVA 1.登录成功后,页面重定向到欢迎页面,但url仍然是localhost:8080/Login,而不是localhost:8080/welcome。 2.重定向到URL localhost:8080/sales后,403访问被拒绝。

  • 我已经尝试了几乎所有关于它的其他帖子,没有任何一个与我的问题相关。