2013-08-01 59 views
0

我想安装php的“作曲家”的依赖管理器,但“作曲家”需要扩展名“phar”。我已经意识到php6默认带有phar,但是为了执行“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扩展丢失。我怎样才能解决这个问题?

我应该安装它还是重新编译php而不使用--disable-phar我使用的是appserv 2.6.4(apache 2.2,php6,mysql 4)。

+0

PHP 6不存在 – Jonnny

+0

这是因为您使用的PHP版本是超过源代码的要求(当作曲家需要5.4例如你使用PHP 5.2) – bafromca

回答

2

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

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

谢谢你Swader。我会坚持多一点时间与php6。我已经了解到php6带有phar到核心[1],因此它不需要php.ini中的扩展phar。但我不知道我是否正确。 [1] http://www.php.net/manual/en/phar.installation.php – Luillyfe

+3

我不认为你明白 - php 6字面上不存在。这不是一个真正的项目。你玩的东西有人对它的疯狂诠释,大部分你用它构建的东西,一旦它在2017年左右出现,它将永远不会与真正的PHP6兼容。 Phar是从5.3.0开始安装的,所以不需要打扰php6 – Swader

+0

你对php6不存在,而且Appserv的实现,工作不好,显然它是用指令编译的--disable-phar和don不允许执行phar文件。 – Luillyfe