在通过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
在那里?
如果我遗漏了您需要的任何必要代码,请告诉我。
非常感谢任何帮助。
答案 0 :(得分:3)
我通过删除生产服务器中的composer.lock
和vendor
文件夹解决了这个问题。然后我使用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"
它会更新所有内容,之后就可以了。