大家来帮帮忙啊,lnmp遇到了一个大困难
LNMP默认不支持pathinfo,所以很多框架不能运行在lnmp上,例如thinkphp。当然可以手动配置pathinfo,我配置好之后,确实可以访问了。但是在tp中有一个常量是__ROOT__指向应用的根目录,但是上传到nginx服务器后,这个常量就指向了其他位置,代码是相同的,指向位置却发生了变化。我感觉应该是nginx服务器配置的问题。
军哥能知道是什么毛病吗?我弄了一天了,实在弄不了。军哥帮帮忙啊!
如果实在不行就只能换成lamp了,但是lnmp能转成lamp么 还是要重新做服务器啊?醉了啊! 没有现成的脚本可以使用,需要自己弄
回复 2# 的帖子
晕死了查了很多资料发现还是pathinfo的配置问题。服务器的预定义变量$_SERVER取得的值不对导致的。军哥知道pathinfo应该怎么配置吗?我在网上查资料配置的pathinfo就出错了,修改了N次了 lnmp 1.1的话可以看一下http://lnmp.org/changelog.html 这个,里面有启用的方法回复 4# 的帖子
军哥 ,发现lnmp的一个问题啊,不知道算不算,弄了两天才弄好这个毛病。现在lnmp的php.ini中有一项配置是cgi.fix_pathinfo=0,也就是默认开启的。假如不关闭的话,它就会触发一个PHP逻辑
if (script_path_translated &&
(script_path_translated_len = strlen(script_path_translated)) > 0 &&
(script_path_translated == '/' ||
....//以下省略.
也就是说,我们在取服务器变量$_SERVER的时候会取得一个错误的值,因为这个PHP逻辑会把xxx.jpg/index.php的xxx.jpg当做SCRIPT_FILENAME,而把index.php当做PATH_INFO.
另外在配置pathinfo的时候,按照你给的pathinfo的配置方法,做完之后是不能支持thinkphp的。军哥你看一下吧,我感觉cgi.fix_pathinfo=1默认关闭的比较好。假如有人恶意上传php脚本,构造这样的请求呢。。
[ 本帖最后由 nevermore 于 2014-12-12 17:32 编辑 ]
回复 5# 的帖子
1是开启0是关闭http://www.laruence.com/2010/05/20/1495.html
页:
[1]