open_basedir限制生效.文件(/)不在允许的路径中:

Web*_*net 80 php filesystems

我在我网站上的头像上传时收到此错误.我以前从来没有得过它,最近没有任何改变让我开始得到这个错误......

Warning: is_writable() [function.is-writable]: 
open_basedir restriction in effect. 
File(/) is not within the allowed path(s):
Run Code Online (Sandbox Code Playgroud)

yog*_*ing 102

修改主机帐户中的open_basedir设置并将其设置为none.找到Plesk/cPanel的"PHP设置"区域下给出的open_basedir设置.从那里给出的下拉列表中将其设置为"none".我在Plesk面板图片中展示了它们.

在此输入图像描述 在此输入图像描述

  • @yogihosting 执行此操作后,我收到错误 - 无法找到您指定的模型:Home_model (2认同)

And*_*rei 36

要解决此错误,您必须编辑httpd.conf文件.之前的方法可以在apache2handler section指令Server Root中的phpinfo中看到.例如,在我的情况下这样 - /etc/httpd/httpd.conf.打开文件httpd.conf,找到open_basedir参数的提及.并将其设置为无.(php_admin_value open_basedir无)

  • 我无法编辑httpd.conf.还有哪些其他选择? (12认同)
  • 我在`php.ini`中找到了`open_basedir`配置.(使用php 5在Raspberry Pi上运行Linux) (8认同)
  • 也可以在我的php.ini(也称为Arch)中找到它。只需注释掉该行即可达到与该答案相同的效果。 (2认同)

dea*_*908 8

如果您使用php file.php. 您需要编辑php.ini 查找此文件:

: locate php.ini
/etc/php/php.ini
Run Code Online (Sandbox Code Playgroud)

并将文件的路径附加到open_basedir属性:

open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/:/run/media/andrew/ext4/protected

  • 这是唯一指向多个特定路径而不是完全跳过安全性的解决方案。 (4认同)

Mah*_*our 7

拉维尔

如果你在使用 Laravel 的时候遇到这个问题。

仅转到文件夹bootstrap/cache并重命名config.php为您想要的任何内容并重新加载网站。


Jos*_*h P 5

对我来说,运行整个事情的Plesk服务器的问题是糟糕/缺少配置值.我只是按照这里的指示:http: //davidseah.com/blog/2007/04/separate-php-error-logs-for-multiple-domains-with-plesk/

您可以将PHP配置为每个VirtualHost定义都有一个单独的错误日志文件.诀窍是确切知道如何设置它,因为你不能在不破坏Plesk的情况下直接触摸配置.您(dv)上的每个域名在/ var/www/vhosts中都有自己的目录.典型目录具有以下顶级目录:

cgi-bin/
conf/
error_docs/
httpdocs/
httpsdocs/
...and so on
Run Code Online (Sandbox Code Playgroud)

您将要在域目录的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
Run Code Online (Sandbox Code Playgroud)

更改第一个值以匹配您的实际安装(我使用/tmp/phperrors.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
Run Code Online (Sandbox Code Playgroud)

最后告诉Plesk你已经做出了这个改变.

/usr/local/psa/admin/bin/websrvmng -a
Run Code Online (Sandbox Code Playgroud)