【问题标题】:Include is failing inside phar archive on production server but not on local dev server包含在生产服务器上的 phar 存档中失败,但在本地开发服务器上没有
【发布时间】:2012-02-26 17:59:23
【问题描述】:

给出的错误是

include(): Failed opening 'phar:///var/www/vhosts/redsoftware.us/assets/RedSoftware/app/libs/goutte/goutte.phar/_cli_stub.php' for inclusion (include_path='phar:///var/www/vhosts/redsoftware.us/assets/RedSoftware/app/libs/goutte/goutte.phar:.:') 

似乎 phar 存档正在加载,但是当它尝试包含某些资产时失败。我不知道从哪里开始解决这个问题。它在我的本地机器上完美运行,但是当我将它上传到生产服务器时(如果重要,运行 plesk)它失败了。

Phar 似乎已启用。来自 phpinfo():

已注册的 PHP 流

https、ftps、compress.zlib、compress.bzip2、php、文件、glob、数据、http、ftp、phar、zip

有什么可能导致这种情况的想法吗?

【问题讨论】:

标签: php phar


【解决方案1】:

我在这里遇到的问题源于旧版本的 Ioncube 存在 phar 存档问题。

摘自http://silex.sensiolabs.org/doc/usage.html#pitfalls

Ioncube loader 是一个可以解码 PHP 编码文件的扩展。不幸的是,旧版本(4.0.9 之前的版本)不适用于 phar 档案。您必须将 Ioncube 加载程序升级到 4.0.9 或更高版本,或者通过在 php.ini 文件中注释或删除此行来禁用它:

zend_extension = /usr/lib/php5/20090626+lfs/ioncube_loader_lin_5.3.so

感谢@Maerlyn 喜欢那篇文章。

【讨论】:

  • 就我而言,这是 suhosin 的问题(debian 上的 php 自带),上面的链接也为我提供了解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-07
  • 1970-01-01
  • 2021-03-09
  • 2020-12-30
  • 1970-01-01
  • 1970-01-01
  • 2011-09-17
相关资源
最近更新 更多