0

我有一个带有 centOS LAMP 堆栈和多个域/ips 的 vps。很久以前,我有一个更熟悉 SSH 的人在 vps 上安装 pear,我相信他为特定的用户/域配置了它,该用户/域不再存在,现在 pear 正在抛出错误。

不再存在的旧用户/域是“ljsspin”但是当我查看我的 php.ini 时,包含路径是:

include_path = ".:/usr/share/pear/:/usr/share/php:/var/www/ljsspin/data/pear/:"

我可以在 ssh 中执行 pear 命令,但我假设包含路径的最后一部分不再存在是错误的原因。

所以我的问题是如何将必要的 /data/pear 文件安装到新目录中?我已经尝试升级 pear,这也产生了错误(无法解压缩结构文件)。

感谢您的任何指导。

我收到的确切错误消息:

Warning: include() [function.include]: open_basedir restriction in effect. File(/usr/share/pear/Mail.php) is not within the allowed path(s): (/var/www/steve/data:.) in /var/www/steve/data/www/newdomain.com/admin/dashboard/includes/pdf.php on line 3

Warning: include(/usr/share/pear/Mail.php) [function.include]: failed to open stream: Operation not permitted in /var/www/steve/data/www/newdomain.com/admin/dashboard/includes/pdf.php on line 3

Warning: include() [function.include]: Failed opening 'Mail.php' for inclusion (include_path='.:/usr/share/pear/:/usr/share/php:/var/www/ljsspin/data/pear/:') in /var/www/steve/data/www/newdomain.com/admin/dashboard/includes/pdf.php on line 3
4

1 回答 1

1

open_basedir 限制有效错误消息意味着您已经为open_basedir PHP 指令设置了一个值,因此不允许脚本从给定目录集之外读取文件,在您的情况下是:

  • /var/www/steve/data
  • .

由于 PEAR 包安装在其他目录中:

  • /usr/share/pear/

... PHP 阻止脚本读取它们,因为它被指示这样做。

如果您打算允许访问/usr/share/pear/,您显然必须扩大限制。

于 2013-02-20T16:08:36.453 回答