2

Composer install 命令在我的计算机上本地运行良好:

  • 使用包信息加载作曲家存储库
  • 从锁定文件安装依赖项
  • 无需安装或更新
  • 生成自动加载文件

当我通过 ssh 连接到 ubuntu 服务器并运行相同的命令时,我得到了这个。

PHP Fatal error:  Class 'Composer\Installers\Installer' not found in phar:///usr/local/bin/composer/src/Composer/Installer/InstallerInstaller.php on line 102

Fatal error: Class 'Composer\Installers\Installer' not found in phar:///usr/local/bin/composer/src/Composer/Installer/InstallerInstaller.php on line 102

我遵循了两台机器的说明: https ://github.com/composer/composer/blob/master/README.md

我在这里缺少一些依赖项?我不知道为什么会出现这个错误。

编辑:这是.json(项目是symfony 1.4,也添加了标签)

{
  "minimum-stability": "dev",
  "require"     : {
    "snappy/sfSnappyPlugin": "*"
  },
  "repositories": [
    {
      "type": "git",
      "url": "https://github.com/FloranBrutel/sfSnappyPlugin.git"
    }
  ]
}

Edit2:AWS 服务器上 php -v 的输出

PHP 5.3.10-1ubuntu3.4 with Suhosin-Patch (cli) (built: Sep 12 2012 18:59:41) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

在我的机器上,我有:

PHP 5.3.6-13ubuntu3.9 with Suhosin-Patch (cli) (built: Sep 12 2012 19:00:27) 
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
with Xdebug v2.1.0, Copyright (c) 2002-2010, by Derick Rethans
4

2 回答 2

7

我设法复制了您的问题。在您运行 composer 的目录中,您应该有如下路径:

vendor/composer/installers/src/Composer/Installers

在这个目录中应该存在一个Installer.php文件。通过删除该文件,我设法得到了与您相同的错误。

所以我相信一个解决方案是简单地完全删除你的vendorplugins目录并尝试composer install再次运行,强制重新下载你的所有供应商composer.json。希望这可以帮助。

于 2012-12-12T23:56:07.823 回答
1

您运行的确切命令是什么?

你应该做什么:

  • 运行rm -rf vendor/*以擦除所有可能的作曲家数据(它使用 vendor/.composer 作为缓存)
  • 运行composer self-update以将 Composer 更新到最新版本。这行得通吗?
  • 尝试composer -V
  • 确保您在服务器上有 openSsl(因为您需要通过 https)
  • 在 cli 上将 APC 切换为 falseapc.enable_cli=0
于 2012-12-11T23:16:22.070 回答