【问题标题】:pear include_path data folder is no longer validpear include_path 数据文件夹不再有效
【发布时间】:2013-02-05 16:40:51
【问题描述】:

我有一个带有 centOS LAMP 堆栈的 vps,以及多个域/IP。很久以前,我有一个比较熟悉 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

【问题讨论】:

  • 发布确切的错误消息(使用剪贴板复制和粘贴)并解释如何触发它总是有帮助的(您是在谈论在控制台中运行 pear 还是在 PHP 中使用 PEAR 包代码?)。
  • 刚刚添加了确切的错误。顺便说一句,我确实验证了 /usr/share/pear/Mail.php 位于正确的位置。

标签: php centos pear


【解决方案1】:

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

  • /var/www/steve/data
  • .

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

  • /usr/share/pear/

... PHP 会按照指示阻止脚本读取它们。

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

【讨论】:

  • phpinfo 有以下内容:open_basedir /var/www/steve/data:。没有价值
  • 本地值覆盖主值。
  • open_basedir 设置为 none,safe_mode 关闭并且错误消失了。我用正确的域替换了包含路径中丢失的目录部分,所以我猜没有必要的文件被复制过来?谢谢
猜你喜欢
  • 1970-01-01
  • 2018-04-27
  • 2012-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-26
  • 2016-07-22
相关资源
最近更新 更多