php – 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 ComposerEventDispatcherEventDispatcher->doDispatch() at phar:///home/site/public_html/composer.phar/src/Composer/EventDispatcher/EventDispatcher.php:91 ComposerEventDispatcherEventDispatcher->dispatchScript() at phar:///home/site/public_html/composer.phar/src/Composer/Installer.php:342 ComposerInstaller->run() at phar:///home/site/public_html/composer.phar/src/Composer/Command/InstallCommand.php:131 ComposerCommandInstallCommand->execute() at phar:///home/site/public_html/composer.phar/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:257 SymfonyComponentConsoleCommandCommand->run() at phar:///home/site/public_html/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:874 SymfonyComponentConsoleApplication->doRunCommand() at phar:///home/site/public_html/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:195 SymfonyComponentConsoleApplication->doRun() at phar:///home/site/public_html/composer.phar/src/Composer/Console/Application.php:146 ComposerConsoleApplication->doRun() at phar:///home/site/public_html/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:126 SymfonyComponentConsoleApplication->run() at phar:///home/site/public_html/composer.phar/src/Composer/Console/Application.php:83 ComposerConsoleApplication->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] 所以当php artisan optimize设置为运行时,似乎错误出现在post-install-cmd中…奇怪的是,当我手动运行所有post-install-cmd时,我不会收到任何错误. 所以我尝试过: >做一个作曲家自我更新 仍然得到相同的错误.你有什么想法 ?我的关键字用完了,无法在线查找类似的问题. 非常感谢 编辑: 也没提到网站工作正常..浏览时没有错误. 编辑2: 根据@marcanuy建议,我尝试删除供应商目录.在此期间,我还清除了编译和编写器缓存. Composer重新下载/安装了所有内容.仍然得到相同的错误. 编辑3: 所以我把它缩小到了这个范围.如果我将APP_DEBUG设置为true,则不会出现错误…如果为false,则会收到错误.知道为什么吗? 最终编辑: 感谢Ben Johnson向我指出了正确的方向……我检查了我的原始PHP日志,是的,它们与laravel日志不同(duh,应该想到这一点).我在那里看到了一个奇怪的内存错误,与上面错误堆栈中的文件无关: [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关闭了. 非常感谢大家的帮助.
你检查过原始PHP日志了吗?
至关重要的是要注意Laravel的日志不包含PHP的原始错误日志所做的所有相同信息.使用Laravel时,请始终在发生错误时检查原始PHP日志,并且可见输出和Laravel日志不会显示根本原因. 同样重要的是要注意Composer受其加载和处理的任何PHP文件的影响,这意味着与Composer完全无关的PHP文件中可能出现的任何类型的错误都会导致Composer失败,经常没有解释.但是,原始PHP日志中的根本原因几乎总是显而易见的. 堆栈跟踪顶部的空方法签名是不常见的.我怀疑如果你检查原始PHP日志,你会发现一些不寻常的条件,完全解释了composer.phar的突然终止. 请在下面查看,告诉我们你找到了什么. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |