PHP 警告:include_once():open_basedir 限制生效

Posted

技术标签:

【中文标题】PHP 警告:include_once():open_basedir 限制生效【英文标题】:PHP Warning: include_once(): open_basedir restriction in effect 【发布时间】:2014-09-27 08:43:46 【问题描述】:

我已经将一个站点从一个主机迁移到另一个主机,在这个站点上有一个 crm 工作或至少曾经工作过。由于迁移已完成,crm 的链接以 error500-internal server error 响应,我联系了主机以进行检查。他们说他们修复了它,现在它显示了以下内容

。文件(/var/www/vhosts/mysite.com/httpdocs/crm/includes/adodbtime/adodb-time.inc.php)不在允许的路径内:(G:/PleskVhosts//mysite.com\ ;C:\Windows\Temp) 在第 229 行的 G:\PleskVhosts\mysite.com\httpdocs\crm\filefunc.inc.php 中

PHP 警告:include_once(/var/www/vhosts/mysite.com/httpdocs/crm/includes/adodbtime/adodb-time.inc.php):无法打开流:G:\PleskVhosts\ 中不允许操作mysite.com\httpdocs\crm\filefunc.inc.php 在第 229 行

PHP 警告:include_once():无法打开“/var/www/vhosts/mysite.com/httpdocs/crm/includes/adodbtime/adodb-time.inc.php”以包含(include_path='G:\PleskVhosts \mysite.com\httpdocs/htdocs') 在第 229 行的 G:\PleskVhosts\mysite.com\httpdocs\crm\filefunc.inc.php 中

PHP 警告:file_exists():open_basedir 限制生效。文件(/var/www/vhosts/mysite.com/httpdocs/crm/core/lib/functions.lib.php)不在允许的路径内:(G:/PleskVhosts//mysite.com\;C :\Windows\Temp) 在第 231 行的 G:\PleskVhosts\mysite.com\httpdocs\crm\filefunc.inc.php 中

我正在使用 plesk 面板,对此我真的很陌生。我提出的解决方案需要更改我无权访问的 php.ini 文件。在我再次联系主机之前,我想我会先在这里问。

如果有帮助,我将在这些行上显示代码:

if (! defined('ADODB_DATE_VERSION')) include_once ADODB_PATH.'adodb-time.inc.php';

if (! file_exists(DOL_DOCUMENT_ROOT ."/core/lib/functions.lib.php"))

【问题讨论】:

您的新主机似乎不允许 PHP 从您当前尝试使用的目录中读取。请参阅此处了解以前的更详细的答案:***.com/questions/1846882/… 【参考方案1】:

您必须将目录添加到服务器允许的路径中。 This 帖子很好解释。

另外,如果您使用 Plesk,设置此路径的最简单方法可能是通过应用程序根目录上的 php.ini 设置它。

open_basedir = /var/www/vhosts/mysite.com/httpdocs/crm/includes/adodbtime

【讨论】:

以上是关于PHP 警告:include_once():open_basedir 限制生效的主要内容,如果未能解决你的问题,请参考以下文章

「PHP」include()include_once()require()require_once()的用法及区别

文件包含漏洞

session_start()上的PHP警告权限被拒绝(13)[重复]

指纹 PHP 文件

include_once(../../config.php):打开流失败:没有这样的文件或目录

PHP包含vs include_once(速度)[重复]