私はこれを解決できません。
私はLinode 1G RAM基本計画を使用しています。 Composerを介してパッケージをインストールしようとしても、私に許可されません。 PHP.iniでメモリ制限が「-1」に設定されています
これをインストールするためにできることは他にありますか?
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing thujohn/rss (dev-master df80a7d)
Downloading: 100%
PHP Fatal error: Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:975
Stack trace:
#0 [internal function]: Composer\Util\ErrorHandler::handle(2, 'proc_open(): fo...', 'phar:///usr/loc...', 975, Array)
#1 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(975): proc_open('stty -a | grep ...', Array, NULL, NULL, NULL, Array)
#2 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(853): Symfony\Component\Console\Application->getSttyColumns()
#3 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(818): Symfony\Component\Console\Application->getTerminalDimensions()
#4 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(752): Symfony\Component\Console\Application->getTerminalWidth()
#5 phar:///usr/local/bin/com in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php on line 975
Fatal error: Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:975
Stack trace:
#0 [internal function]: Composer\Util\ErrorHandler::handle(2, 'proc_open(): fo...', 'phar:///usr/loc...', 975, Array)
#1 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(975): proc_open('stty -a | grep ...', Array, NULL, NULL, NULL, Array)
#2 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(853): Symfony\Component\Console\Application->getSttyColumns()
#3 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(818): Symfony\Component\Console\Application->getTerminalDimensions()
#4 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(752): Symfony\Component\Console\Application->getTerminalWidth()
#5 phar:///usr/local/bin/com in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php on line 975
少し古いですが、新しい人が解決策を探している場合に備えて、PHPバージョンを更新すると問題を解決できます。
また、composer.lockファイルをコミットし、リソースをあまり使用しない本番環境でcomposerインストールを実行する必要があります。
詳細はこちら: https://github.com/composer/composer/issues/1898#issuecomment-2345385
スワップメモリが不足しているようです。これを試してください
/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
/sbin/mkswap /var/swap.1
/sbin/swapon /var/swap.1
以下のコメントで@ BlackBurn027が言及したように、この解決策は here
私は同じ問題に直面しました。メモリが少ないAWS Free Microinstanceを使用しています。私は常に以下のオプションのいずれかを試してみて、常に動作します(これの前に、composerの最新バージョンがインストールされているかどうかを確認してください)
Sudo php -dmemory_limit=750M composer.phar update
または、ベンダーフォルダーの内容を削除して、composer更新を試してください。
Sudo rm -rf vendor
Sudo php -dmemory_limit=750M composer.phar update --no-scripts --prefer-dist
Sudo php artisan --dump-autoload
2番目のオプションは、すべてのコンポーネントを更新しようとします。更新がない場合、キャッシュからパッケージを取得し、そうでない場合はdistから取得します
注:選択に応じてメモリ制限を変更してください。
または
swap partitionを作成して試してください。スワップパーティションは、Linuxが物理メモリを使い果たしたときに仮想メモリとして使用するハードドライブの一部です。実際のファイルを使用する代わりに、Windowsのスワップファイルのみに似ています。Linuxは、代わりにハードドライブのパーティションを使用します。
お役に立てれば
As composerトラブルシューティングガイド here これは、VPSのメモリが不足し、スワップスペースが有効になっていないために発生する可能性があります。
free -m
スワップを有効にするには、たとえば次を使用できます。
Sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
Sudo /sbin/mkswap /var/swap.1
Sudo /sbin/swapon /var/swap.1
簡単に、次のコマンドを入力します。
rm -rf vendor/
rm -rf composer.lock
php composer install --prefer-dist
低メモリのマシンで動作するはずです
浮浪者にも同じ問題がありました。より多くのメモリを割り当てることで修正しました。
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", "1024"]
end
それを試してください:
/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
/sbin/mkswap /var/swap.1
/sbin/swapon /var/swap.1
毎回私にとってうまくいくことがわかった回避策は次のとおりです。
df -h
dd if=/dev/zero of=/swapfile bs=1M count=1024
Sudo dd if=/dev/zero of=/swapfile bs=1M count=1024
mkswap /swapfile
Sudo chmod 600 /swapfile
Sudo mkswap /swapfile
Sudo swapon /swapfile
echo 'echo "/swapfile none swap defaults 0 0" >> /etc/fstab' | Sudo sh
free -m
confirm u see your swap there:
total used free shared buffers cached
Mem: 494 335 158 0 19 62
-/+ buffers/cache: 254 240
Swap: 1023 3 1020
watch free -m
問題を修正する手順は次のとおりです:(インスタント高速SWAPファイル割り当て方法を使用)
サーバーSWAPセットアップ(メモリ不足エラーを修正するためのUbuntu 16.04 SWAP)
スワップ、メモリ、ディスクサイズが既にあるかどうかを確認します。
Sudo swapon -s
free -m
df -h
スワップファイルの作成:(4GBのスワップメモリが必要な場合は、1Gを4Gに変更します)
Sudo fallocate -l 1G /swapfile
スワップファイルを確認します。
ls -lh /swapfile
スワップファイルの割り当て:
Sudo chmod 600 /swapfile
Sudo mkswap /swapfile
Sudo swapon /swapfile
スワップOK、メモリ、およびディスクサイズを確認します。
Sudo swapon -s
free -m
df -h
システムの再起動時にスワップファイルを添付:
Sudo nano /etc/fstab
/swapfile none swap sw 0 0
スワップファイル設定の調整:
cat /proc/sys/vm/swappiness
cat /proc/sys/vm/vfs_cache_pressure
Sudo sysctl vm.swappiness=10
Sudo sysctl vm.vfs_cache_pressure=50
Sudo nano /etc/sysctl.conf
SWAPファイルの優先度:(0-100%=> 0:スワップに入れない、100:SWAPに入れてRAMを解放する)
vm.swappiness=10
キャッシュからiノードを削除する:(100:システムはキャッシュからiノード情報をすぐに削除します)
vm.vfs_cache_pressure = 50
これを試して:
/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
/sbin/mkswap /var/swap.1
/sbin/swapon /var/swap.1
Centos 6でのこの作業
これは、1GB以下のサーバーインスタンスで繰り返し発生する問題のようです。プロセスとTweakスワップ設定をシャットダウンしようとする以外に、ローカルマシンにインストールしてアップロードすることもできます。
時には自己更新composerにより問題を解決します
php composer.phar self-update
乾杯
私はほとんどの場合この状況に陥りますので、通常はスワップメモリを設定する手順に従いました。
しかし今、私は私のために働いた簡単な代替トリックを見つけました。
composer update --no-dev
以外のcomposer update
を実行します
Vagrantで同じ問題を解決しました。 memory_limitの値を増やしてcomposerキャッシュを削除します:Sudo rm -R〜/ .composerそして最後に浮浪者のリロード。
私の512MBホスティングでphp composer.pharの更新で同じ問題があります。
php composer.phar installで解決
試してみる
Sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024 && Sudo /sbin/mkswap /var/swap.1 && Sudo /sbin/swapon /var/swap.1
ベンダーフォルダーおよびcomposer.lockファイルを削除してみて、コマンドcomposer clear-cache
を実行してからcomposer install
を実行しました。したがって、エラーなしで動作します。
PHP memory_limit
をデフォルトの128Mから512Mに増やし、サーバーを再起動しました。これで問題は解決しました。
DigitalOcean でホストされている最も安価なサーバー(512MB RAM)で同様の問題が発生し、同じサーバーでJenkins CIを実行していました。 Jenkinsインスタンスを停止した後、composer installコマンドが機能しました(ポイントまでは、mcrypt拡張機能が既にインストールされているだけでなく、失敗しました!)。
サーバーで別のアプリを実行している場合は、おそらくそれを停止してコマンドを再実行する価値があります。
composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
サーバーのメモリを更新し、「4G」を必要とする4GB RAMの変更[サーバータイプを変更するか、RAMを追加してください]
2ファイルを編集する必要があります
コマンドで
# cd /var/www/html
# nano .htaccess
"memory_limit 756M”
を4G
に編集します
PHP 7.0のPHP ini
# cd ~
# php –-ini
# Sudo nano /etc/php-7.0.ini
memory_limit = 128Mから4G
#AWS #AMAZONLINUX#MAGENTO2#PHP7.
スワップを作成し、composerコマンドを再度実行します。私はそれがあなたのために働くことを願っています。
$ dd if=/dev/zero of=/swapfile bs=1024 count=512k
$ mkswap /swapfile
$ swapon /swapfile
$ echo "/swapfile none swap sw 0 0 " >> /etc/fstab
$ echo 0 > /proc/sys/vm/swappiness
$ chown root:root /swapfile
$ chmod 0600 /swapfile
php.iniファイルを編集して、memory_limit値を増やします。
memory_limit = 1G
この問題を解決します。