Laravel 5.2 artisan 优化 - php_strip_whitespace 无法打开流:没有子进程
Laravel 5.2 artisan optimize - php_strip_whitespace failed to open stream: No child processes
自从 5.1 升级到 Laravel 5.2 后,当 运行 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 和 vendor 所在的目录。
该命令在我的开发箱 运行 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 年 4 月的一次提交中被清空 但是我看不到 升级指南中提到的更改。它已被添加到 升级指南。
要解决此问题:
- 清空
config/compile.php
中的文件数组
或
- 从
config/compile.php
中的文件数组中删除 BusServiceProvider.php
和 ConfigServiceProvider.php
.
此错误的原因是 BusServiceProvider
和 ConfigServiceProvider
作为 5.1 到 5.2 过渡的一部分已被删除。尽管提供的删除所有已编译 类 的答案将解决问题,但您需要删除的唯一两个是 config/compile.php
.
中的 BusServiceProvider
和 ConfigServiceProvider
'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'),
],
自从 5.1 升级到 Laravel 5.2 后,当 运行 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 和 vendor 所在的目录。
该命令在我的开发箱 运行 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 年 4 月的一次提交中被清空 但是我看不到 升级指南中提到的更改。它已被添加到 升级指南。
要解决此问题:
- 清空
config/compile.php
中的文件数组
或
- 从
config/compile.php
中的文件数组中删除BusServiceProvider.php
和ConfigServiceProvider.php
.
此错误的原因是 BusServiceProvider
和 ConfigServiceProvider
作为 5.1 到 5.2 过渡的一部分已被删除。尽管提供的删除所有已编译 类 的答案将解决问题,但您需要删除的唯一两个是 config/compile.php
.
BusServiceProvider
和 ConfigServiceProvider
'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'),
],