//127。0。0。1:8867;}# nginx 转发给8866 端口, 然后去配置一下8866 端口的服务server { lieten 8867; server_name quick。qun。me; #外网能够访问的域名 location / { alias /home/php_project; #注意和root的区别 index index。
php index。html index。htm; fastcgi_pass 127。0。0。1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_index index。
php; include fastcgi_params; }}当我配置好了以后, 访问quick。qun。me/phpinfo 的时候, 页面显示 access denied。 查看nginx error。log 出现*408132 FastCGI sent in stderr: “Access to the script ‘/home/php_project/phpinfo‘ has been denied (see security。
limit_extensions)” while reading response header from upstream, client: 127。0。0。1, server: quick。qun。me, request: “GET /phpinfo HTTP/1。
0″, upstream: “fastcgi://127。0。0。1:9000”, host: “127。0。0。1:8867″排查: 以为是nginx配置没有开启 autoindex on ; 但是一想不对, 如果是因为这个, 肯定是403 forbidden, 不会显示access denied。
他有一个细节就是 security。limit_extensions , (网上说在php-fpm。conf文件里, 我没找到,这个参数我是在/etc/php/7。0/fpm/pool。d/www。conf 文件里找到的)百度, 需要在这个后面加上 。
php 。php5 。 之类的, 我试了一下去掉注释, 重启php-fpm, 并没有起作用。 还是access denied。 (补充: 从5。3。9开始,php官方加入了一个配置”security。limit_extensions”,默认状态下只允许执行扩展名为”。
php”的文件,造成了其他类型的文件不支持的问题, 设置PHP允许的文件后缀名) 。 而且之前这个security。limit_extensions就是被注释掉的, 项目也能访问啊, 所以猜测肯定不是这个的原因。(其实后来想一想也是这个的原因,后面提到)但是nginx 的error。
log 为什么偏偏提示这个信息呢? 隔了一天, 继续研究一下, 再看nginx/error。log, 突然想到路径的问题, (ps: 之前没有考虑路径是因为自信觉得alias 配置的路径没问题) 去看 了一下, 发现没有创建过phpinfo目录, index。
php文件是在/home/php_project目录下, 所以问题的答案渐渐浮出水面的赶脚! 不过又有了一个新问题: alias 配置的路径是 去掉了/phpinfo的啊? 为什么没有去掉呢? (参考alias替换URI规则) 后来发现其实不是alias 出现问题, 而是我搞混了, 注意 alias 所在location 并不是/phpinfo, 转发之前是/phpinfo, alias实际替换的是 / , 因为alias所在的location是 / , 我误认为是alias 所在的location是 /phpinfo了, 所以没有发现问题。
所以问题出在了location的配置上。 加一个phpinfo就OK了。继续说: 如果location / {} 里没有配置fastcgi, 那么应该就会报404或者403或者下载(没有测试, 只是猜测) 但是现在配置了fastcgi , 所以说 就会把这个请求交给PHP处理, 而PHP发现phpinfo不是 。
php 后缀, 所以返回access denied。 (那么现在也就知道了access denied 就是PHP处理程序返回的信息,和nginx无关) 。 到这里, 处理方法有两种, 一种是修改security。limit_extensions, 如果phpinfo是文件的话, 可以修改此参数, 但现在phpinfo是目录, 所以不修改此参数, 而是从alias入手。
修改location / 为 location /phpinfo 就OK了解决方法: 修改alias 所在的location , 将location / 改为 location /phpinfo , 这样alias 就是正确替换了/phpinfo, 否则替换的仅仅是 /access denied标签:配置服务问题有一个lanfromoca设置shu。
1.文章《access denied》援引自互联网,为网友投稿收集整理,仅供学习和研究使用,内容仅代表作者本人观点,与本网站无关,侵删请点击页脚联系方式。
2.文章《access denied》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
相关推荐
- . 现代买票为什么带上携程保险
- . 潮阳怎么去广州南站
- . 湖南马拉河怎么样
- . 烧纸为什么到三岔路口
- . 百色为什么这么热
- . 神州租车怎么样
- . 芜湖方特哪个适合儿童
- . 护肤品保养液是什么类目
- . 早晚的护肤保养有哪些项目
- . 女孩护肤品怎么保养的最好