PHP:找不到类'Phar'

Sec*_*one 23 php phar

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

Fatal error: Class 'Phar' not found in /var/www/framework/silex.phar on line 11
Run Code Online (Sandbox Code Playgroud)

以下相关内容在我的内容中/etc/php/php.ini(如Silex文档中所述):

extension=phar.so
phar.readonly = Off
phar.require_hash = Off
detect_unicode = Off
Run Code Online (Sandbox Code Playgroud)

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

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

小智 19

这对我有用:

php -d extension=phar.so composer.phar [... your command ...]
Run Code Online (Sandbox Code Playgroud)

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


Geo*_*ins 17

尝试指定扩展路径:

php -d extension=phar.so composer.phar <your_script>
Run Code Online (Sandbox Code Playgroud)

其他选择:

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

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

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

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