【问题标题】:Including a PHAR file in a PHP Script (PHP5.3 / Debian)在 PHP 脚本中包含 PHAR 文件 (PHP5.3 / Debian)
【发布时间】:2011-10-02 20:58:10
【问题描述】:

我正在尝试在我的 PHP 脚本中包含一个 PHAR 文件(PHP 存档),它在 WAMP 上运行良好,但在我的 debian 服务器上却不行!

我的服务器有 PHP5.3(本机包括 PHAR 扩展!),但我的脚本在包含 PHAR 时停止(实际上是 Silex

我的代码(file_exists() 工作正常):

<?php
require_once __DIR__.'/../vendor/silex.phar';

我看到由于 phpinfo() 启用了 PHAR。

但是,我尝试了很多方法来纠正这个问题:

没有任何效果...有解决方案吗?

【问题讨论】:

  • 我不确定您认为 apache 与文件系统请求有什么关系,但您是否检查了 php 或系统错误(例如,安全性/权限)?
  • 你尝试过这里提到的所有事情吗? silex.sensiolabs.org/doc/usage.html#pitfalls
  • 谢谢大家,事实上我试过了,但没有一起!通过在 php.ini + suhosin 白名单中设置 phar 选项关闭,它可以工作!谢谢!
  • 如果一切正确,您可以关闭您的问题。
  • 并添加您的解决方案作为答案。

标签: php debian archive silex phar


【解决方案1】:

当您使用带有 Suhosin 补丁的 PHP 时,您可能需要在 suhosin.ini 中启用 phars。

您可以将这一行添加到 suhosin.ini

suhosin.executor.include.whitelist = phar

如果您不这样做,脚本将静默失败

这在 debian 和 ubuntu 上很常见

【讨论】:

    【解决方案2】:

    有关使 PHAR 工作的最常见问题的解决方案记录在 the pitfalls section of the Silex documentation 中。

    【讨论】:

    • 它可能需要禁用 xcache/apc/eaccelerator :phar 问题附加在一些非常具体的 eaccelerator 配置中。
    猜你喜欢
    • 2016-11-11
    • 1970-01-01
    • 2020-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-03
    • 2020-06-08
    • 1970-01-01
    相关资源
    最近更新 更多