我在部署网站时遇到了麻烦。我一直在Windows下使用WAMP构建它,现在我正在部署到Linux。
这样的代码适用于Windows:
req.php
echo "This is req<br>";
ini_set("include_path", "/home/clash/public_html/:".get_include_path());
require "/req1.php";
req1.php
echo "This is req1";
但在生产环境中失败并显示以下消息:
警告:require(/req1.php)[function.require]:无法打开流: 第5行/home/clash/public_html/req.php中没有这样的文件或目录
致命错误:require()[function.require]:需要打开失败 '/req1.php' (include_path中= '/家/冲突/的public_html /:.:/ usr / lib中/ PHP:在/ usr /本地/ LIB / PHP') 在第5行的/home/clash/public_html/req.php
ini_set中的路径是服务器文件系统上网站实际位置的路径。
我不想避免绝对路径,因为我使用的库有点依赖它们。
我确信我在这里遗漏了一些非常简单的东西,但我无法弄清楚是什么。
谢谢!
答案 0 :(得分:2)
在Linux上,/
是文件系统的根,类似于Windows上的C:\
。删除前导/
,它将按预期工作。
答案 1 :(得分:0)
您可以使用PATH_SEPARATOR
常量替换硬编码路径分隔符。这样您就可以确保include_path
的价值是跨平台的。