今天在vagrant + lnmp中使用phalcon命令初始化项目后,访问页面一直出现Access denied; 而Nginx的错误日志则一直是”Access to the script ‘xxx’ has been denied (see security.limit_extensions)…”,最后终于在stackoverflow上找到了解决方法:
- 在你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
原文链接 http://www.qetee.com/exp/php/phalcon-nginx-403/