php7.1
1
server {
2 listen 80;
3 server_name www.tp5.com;
4 access_log /home/wwwroot/access.log combined;
5error_log /home/wwwroot/error.log;
6 7 set $root /home/wwwroot/default/mytp5/tp5/public;
8 9 location ~ .php {
10 fastcgi_pass unix:/tmp/php-cgi.sock;
11 fastcgi_split_path_info ^((?U).+.php)(/?.+)$;
12 fastcgi_param PATH_INFO $fastcgi_path_info;
13 fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
14 fastcgi_param SCRIPT_FILENAME $root$fastcgi_script_name;
15include fastcgi_params;
16 }
17 location ~ .*.(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
18 {
19 root $root;
20 }
21 location / {
22 root $root;
23 index index.html index.php;
24if ( -f $request_filename) {
25break;
26 }
27if ( !-e $request_filename) {
28 rewrite ^(.*)$ /index.php/$1 last;
29break;
30 }
31 }
323334 }
如果出现了错误
1 FastCGI sent in stderr: "Access to the script ‘/usr/local/nginx/html‘ has been denied (see security.limit_extensions)" while reading response header from upstream, client: 192.168.124.1, server: www.tp5.com, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/tmp/php-cgi.sock:", host: "www.tp5.com"
- 在你php-fpm配置文件
php-fpm.conf中设置security.limit_extensions为.php或.php5,或者其他任何与你环境一致的后缀名。 对于开发环境下的一些用户来说, 完全移除所有security.limit_extensions的值或设置为FALSE,能够保证可以正常工作. - 在你的nginx配置文件中设置
fastcgi_pass为你的socket地址(e.g. unix:/var/run/php-fpm/php-fpm.sock;), 替代ip地址:端口这种方式(127.0.0.1:9000). -
检查你的
SCRIPT_FILENAME,fastcgi_param并根据你文件的地址来设置它们. -
在你的nginx配置文件中包含有
fastcgi_split_path_info ^(.+.php)(/.+)$; 则所有其他的对应fastcgi参数也都应该在location块中定义;具体可参考phalcon的nginx官方配置 -
在你的
php.ini配置文件中,设置cgi.fix_pathinfo=1
我就是因为第五个原因,cgi.fix_pathinfo默认没有设置为1,而造成页面总是显示Access denied
原文:https://www.cnblogs.com/matengfei123/p/9036541.html
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!