【问题标题】:Composer not working on AWS Ubuntu server, locally works fineComposer 在 AWS Ubuntu 服务器上不工作,在本地工作正常
【发布时间】:2012-11-03 01:54:31
【问题描述】:

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

【问题讨论】:

  • 你能把你的 composer.json 放到我可以尝试重现吗?
  • php -v 的输出是什么?
  • 我真的一无所知。它不应该寻找 Composer\Installer\InstallerInstaller 而不是 Composer\Installers\Installer 吗?

标签: symfony-1.4 php composer-php


【解决方案1】:

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

你应该做什么:

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

【讨论】:

  • 虽然你的答案有解决我问题的步骤(rm -rf vendor/*),但我接受了另一个,因为它更具体地解决了我的问题。
【解决方案2】:

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

vendor/composer/installers/src/Composer/Installers

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

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

【讨论】:

  • 谢谢,我从没想过问题出在供应商文件夹上。为什么该文件首先被删除?它在 git 上不会被忽略。
  • 您应该忽略vendor 目录。但无论如何,这可能只是因为您使用的是旧版本的作曲家,并且文件已经移动。 Composer 还不稳定,动作很快。
  • 我遇到了同样的问题。所以我所做的是我首先在我的 Vendor 文件夹中重命名了 composer 文件夹。一旦这是正确的,我删除了原始文件夹。我使用的是 CakePHP,因此这是一个供应商文件夹
猜你喜欢
  • 2011-11-11
  • 1970-01-01
  • 2018-03-07
  • 2015-08-28
  • 2016-09-13
  • 1970-01-01
  • 1970-01-01
  • 2023-03-06
  • 2018-03-08
相关资源
最近更新 更多