Сбой установки Composer на Laravel 5 (только производство)

Со вчерашнего дня у меня очень странная проблема.
Бег 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 вручную я не получаю никакой ошибки.

Итак, я попробовал:

  1. делать composer selfupdate
  2. Удаление композитора и его повторная установка
  3. Использование composer.phar вместо глобального
  4. дела composer dumpautoload
  5. удаление composer.lock файл
  6. удаление всего кэша composer clearcache
  7. работает 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 выключен.

Большое спасибо всем за вашу помощь.

7

Решение

Вы изучили необработанные журналы PHP?

Важно отметить, что журналы Laravel не содержат всю ту же информацию, что и необработанные журналы ошибок PHP. При использовании Laravel всегда проверяйте необработанные журналы PHP, когда возникает ошибка, и видимый вывод и журнал Laravel не раскрывают первопричину.

Не менее важно отметить, что Composer подчиняется капризам любого PHP-файла, который он загружает и обрабатывает, а это означает, что любой тип ошибок, которые могут возникнуть в PHP-файле, который совершенно не связан с Composer, способен вызвать сбой Composer. Часто без объяснения причин. тем не мение, основная причина почти всегда очевидна в необработанных логах PHP.

Пустая сигнатура метода в верхней части трассировки стека необычна. Я подозреваю, что если вы проверите необработанные журналы PHP, вы обнаружите необычное состояние, которое полностью объясняет внезапное прекращение composer.phar,

Пожалуйста, проверьте там дальше и дайте нам знать, что вы найдете.

2

Другие решения

Проблема связана с php artisan optimize а не composor.phar как вы можете видеть в Оптимизация основы для лучшей производительности если APP_DEBUG имеет значение true, вам нужно использовать --force вариант с командой. Таким образом, чтобы решить эту ошибку, вам нужно изменить composor.json линия в "post-install-cmd" раздел из "php artisan optimize" в "php artisan optimize --force"

0

По вопросам рекламы [email protected]