Я пытаюсь выпустить свое веб-приложение с помощью Symfony 4.0.6 на Elastic Beanstalk Amazon Web Service. Однако у меня возникает проблема с сообщением «Кэш сценария: очистка возвращается с кодом ошибки 255 !! (Executor :: NonZeroExitStatus)» при развертывании приложения.
Я обновил symfony / flex (v1.0.70 => v1.0.71) и проверил его после.
$ composer install --no-dev --optimize-autoloader
~~~~
- Removing symfony/process (v4.0.6)
Generating optimized autoload files
ocramius/package-versions: Generating version class...
ocramius/package-versions: ...done generating version class
Executing script cache:clear [KO]
[KO]
Script cache:clear returned with error code 255
!! PHP Fatal error: Uncaught Symfony\Component\Debug\Exception\ClassNotFoundException: Attempted to load class "DebugBundle" from namespace "Symfony\Bundle\DebugBundle".
!! Did you forget a "use" statement for another namespace? in C:\Users\xsunt\PhpstormProjects\xsun\tv\4.0\src\Kernel.php:32
!! Stack trace:
!! #0 C:\Users\xsunt\PhpstormProjects\xsun\tv\4.0\vendor\symfony\http-kernel\Kernel.php(403): App\Kernel->registerBundles()
!! #1 C:\Users\xsunt\PhpstormProjects\xsun\tv\4.0\vendor\symfony\http-kernel\Kernel.php(122): Symfony\Component\HttpKernel\Kernel->initializeBundles()
!! #2 C:\Users\xsunt\PhpstormProjects\xsun\tv\4.0\vendor\symfony\framework-bundle\Console\Application.php(64): Symfony\Component\HttpKernel\Kernel->boot()
!! #3 C:\Users\xsunt\PhpstormProjects\xsun\tv\4.0\vendor\symfony\console\Application.php(143): Symfony\Bundle\FrameworkBundle\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
!! #4 C:\Users\xsunt\PhpstormProjects\xsun\tv\4.0\bin\console(39) in C:\Users\xsunt\PhpstormProjects\xsun\tv\4.0\src\Kernel.php on line 32
Я думаю, что нам нужно проверить три пакета после
class Kernel extends BaseKernel
{
public function registerBundles()
{
$contents = require $this->getProjectDir().'/config/bundles.php';
foreach ($contents as $class => $envs) {
if (isset($envs['all']) || isset($envs[$this->environment])) {
**yield new $class();**
}
}
}
cat /config/bundles.php
Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true, 'test' => true],
Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true],
Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true],
Не могли бы вы дать мне совет?
Спасибо за ваш ответ. Я собираюсь проверить это еще раз.




Я думаю, проблема в том, что вы не передаете переменную окружения APP_ENV, поэтому скрипт cache:clear работает в режиме разработки.
Вы должны запустить APP_ENV=prod composer install --no-dev --optimize-autoloader
Это также упоминается на https://symfony.com/doc/current/deployment.html#c-install-update-your-vendors
Другой вариант - запустить composer install --no-dev --optimize-autoloader --no-scripts с дополнительным флагом, скрипты выполняться не будут, но я не знаю, полагается ли ваше приложение на запускаемые скрипты.
Сообщение об ошибке рассказывает историю. Вы пытаетесь установить с помощью --- nodev, но у вас все еще есть доступ к DebugBundle. Думаю, вам может потребоваться изменить файл composer.json, хотя я точно не знаю, как это сделать.