Laravel 5.2 artisan optimize – php_strip_whitespace не удалось открыть поток: никаких дочерних процессов

Начиная с обновления до Laravel 5.2 от версии 5.1, при запуске artisan оптимизируется на CircleCI, запуская PHP 5.6.14, я получаю

[ErrorException] php_strip_whitespace(/var/laravel/project/root): failed to open stream: No child processes 

Где / var / laravel / project / root – это каталог, в котором находятся composer.json и поставщик.

Команда отлично работает в моем блоке dev, использующем PHP 5.6.11-1ubuntu3.1. Я последовал официальному руководству по обновлению 5.1 до 5.2.

 Exception trace: () at /var/laravel/project/root/vendor/classpreloader/classpreloader/src/ClassPreloader.php:124 Illuminate\Foundation\Bootstrap\HandleExceptions->handleError() at n/a:n/a php_strip_whitespace() at /var/laravel/project/root/vendor/classpreloader/classpreloader/src/ClassPreloader.php:124 ClassPreloader\ClassPreloader->getCode() at /var/laravel/project/root/vendor/laravel/framework/src/Illuminate/Foundation/Console/OptimizeCommand.php:83 Illuminate\Foundation\Console\OptimizeCommand->compileClasses() at /var/laravel/project/root/vendor/laravel/framework/src/Illuminate/Foundation/Console/OptimizeCommand.php:64 Illuminate\Foundation\Console\OptimizeCommand->fire() at n/a:n/a call_user_func_array() at /var/laravel/project/root/bootstrap/cache/compiled.php:1217 Illuminate\Container\Container->call() at /var/laravel/project/root/vendor/laravel/framework/src/Illuminate/Console/Command.php:169 Illuminate\Console\Command->execute() at /var/laravel/project/root/vendor/symfony/console/Command/Command.php:256 Symfony\Component\Console\Command\Command->run() at /var/laravel/project/root/vendor/laravel/framework/src/Illuminate/Console/Command.php:155 Illuminate\Console\Command->run() at /var/laravel/project/root/vendor/symfony/console/Application.php:787 Symfony\Component\Console\Application->doRunCommand() at /var/laravel/project/root/vendor/symfony/console/Application.php:186 Symfony\Component\Console\Application->doRun() at /var/laravel/project/root/vendor/symfony/console/Application.php:117 Symfony\Component\Console\Application->run() at /var/laravel/project/root/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:107 Illuminate\Foundation\Console\Kernel->handle() at /var/laravel/project/root/artisan:36 

Любые идеи о том, как я могу это решить, пожалуйста?

Я нашел ответ на https://laracasts.com/discuss/channels/laravel/laravel-optimize-error, где johnwheal упоминает, что config/compile.php неверен.

Оказывается, массив файлов в config/compile.php был опустошен в коммит в апреле 2015 года, но я не вижу изменений, упомянутых в Руководстве по обновлению . С тех пор он был добавлен в Руководство по обновлению .

Чтобы устранить проблему:

  • Пустой массив файлов в config/compile.php

или

  • Удалите BusServiceProvider.php и ConfigServiceProvider.php из массива файлов в config/compile.php .

Причина этой ошибки заключается в том, что BusServiceProvider и ConfigServiceProvider были удалены в рамках перехода от 5.1 до 5.2. Хотя ответ, предоставленный для удаления всех скомпилированных классов, исправит проблему, единственными, которые вам нужно удалить, является BusServiceProvider и ConfigServiceProvider из config/compile.php .

'files' => [ realpath(__DIR__.'/../app/Providers/AppServiceProvider.php'), realpath(__DIR__.'/../app/Providers/BusServiceProvider.php'), // This one realpath(__DIR__.'/../app/Providers/ConfigServiceProvider.php'), // And this one realpath(__DIR__.'/../app/Providers/EventServiceProvider.php'), realpath(__DIR__.'/../app/Providers/RouteServiceProvider.php'), ],