eri*_*bae 123 php laravel composer-php laravel-4
我只是无法解决这个问题.
我正在使用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
Run Code Online (Sandbox Code Playgroud)
Adi*_*ana 318
看起来你的交换内存耗尽,试试这个
/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
/sbin/mkswap /var/swap.1
/sbin/swapon /var/swap.1
Run Code Online (Sandbox Code Playgroud)
正如@ BlackBurn027在下面的评论中提到的,这个解决方案在这里描述
fl3*_*3x7 77
有点旧,但万一有新人正在寻找解决方案,更新您的PHP版本可以解决问题.
此外,您应该提交您的composer.lock文件,并在资源密集程度较低的生产环境中进行作曲家安装.
更多细节:https: //github.com/composer/composer/issues/1898#issuecomment-23453850
Uma*_*mid 46
作为作曲家故障排除指南这里 可能会发生这种情况,因为VPS内存不足并且没有启用交换空间.
free -m
Run Code Online (Sandbox Code Playgroud)
要启用交换,您可以使用例如:
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
Run Code Online (Sandbox Code Playgroud)
Abi*_*hek 36
我遇到了同样的问题.我在AWS Free Microinstance上,内存较少.我总是尝试以下选项之一,它始终有效(在此之前请检查您是否安装了最新版本的composer)
sudo php -dmemory_limit=750M composer.phar update
Run Code Online (Sandbox Code Playgroud)
或删除vendor文件夹的内容并尝试编辑器更新.
sudo rm -rf vendor
sudo php -dmemory_limit=750M composer.phar update --no-scripts --prefer-dist
sudo php artisan --dump-autoload
Run Code Online (Sandbox Code Playgroud)
第二个选项尝试更新所有组件,如果没有更新,它会从缓存中获取包,否则从dist中获取
注意:请根据您的选择更改内存限制.
要么
创建一个交换分区并尝试.交换分区是Linux在物理内存耗尽时用作虚拟内存的硬盘驱动器的一部分.它与Windows交换文件类似,而不是使用实际文件,Linux使用硬盘驱动器上的分区.
希望这可以帮助
jei*_*ias 13
尝试
它基本上是提高交换内存
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
ins*_*ign 12
轻松,输入以下命令:
rm -rf vendor/
rm -rf composer.lock
php composer install --prefer-dist
应该适用于低内存机器
Yan*_*nn叶 10
我对流浪者有同样的问题.我通过更多的记忆来修复它.
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", "1024"]
end
Run Code Online (Sandbox Code Playgroud)
以下是解决问题的步骤:(使用即时快速SWAP文件分配方法)
服务器SWAP设置(Ubuntu 16.04 SWAP修复内存不足错误)
检查是否已交换空间,内存和磁盘大小:
sudo swapon -s
free -m
df -h
Run Code Online (Sandbox Code Playgroud)
制作交换文件:(如果要4GB SWAP内存,请将1G更改为4G)
sudo fallocate -l 1G /swapfile
Run Code Online (Sandbox Code Playgroud)
检查交换文件:
ls -lh /swapfile
Run Code Online (Sandbox Code Playgroud)
分配交换文件:
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
Run Code Online (Sandbox Code Playgroud)
检查交换是否正常,内存和磁盘大小:
sudo swapon -s
free -m
df -h
Run Code Online (Sandbox Code Playgroud)
在系统重新启动时附加交换文件:
sudo nano /etc/fstab
/swapfile none swap sw 0 0
Run Code Online (Sandbox Code Playgroud)
调整交换文件设置:
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
Run Code Online (Sandbox Code Playgroud)
SWAP文件优先级:(0-100%=> 0:不进行交换,100:进行SWAP并释放RAM)
vm.swappiness=10
Run Code Online (Sandbox Code Playgroud)
从缓存中删除索引节点:(100:系统太快地从缓存中删除索引节点信息)
vm.vfs_cache_pressure = 50
Run Code Online (Sandbox Code Playgroud)
小智 8
试试看:
/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
/sbin/mkswap /var/swap.1
/sbin/swapon /var/swap.1
Run Code Online (Sandbox Code Playgroud)
以下是我发现每次都适合我的解决方法:
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
Run Code Online (Sandbox Code Playgroud)
小智 6
您可以使用以下方法检查您的空闲(交换)内存
free -m
total used free shared buffers cached
Mem: 2048 357 1690 0 0 237
-/+ buffers/cache: 119 1928
Swap: 0 0 0
Run Code Online (Sandbox Code Playgroud)
要启用交换,您可以使用例如:
/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
/sbin/mkswap /var/swap.1
/sbin/swapon /var/swap.1
Run Code Online (Sandbox Code Playgroud)