我的测试服务器是windows。 实时服务器是unix。
我使用的是相对路径,它们似乎在两者上都相同。 我改为绝对路径,似乎两者不同。
我的问题源于从子目录加载的文件。
在Windows服务器上我使用realpath()
,这似乎给了我一个“根”来找到。但unix对待这个不同吗?
将unix绝对路径与windows匹配的常用方法是什么?
发现问题:原因是require()
。
似乎windows允许“多余的”'/'前缀,所以
require '/ajax/test.php'
在Windows上有效,但在unix上无效。
答案 0 :(得分:4)
我建议,考虑到您正在为live和dev工作不同的环境,您可以限制上传文件夹,并在Windows和Linux环境之间创建静态地图。
另外,如果你还没有看到这个,关于realpath的PHP.net文档非常清楚地描述了Linux和Windows之间的差异:
答案 1 :(得分:0)
我建议在配置文件中定义/静态变量,这些变量在任何地方加载。恕我直言,这是非常可靠的方法。
答案 2 :(得分:0)
发现问题:原因是require()。
似乎windows允许多余的'/'前缀,所以
要求'/ ajax / test.php'在Windows上被接受,但是unix会返回错误。