1

我创建了 Zend Framework 的 Phar 存档,但出现以下错误: Warning: include(): Failed opening 'phar://z3.phar/stub.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php')

这是我使用的 stub.php: <?php __HALT_COMPILER();

我使用http://empir.sourceforge.net/创建了存档 我还尝试使用博客中的教程在没有 empir 的情况下创建存档。

我得到了同样的错误,两次。

4

2 回答 2

2

我将 include () 替换为: set_include_path('phar://z3.phar' . PATH_SEPARATOR . get_include_path());

它按预期工作。

我错误地认为包含一个带有空存根的 phar 会达到同样的效果。

于 2011-03-13T23:58:11.693 回答
0

您的 PHP 解释器没有phar://启用流包装器(请参阅 phpinfo)。这就是您收到此错误的原因。
此外,您实际上应该只使用:

include("z3.phar");

这应该运行存根文件。如果那里有一个虚拟存根文件,这当然没什么用。然而,可以让存根文件包含来自http://pear.php.net/package/PHP_Archive的 phar:// 实现- 这将允许 .phar 在没有内置 phar:// 流包装器支持的 PHP 解释器上运行.

我可以发誓我在某处读过。但为简单起见,您可以手动包含 PHP_Archive 并以这种方式启用 phar:// 支持。

stream_wrapper_register('phar', 'PHP_Archive');
于 2011-03-13T18:26:56.267 回答