Composer无法在AWS Ubuntu服务器上运行,本地工作正常

时间:2012-11-14 14:44:14

标签: symfony-1.4 php composer-php

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

2 个答案:

答案 0 :(得分:7)

我设法复制了你的问题。在您运行编写器的目录中,您应该有这样的路径:

vendor/composer/installers/src/Composer/Installers

并且在此目录中应该存在Installer.php文件。我通过删除那个文件设法得到了同样的错误。

因此,我认为解决方案是简单地完全删除您的vendorplugins目录并尝试再次运行composer install,从而强制重新下载composer.json中的所有供应商{1}}。希望这会有所帮助。

答案 1 :(得分:1)

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

你应该做什么:

  • 运行rm -rf vendor/*以删除所有可能的作曲家数据(它使用vendor / .composer作为缓存)
  • 运行composer self-update以最新更新Composer。这有用吗?
  • 尝试composer -V
  • 确保您在服务器上有openSsl(因为您需要通过https)
  • 在cli apc.enable_cli=0
  • 上将APC切换为false