我创建了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的存档。
我两次都犯了同样的错误。
答案 0 :(得分:2)
我用以下内容替换了include():
set_include_path('phar://z3.phar' . PATH_SEPARATOR . get_include_path());
它按预期工作。
我错误地认为包括一个带有空存根的phar会产生同样的事情。
答案 1 :(得分:0)
您的PHP解释器没有启用phar://
流包装器(请参阅phpinfo)。这就是你得到这个错误的原因
而且你实际上应该只是使用:
include("z3.phar");
这应该运行stub file。如果你有一个虚拟存根文件,那当然没用。但是,可以让存根文件包含来自http://pear.php.net/package/PHP_Archive的phar://实现 - 这将允许.phar在没有内置phar://流包装器支持的PHP解释器上运行。
我可以发誓,我已经读到了某个地方。但为简单起见,您可以手动包含PHP_Archive并启用phar://支持这种方式。stream_wrapper_register('phar', 'PHP_Archive');