Composer更新不安装整个Laravel应用程序

时间:2014-09-02 18:43:12

标签: laravel deployment laravel-4 composer-php

在通过Laravel Forge部署我的应用程序时,我遇到了以下错误:

Fatal error: Class 'Illuminate\Support\Arr' not found in
/home/forge/toono.co/vendor/laravel/framework/src/Illuminate/Support/helpers.php
on line 151

这是在composer update命令运行之后。我已经通过SSH进入了目录,并且看不到文件Arr.php不存在。

代码从BitBucket中的主分支中提取,然后在生产服务器上执行以下行:

cd /home/forge/default
git pull origin master
composer install
php artisan migrate --force

Composer.json:

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": [
        "framework",
        "laravel"
    ],
    "license": "MIT",
    "require": {
        "laravel/framework": "4.2.*"
    },
    "require-dev": {
        "way/generators": "2.*",
        "fzaninotto/faker": "1.4.*@dev",
        "barryvdh/laravel-debugbar": "1.*",
        "flynsarmy/csv-seeder": "1.0.*"
    },
    "autoload": {
        "classmap": [
            "app/commands",
            "app/controllers",
            "app/models",
            "app/database/migrations",
            "app/database/seeds",
            "app/tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-install-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "php artisan clear-compiled",
            "php artisan debugbar:publish",
            "php artisan optimize"
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ]
    },
    "config": {
        "preferred-install": "dist"
    },
    "minimum-stability": "stable"
}

Composer.lock:

"require": {
    "codesleeve/stapler": "~1",
    "laravel/framework": "~4",
    "php": ">=5.4.0"
}

为什么composer update错过了该文件?在本地更新后甚至在Github的主分支上,Arr.php在那里?

如果我遗漏了您需要的任何必要代码,请告诉我。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

我通过删除生产服务器中的composer.lockvendor文件夹解决了这个问题。然后我使用composer update

答案 1 :(得分:0)

我通过命令行ssh&#39进入框中解决了这个问题(ssh forge@ip.of.server)

如果你不知道如何ssh到服务器,你去伪造 - >服务器 - > SSH密钥。

在那里添加公钥(如果您没有按照本指南设置ssh密钥:https://help.github.com/articles/generating-ssh-keys)。

如果您设置了ssh密钥,只需打开终端并粘贴以下命令并运行它; " pbcopy< 〜/ .ssh / id_rsa.pub",这会将您的公钥复制到剪贴板,只需将其粘贴到伪造的ssh密钥字段中即可。

现在我可以直接进入服务器。

然后我导航到默认文件夹(cd / home / forge / default)并运行" composer update"

它会更新所有内容,之后就可以了。