Php open_basedir限制生效。文件(/)不在允许的路径内:
我在我的网站上的一个头像上传中遇到了这个错误。我以前从未得到过它,而且最近没有任何改变让我开始得到这个错误Php open_basedir限制生效。文件(/)不在允许的路径内:,php,filesystems,Php,Filesystems,我在我的网站上的一个头像上传中遇到了这个错误。我以前从未得到过它,而且最近没有任何改变让我开始得到这个错误 Warning: is_writable() [function.is-writable]: open_basedir restriction in effect. File(/) is not within the allowed path(s): 您引用的路径是不正确的,并且不包含工作区的directoryRoot。尝试为要访问的文件构建一个绝对路径,现在可能正在使用相对路径…修
Warning: is_writable() [function.is-writable]:
open_basedir restriction in effect.
File(/) is not within the allowed path(s):
您引用的路径是不正确的,并且不包含工作区的directoryRoot。尝试为要访问的文件构建一个绝对路径,现在可能正在使用相对路径…修改PHP配置中的(请参阅)
open\u basedir
设置主要用于防止特定用户的PHP脚本访问其他用户帐户中的文件。因此,通常情况下,您自己帐户中的任何文件都应该可以由您自己的脚本读取
如果PHP在Linux系统上作为Apache模块运行,则通过.htaccess
进行示例设置:
<DirectoryMatch "/home/sites/site81/">
php_admin_value open_basedir "/home/sites/site81/:/tmp/:/"
</DirectoryMatch>
php_admin_value open_basedir”/home/sites/site81/:/tmp/:/“
如果您在ispconfig3中遇到此类问题并出现类似错误
open_basedir限制生效。
文件(/var/www/clients/client7/web15)不在允许的范围内
道路:
要解决这个问题(在我的例子中),只需在网站的ispconfig3面板中将PHP设置为SuPHP
希望它能帮助某人:)对我来说,问题是运行整个程序的Plesk服务器的配置值不好/丢失。 我只是按照这里的指示: 您可以将PHP配置为每个VirtualHost定义都有一个单独的错误日志文件。诀窍在于准确地知道如何设置它,因为如果不破坏Plesk,就无法直接触摸配置。 您(dv)上的每个域名在/var/www/vhosts中都有自己的目录。典型目录具有以下顶级目录:
cgi-bin/
conf/
error_docs/
httpdocs/
httpsdocs/
...and so on
您需要在域目录的conf/文件夹中创建一个vhost.conf文件,其中包含以下行:
php_value error_log /path/to/error_log
php_flag display_errors off
php_value error_reporting 6143
php_flag log_errors on
更改第一个值以匹配实际安装(我使用了/tmp/phperors.log)。编辑完vhost.conf文件后,使用以下命令从控制台测试配置:
apachectl configtest
…or if you don’t have apachectl (as Plesk 8.6 doesn’t seem to)…
/etc/init.d/httpd configtest
最后告诉普莱斯克你已经做出了改变
/usr/local/psa/admin/bin/websrvmng -a
要解决此错误,必须编辑文件httpd.conf。 在apache2handler部分指令Server Root的phpinfo中可以看到它之前的方式。 例如,在我的例子中是这样的-/etc/httpd/httpd.conf。
打开文件httpd.conf,找到参数Open_basedir。并将其设置为“无”。(php\u admin\u value open\u basedir none)修改托管帐户中的open\u basedir设置并将其设置为none。在Plesk/cPanel的“PHP设置”区域下找到open_basedir设置。从这里给出的下拉列表中将其设置为“无”。 我已经在Plesk面板图片中显示了它们
如果您使用
php file.php
运行此程序。您需要编辑php.ini
查找此文件:
: locate php.ini
/etc/php/php.ini
并将文件路径附加到open\u basedir
属性:
open_basedir=/srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/:/run/media/andrew/ext4/protected
我的一个wordpress网站在更新和/或移动后出现了这个问题:)
在“上传路径”中签入数据库表“wp\u选项”并正确编辑…只需搜索即可
开放式=
并将其禁用。这是解决这个问题的最简单的办法
更改前open\u basedir=
更改后<代码>;打开\u basedir=
注意-更改后不要忘记重新启动服务器
享受;) 如果您正在运行PHP IIS堆栈,并且出现此错误,则通常是一个快速权限修复 如果您自己管理windows服务器并具有访问权限,请首先尝试以下操作: 导航到给您写信带来痛苦的文件夹,然后右键单击它>打开属性>安全性 查看哪些用户有权访问该文件夹,哪些用户具有只读权限,哪些用户具有完全权限。您是否有阻止写入的组 修复程序将特定于您的IIS设置,您是对特定用户IUSR使用匿名身份验证还是对应用程序池标识使用匿名身份验证 无论如何,你最终会为IUSR、IIS_IUSR或你的应用程序池身份添加一个新的完整写入权限-就像我说的,这将根据你的设置和你想如何操作而有所不同,你可以为我在这篇文章(一篇这样的帖子)上进入谷歌兔子洞,我将anon与我的应用程序池标识一起使用,这样我就可以在任何临时文件夹或上载文件夹上进行完全读/写操作,而不必使用
MACHINE\u NAME\IIS\u IUSRS
我不需要向php.ini中的open\u basedir=
添加任何额外内容。此外,如果您使用的是DirectAdmin,请按照以下步骤操作:
admin
中设置了open\u basedir
,可能您应该在相关的
标记中包含您的更改:
<Directory "/path/to/directory">
php_admin_value open_basedir none
</Directory>
open_basedir
编辑为none
。不要试图移除东西,否则您可能会遇到停机。编辑后保存文件sudo
):
cp httpd.conf httpd.conf.back
httpd -k graceful
apachectl -k graceful
apache2 -k graceful
php.exe -d open_basedir=;d:/www/applicationRoot;//internal.unc.path/ressource/