微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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
 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]

所以当PHP artisan optimize设置为运行时,似乎错误出现在post-install-cmd中…奇怪的是,当我手动运行所有post-install-cmd时,我不会收到任何错误.

所以我尝试过:

>做一个作曲家自我更新
>删除composer并重新安装它
>使用composer.phar而不是全局的
>做作曲家dumpautoload
>删除composer.lock文件
>删除所有缓存作曲家clearcache
>在生产中运行作曲家更新(绝望)

仍然得到相同的错误.你有什么想法 ?我的关键字用完了,无法在线查找类似的问题.

非常感谢

编辑:

也没提到网站工作正常..浏览时没有错误.

编辑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的突然终止.

请在下面查看,告诉我们你找到了什么.

原文地址:https://www.jb51.cc/laravel/134266.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。