我在PHP中遇到move_uploaded_file
的问题,返回的错误消息告诉我open_basedir限制到位(我已设置)并且在我试图写的路径上to不在允许的路径中,但它是(并且清楚地显示在错误消息上)。
以前有人遇到过这个吗?
编辑:
抱歉,错误消息可能会有所帮助!:
未处理的错误(/var/www/vhosts/(myhost)/libs/imanager.php,226):2, '... move_uploaded_file()[function.move-uploaded-file]: open_basedir限制生效。 文件(在/ var / WWW /虚拟主机/(为myhost)/httpdocs/tributes/images/precrop/1317227884228.jpg) 不在允许的路径内: (/无功/网络/虚拟主机/(为myhost)/的httpdocs /悼念/图像/ precrop /:/ TMP)...'
答案 0 :(得分:0)
以前没碰过这个。如果您尝试移动的文件是使用PHP上传的,则只能使用move_uploaded_file。 尝试从配置中的precrop目录中删除尾部的“/”。
这里有一些额外的open_basedir信息: http://www.bigsoft.co.uk/blog/index.php/2007/12/30/fixing-php-s-require-open_basedir-restri
答案 1 :(得分:0)
存在PHP错误("Regression (5.3.3-5.3.4) in open_basedir with a trailing forward slash"),当open_basedir
具有尾随斜杠时会触发该错误。解决方法从open_basedir
中的路径中删除尾部斜杠。这个错误应该在最新版本的PHP中修复。
答案 2 :(得分:0)
请注意,如果路径上有符号链接,open_basedir
也会失败。来自http://php.net/open_basedir:
所有符号链接都已解析,因此无法通过符号链接来避免此限制。
请检查/var/www/vhosts/(yourhost)/httpdocs/tributes/images/precrop/
是否是真实的目录路径,而不是符号链接的路径。