Со вчерашнего дня у меня очень странная проблема.
Бег composer install
на моем рабочем сервере вызывает эту ошибку … Имейте в виду, что я не получаю никаких ошибок на моем локальном сервере (Homestead VM).
Nothing to install or update
Writing lock file
Generating autoload files
Executing command (CWD): php artisan clear-compiled
Executing command (CWD): php artisan optimize
Generating optimized class loader
Compiling common classes
Script php artisan optimize handling the post-install-cmd event returned with an error
[RuntimeException]
Error Output:
Exception trace:
() at phar:///home/site/public_html/composer.phar/src/Composer/EventDispatcher/EventDispatcher.php:177
Composer\EventDispatcher\EventDispatcher->doDispatch() at phar:///home/site/public_html/composer.phar/src/Composer/EventDispatcher/EventDispatcher.php:91
Composer\EventDispatcher\EventDispatcher->dispatchScript() at phar:///home/site/public_html/composer.phar/src/Composer/Installer.php:342
Composer\Installer->run() at phar:///home/site/public_html/composer.phar/src/Composer/Command/InstallCommand.php:131
Composer\Command\InstallCommand->execute() at phar:///home/site/public_html/composer.phar/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:257
Symfony\Component\Console\Command\Command->run() at phar:///home/site/public_html/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:874
Symfony\Component\Console\Application->doRunCommand() at phar:///home/site/public_html/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:195
Symfony\Component\Console\Application->doRun() at phar:///home/site/public_html/composer.phar/src/Composer/Console/Application.php:146
Composer\Console\Application->doRun() at phar:///home/site/public_html/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:126
Symfony\Component\Console\Application->run() at phar:///home/site/public_html/composer.phar/src/Composer/Console/Application.php:83
Composer\Console\Application->run() at phar:///home/site/public_html/composer.phar/bin/composer:43
require() at /home/site/public_html/composer.phar:25
install [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--no-plugins] [--no-custom-installers] [--no-autoloader] [--no-scripts] [--no-progress] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [--ignore-platform-reqs] [packages1] ... [packagesN]
Так что, похоже, ошибка появляется в post-install-cmd
когда php artisan optimize
установлен для запуска … Странная вещь в том, что когда я запускаю все post-install-cmd
вручную я не получаю никакой ошибки.
Итак, я попробовал:
composer selfupdate
composer dumpautoload
composer.lock
файлcomposer clearcache
composer update
, на производстве (отчаянно)И все равно получаю такую же ошибку. Есть ли у вас какие-либо идеи ? У меня заканчиваются ключевые слова, чтобы найти похожие проблемы в Интернете.
большое спасибо
РЕДАКТИРОВАТЬ :
Также не удалось упомянуть, что сайт работает нормально .. Никаких ошибок при просмотре.
РЕДАКТИРОВАТЬ 2:
Согласно предложению @marcanuy, я попытался удалить каталог vendor. Пока на нем я также очистил скомпилированный и композитный кеш. Composer заново загрузил / установил все. И все равно получаю такую же ошибку.
РЕДАКТИРОВАТЬ 3:
Так что я сузил это до этого. Я НЕ ПОЛУЧАЮ ОШИБКУ, ЕСЛИ Я УСТАНАВЛИВАЮ APP_DEBUG в true … Когда false, я получаю ошибку. Есть идеи почему?
ЗАКЛЮЧИТЕЛЬНОЕ РЕДАКТИРОВАНИЕ:
Спасибо Бену Джонсону, который указал мне правильное направление … Я проверил свои необработанные журналы PHP, и да, они отличаются от журналов laravel (да, я должен был подумать об этом). Я увидел странную ошибку памяти, не связанную с файлами в стеке ошибок выше:
[02-Jun-2015 14:05:01 Europe/Paris] PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 64 bytes) in /vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php on line 169
После тада момент. Я поднял memory_limit и composer install
работает без ошибок, и с APP_DEBUG выключен.
Большое спасибо всем за вашу помощь.
Вы изучили необработанные журналы PHP?
Важно отметить, что журналы Laravel не содержат всю ту же информацию, что и необработанные журналы ошибок PHP. При использовании Laravel всегда проверяйте необработанные журналы PHP, когда возникает ошибка, и видимый вывод и журнал Laravel не раскрывают первопричину.
Не менее важно отметить, что Composer подчиняется капризам любого PHP-файла, который он загружает и обрабатывает, а это означает, что любой тип ошибок, которые могут возникнуть в PHP-файле, который совершенно не связан с Composer, способен вызвать сбой Composer. Часто без объяснения причин. тем не мение, основная причина почти всегда очевидна в необработанных логах PHP.
Пустая сигнатура метода в верхней части трассировки стека необычна. Я подозреваю, что если вы проверите необработанные журналы PHP, вы обнаружите необычное состояние, которое полностью объясняет внезапное прекращение composer.phar
,
Пожалуйста, проверьте там дальше и дайте нам знать, что вы найдете.
Проблема связана с php artisan optimize
а не composor.phar
как вы можете видеть в Оптимизация основы для лучшей производительности если APP_DEBUG имеет значение true, вам нужно использовать --force
вариант с командой. Таким образом, чтобы решить эту ошибку, вам нужно изменить composor.json
линия в "post-install-cmd"
раздел из "php artisan optimize"
в "php artisan optimize --force"