Categories

Новые шаблоны

“Open_basedir限制效果”. 文件(X)不在允许的路径(s): Y中。

Alex Ross Октябрь 22, 2012
Rating: 3.3/5. From 15 votes.
Please wait...

PHP函数open_basedir是一个安全措施, 阻止打开文件和脚本, 在“主”目录之外. 如果启用了PHP设置open_basedir, 所有的文件操作都被限制在服务器上的一个文件夹里, 防止未经授权的用户访问脚本. 当脚本试图打开一个文件时, 在根目录之外, например fopen() или gzopen(), проверяется путь у файлу. 当文件在允许的目录之外时, PHP将拒绝执行它,并出现错误, вида:

Warning: file_exists() [function.文件存在]:open_basedir限制. File(/home/user_name/public_html/ wp -内容uploads / 2006 / picture.jp) is not within the allowed path (s):(/ home / user_name: / usr / lib / php / php: / usr / local / lib / tmp) in / home / user_name public_html/wp-admin/inline-uploading.php on line 226

查看PHP官方指南以了解更多关于该特性的信息 open_basedir.

我们建议您与您的主机提供商联系以纠正错误.

有两种方法可以解决这个问题:

  1. 解决办法可能是禁用该功能, 或者允许某些特权帐户访问文件, 或者允许PHP脚本访问某些文件夹.

    • Если Вы используете cPanel WebHost Manager (WHM), 您可以轻松地禁用open_basedir选项, 或者将一些用户从名单中删除, для разрешения им доступа. 在“安全”部分打开“调整安全”, 然后点击" Configure "查看" Php open_basedir Tweak ". 在这里你可以启用或禁用php函数open_basedir,添加或删除一些主机.

    • 如果你使用Plesk主机控制面板, 您需要手动编辑配置文件 Apache — vhost.conf и vhost_ssl.,并将php_admin_value open_basedir行添加或更改为以下内容:

      php_admin_value open_basedir none php_admin_value open_basedir full path / to / dir: full / path / to /directory/httpdocs:/tmp

      Пути к папкам (вверху пример), 在open_basedir之后, это директории, 可以在服务器上访问PHP脚本. 你可以在这里添加更多的文件和文件夹,用冒号分隔它们。. 注意不要破坏系统的安全性.

      完成后,运行下面的命令使更改生效并重新启动 Apache httpd服务器(apache2ctl restart或httpd restart)

  2. 如果您需要手动编辑设置 Apache要关闭PHP保护open_basedir,请打开httpd文件.conf,找到以这样开头的行:

    php_admin_value open_basedir …..

    要禁用服务器上的特定帐户的功能,请使用以下行:

    php_admin_value open_basedir none
  3. 你总是可以限制对特定文件夹的保护, 而不会完全关闭open_basedir. 要做到这一点,只需创建一个允许的文件夹列表,用冒号分隔它们. 例如,允许访问/new_目录directory код будет таким:

    php_admin_value open_basedir / home / user_account /: / usr / lib / php: / usr / local / lib / php: / tmp” php_admin_value open_basedir / home / user_account /: / usr / lib / php: / usr / local / lib / php: / tmp / new_directory

    Перезапустите Apache сервер. 请注意,这个限制只是前缀,而文件夹本身. Т.е. использование, к примеру, " open_basedir = /dir/incl "也将打开" /dir/include "或" /dir/incls "文件夹的访问权限, если таковые имеются. 限制对一个特定目录的访问, 使用末尾的空格:" open_basedir = /dir/incl/ ".

Эта запись была размещена в ЧАВО о хостинге, Ошибки сайта и сервера и помечена как effect, open_basedir, restriction. Добавьте в закладки постоянную ссылку.

Submit a ticket

如果你找不到合适的解决方案,, 请使用下面的链接, 向技术支持团队发送请求.
Отправить запрос你会在24小时内得到答复