我使用laravel + composer。我正在加载way/generators包,当我运行composer update时给我这个错误:
正在加载包含包信息的编写器存储库依赖项(包括requirements -dev)
致命错误:允许的内存大小为536870912字节耗尽(已尝试)分配67108864字节)phar:///usr/地方/地窖/作曲家/1.0.0-alpha8/libexec/composer.phar/src/作曲家/DependencyResolver/Solver.php第170行
我认为,这是因为作曲家更新使用了所有的内存。
php -d memory_limit=1G /usr/local/Cellar/composer/1.0.0-alpha8/libexec/composer.phar update
这个在mac上也可以用。
如果您在RAM较少的服务器上,例如512MB,则需要创建交换内存。以下是你在ubuntu上的操作方法
touch swap.img
chmod 600 swap.img
为交换空间使用1GB
dd if=/dev/zero of=/var/swap.img bs=1024k count=1000
mkswap /var/swap.img
swapon /var/swap.img
这是全文https://www.digitalocean.com/community/tutorials/how-to-configure-virtual-memory-swap-file-on-a-vps
我在安装laravel时遇到了问题。原命令为:
composer global require "laravel/installer=~1.1"
和错误信息是:
Loading composer repositories with package information Updating dependencies (including require-dev)
Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 67108864 bytes) in phar:///usr/local/Cellar/composer/1.0.0-alpha8/libexec/composer.phar/src/Composer/DependencyResolver/Solver.php on line 170
下面的命令应该可以工作:
php -dmemory_limit=1G /usr/local/Cellar/composer/1.0.0-alpha8/libexec/composer.phar global require "laravel/installer=~1.1"
在我的情况下,我遇到了同样的问题,并设法通过停止Apache和MySQL服务来解决,然后通过composer继续安装laravel应用程序。
sudo service stop apache2
接着是sudo service stop mysql stop
,这反过来杀死了正在消耗内存的应用程序,然后我继续通过正常的编写器命令安装Laravel,一旦完成,我只是重新启动服务,一切都很好。
我找到了解决方案,在阅读了这篇文章:https://github.com/composer/composer/issues/1898
感谢"Dynom,评论于2013年7月4日"
需要512mb RAM的包管理器已经有点多了,但我也要超过它。有趣的是,我的RAM超过了512 MiB到大约800 MiB RAM(根据我的进程输出)私有的Satis存储库(实际上只是所有人的缓存)Github公共存储库)。否则我不会超过它。仅仅通过添加我的满意存储库,composer消耗了近400 MiB的RAM
对于全局提高PHP CLI memory_limit的所有其他人建议不要那样做。相反,我建议把它放在命令中行,像这样:
php -dmemory_limit=1G {composer location} update
的例子:
php -dmemory_limit=1G bin/composer.phar update
否则,您可能会错过某些意想不到的内存相关在自己的工作中的行为。
你有composer的最新版本吗?我已经修复了这个问题与一个简单的更新:
sudo composer self-update