【发布时间】:2015-02-21 23:27:51
【问题描述】:
我有一个 Laravel Web 应用程序,其中包含我在工作台中开发的包。该软件包是应用程序 git 存储库的一部分。该应用程序托管在 Elastic Beanstalk 环境中。
当我使用 eb deploy 部署应用程序时,我在 eb-activity.log(来自 eb logs)中收到以下错误:
...
(output of composer package fetches)
...
Generating autoload files
PHP Fatal error: Class 'Me\MyPackage\MyPackageServiceProvider' not found in /var/app/ondeck/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php on line 157
{"error":{"type":"Symfony\\Component\\Debug\\Exception\\FatalErrorException","message":"Class 'Me\\MyPackage\\MyPackageServiceProvider' not found","file":"\/var\/app\/ondeck\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/ProviderRepository.php","line":157}}Script php artisan clear-compiled handling the post-install-cmd event returned with an error
[RuntimeException]
Error Output: PHP Fatal error: Class 'Me\MyPackage\MyPackageServiceProvider' not found in /var/app/ondeck/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php on line 157
我在我的开发机器上看到了类似的错误,我通过在工作台包目录中运行composer install 解决了,如Laravel 4 workbench class not found 中所述。问题是在 EB 在应用程序供应商目录上运行 composer 之前,我无法在我的包上运行 composer。配置文件的 commands 块太早了——文件还没有在服务器上——而 container_commands 块太晚了,因为它发生在 EB 运行 composer 之后。
如何先运行我的包编写器?
【问题讨论】:
标签: php laravel deployment composer-php amazon-elastic-beanstalk