3

Symfony2プロジェクトをサーバーにデプロイすると、次のエラーが発生することがあります。

PHP Fatal error:  Uncaught exception 'ErrorException' with message 'proc_open(): 
fork failed - Cannot allocate memory' in 
in phar:///var/www/xyz.co.uk/releases/20130320161122/composer.phar/vendor/
symfony/console/Symfony/Component/Console/Application.php:982

アップデート

完全なエラーメッセージは以下のとおりです--> Updating Composer dependencies

*** [err :: x.xx.xx.xxx] PHP Fatal error:  Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar:///var/www/xyz.co.uk/releases/20130320161815/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:982
*** [err :: x.xx.xx.xxx] Stack trace:
*** [err :: x.xx.xx.xxx] #0 [internal function]: Composer\Util\ErrorHandler::handle(2, 'proc_open(): fo...', 'phar:///var/www...', 982, Array)
*** [err :: x.xx.xx.xxx] #1 phar:///var/www/xyz.co.uk/releases/20130320161815/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php(982): proc_open('stty -a | grep ...', Array, NULL, NULL, NULL, Array)
*** [err :: x.xx.xx.xxx] #2 phar:///var/www/xyz.co.uk/releases/20130320161815/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php(900): Symfony\Component\Console\Application->getSttyColumns()
*** [err :: x.xx.xx.xxx] #3 phar:///var/www/xyz.co.uk/releases/20130320161815/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php(865): Symfony\Component\Console\ in phar:///var/www/xyz.co.uk/releases/20130320161815/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php on line 982
*** [deploy:update_code] rolling back
failed: "sh -c 'sh -c '\\''cd /var/www/xyz.co.uk/releases/20130320161815 && php composer.phar update --no-scripts --verbose --prefer-dist'\\'''" on x.xx.xx.xxx

これは常に発生するわけではありませんが、たまに発生します。サーバー上のapacheおよびcliphp.iniファイルに256Mを割り当てましたが、それでもエラーが発生することがあります。

Symfonyにはどのくらいのメモリが必要ですか?さらに増やす必要がありますか?これで十分だと思いました。

4

3 に答える 3

1

GitHub のこの投稿によると: https://github.com/composer/composer/issues/945 PHP で使用できるメモリが少なくとも1GB必要になるようです。

Symfony は非常にメモリを大量に消費します。1Gb はばかげているように聞こえるかもしれませんが、実行している処理のタイプからすれば、問題外というわけではありません。メモリが不足していることが示されている場合は、メモリを追加するしかありません。

また、1 週間ほど後にもう一度チェックして、何らかのメモリ リークのパッチが適用されていないかどうかを確認することもできます。

于 2013-03-20T16:16:02.567 に答える
1

はい、Symfonyそこにあるほとんどのフレームワークよりも常に重いですが、このエラーはちょっとばかげています. 私がこれを言っているのは、私の運用マシンには合計 512MB の RAM があり、128M が PHP に割り当てられているためです。それでも、アプリケーションは優れたパフォーマンスを発揮します。

さて、ここでは複雑さが大きな役割を果たしているため、どこでエラーが発生しますか? キャッシュのウォームアップ/クリーン中ですか? カスタムコンソールコマンドを実行しようとしていますか?

また、 APCをインストールしてみましたか? それを行った後、私のアプリケーションは燃え上がりました:)

于 2013-03-20T16:46:16.617 に答える