【问题标题】:phar Class not found找不到 phar 类
【发布时间】:2013-08-01 14:55:49
【问题描述】:

我正在尝试为 php“composer”安装依赖管理器,但“composer”需要扩展名“phar”。我意识到php6默认带有phar,但是被禁用并且不需要执行“phar”文件。

当我尝试执行“composer.phar”(在 cmd:php composer.phar)时,它会抛出错误:

Fatal error: Class 'Phar' not found in composer.phar on line 13.

如果我尝试执行 Composer 安装程序,“installer.php”(在 cmd 中:php installer.php)会抛出此错误:

Some settings on you machine make composer unable to work properly. Make sure that you fix the issues listed below and run this script again:

phar 扩展名丢失。我该如何解决这个问题?

我应该安装它还是在没有--disable-phar 的情况下重新编译 php 我使用的是 appserv 2.6.4(apache 2.2、php6、mysql 4)。

【问题讨论】:

  • 这是因为您使用的 PHP 版本比源代码所需的旧版本(例如,当 composer 需要 5.4 时您使用的是 PHP 5.2)

标签: php phar


【解决方案1】:

您真的不应该使用尖端的理论软件。 PHP6 实际上并不存在。降级到更现实的 appserv 版本将解决您的问题。但是如果你坚持使用2.6.4,你应该做到以下几点:

  • 检查 phar.so 是否存在于 php 扩展目录中。如果没有,您需要安装该扩展程序。
  • 如果存在,检查它是否在 php.ini 中列为extension=phar.so。如果不是,请添加该行。
  • 如果是,请检查它是否也在命令行 PHP 使用的 php.ini 中列出。命令行 PHP 和 Web PHP 有时使用不同的 php.ini 文件,其中一个可能激活了 phar.so,而另一个可能没有。

【讨论】:

  • 谢谢斯瓦德。我会坚持使用 php6 多一点时间。我知道php6自带phar进入core[1],所以它不需要php.ini中的扩展phar。但我不知道我是否正确。 [1]php.net/manual/en/phar.installation.php
  • 我认为你不明白 - php 6 字面上不存在。这不是一个真正的项目。你在那里玩的是某人对它的疯狂解释,一旦它在 2017 年左右的某个时间问世,你用它构建的大部分内容将永远不会与真正的 PHP6 兼容。 Phar 是从 5.3.0 开始安装的,所以不用担心 php6
  • 你对 php6 不存在,并且实现的 Appserv,效果不好,显然它是用指令 --disable-phar 编译的,并且不允许执行 phar 文件。
猜你喜欢
  • 2012-02-09
  • 2017-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-14
  • 1970-01-01
  • 2018-12-27
  • 2022-10-04
相关资源
最近更新 更多