当我在PHP环境(运行在64位Amazon Linux 2/3.4.1上的PHP 8.1(中将Symfony应用程序部署到AWS Elastic Beanstalk时,Composer会出现以下错误:
----------------------------------------
/var/log/eb-engine.log
----------------------------------------
[...]
Executing script cache:clear [OK]
Executing script assets:install public [OK]
Executing script requirements-checker [KO]
[KO]
Script requirements-checker returned with error code 127
!! /usr/bin/env: php: No such file or directory
!!
Script @auto-scripts was called via post-install-cmd
但是当我连接到SSH时,命令composer install
工作正常:
cd /var/app/staging/
sudo su -- webapp -c "/usr/local/composer.phar install"
Executing script cache:clear [OK]
Executing script assets:install public [OK]
Executing script requirements-checker [OK]
供应商/symfony/需求检查器/bin/需求检查器:
#!/usr/bin/env php
<?php
include('requirements-checker.php');
我不明白为什么AWS弹性豆茎不知道"#/usr/bin/env-php";在部署时?
你能帮我吗?
谢谢。
我通过以下方法跳过Composer脚本执行,解决了这个问题:
.eextensions/01_php.config
option_settings:
aws:elasticbeanstalk:container:php:phpini:
composer_options: --no-scripts
然后,我再次运行composer install
,但执行脚本:
.eextensions/02_app.config
[...]
05_composer_install:
command: |
runuser -u webapp --
composer.phar install --no-dev --optimize-autoloader