我有一个已经使用了几个星期的应用程序;我将Vagrant + Homestead用于本地开发,并将Forge + Linode用于暂存环境。直到几天前,我的工作流程还可以正常工作,但是现在当部署脚本在Forge中运行时(尤其是composer install),它会出现错误:
[RuntimeException]
Error Output: PHP Fatal error: Class 'Reputationhub\ReputationhubServiceProvider' not found in /home/vagrant/Sites/reputationhu
b/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php on line 157
PHP Stack trace:
PHP 1. {main}() /home/vagrant/Sites/reputationhub/artisan:0
PHP 2. require_once() /home/vagrant/Sites/reputationhub/artisan:30
PHP 3. require() /home/vagrant/Sites/reputationhub/bootstrap/start.php:60
PHP 4. Illuminate\Foundation\ProviderRepository->load() /home/vagrant/Sites/reputationhub/vendor/laravel/framework/src/Illumin
ate/Foundation/start.php:210
PHP 5. Illuminate\Foundation\ProviderRepository->compileManifest() /home/vagrant/Sites/reputationhub/vendor/laravel/framework/
src/Illuminate/Foundation/ProviderRepository.php:57
PHP 6. Illuminate\Foundation\ProviderRepository->createProvider() /home/vagrant/Sites/reputationhub/vendor/laravel/framework/s
rc/Illuminate/Foundation/ProviderRepository.php:121
Run Code Online (Sandbox Code Playgroud)
实际上,php artisan clear-compiled此失败是后来Composer运行的子命令。如果我自己运行它,同样的问题。运行composer install --no-script正常。当我查看时vendor/composer/autoload_classmap.php,它会丢失所有的东西,并且只有几行长(通常更大),因此Laravel所做的任何事情都不能正确地找到正确的类。
奇怪的是,跑步composer dump-autoload -o似乎可以解决问题;该autoload_classmap.php文件耳目一新,并且应用程序运行正常,直到php artisan ...尝试做任何事情,那么它打破了应用程序。
最终结果是Forge部署被破坏了。我可以手动跳到服务器上并运行composer dump-autoload -o …