从昨天开始,我有一个非常奇怪的问题。在我的生产服务器上运行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.phar 而不是全局的
- 正在做
composer dumpautoload
- 删除
composer.lock
文件 - 删除所有缓存
composer clearcache
- 在生产中运行 a
composer update
(绝望)
并且仍然得到同样的错误。你有什么想法 ?我的关键字用完了,无法在网上找到类似的问题。
非常感谢
编辑 :
也没有提到该网站运行良好。浏览时没有错误。
编辑 2:
根据@marcanuy 的建议,我尝试删除供应商目录。在此期间,我还清除了已编译和作曲家缓存。作曲家重新下载/安装了一切。并且仍然得到同样的错误。
编辑 3:
所以我把它缩小到这个。如果我将 APP_DEBUG 设置为 true,我不会收到错误消息...如果为 false,我会收到错误消息。知道为什么吗?
最后编辑:
感谢 Ben Johnson 为我指明了正确的方向……我检查了我的原始 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
在tada时刻之后。我提出了 memory_limit 并且composer install
没有错误地运行,并且 APP_DEBUG 关闭。
非常感谢大家的帮助。