PHP:未找到类“Phar”

2022-08-30 17:08:44

我尝试使用Silex框架作为我的Web应用程序的基础。但是,如果我尝试包含 *.phar 存档,PHP 会抛出以下错误:

Fatal error: Class 'Phar' not found in /var/www/framework/silex.phar on line 11

以下相关行在我的(如Silex文档中所建议的那样):/etc/php/php.ini

extension=phar.so
phar.readonly = Off
phar.require_hash = Off
detect_unicode = Off

PHAR 库已存在,其中设置为 my 中所有库的扩展路径/usr/lib/php/modules/phar.sophp.ini

有谁知道为什么PHP会抛出这个错误?


答案 1

尝试指定扩展的路径

php -d extension=phar.so composer.phar <your_script>

其他选项:

根据您提供的信息,有几种可能性:

  • 您正在使用不同的 php.ini。检查 的输出以进行确认,并确保正在编辑活动输出。phpinfo()

  • /usr/lib/php/modules/phar.so 是不可读的。确保 Web 服务器用户可以读取此文件。

  • 自上次将与 phar 相关的信息添加到 php.ini以来,您的 Web 服务器尚未重新启动。重新启动网络服务器。


答案 2

这对我有用:

php -d extension=phar.so composer.phar [... your command ...]

这包括当前运行时的 phar 扩展。适用于共享/VPC 服务器。


推荐