昨天我试着用Composer在我的Laravel 4项目中安装aws/aws-sdk-php,我记不起具体的事件链,但它没有成功安装。从那以后,我就收到了作曲家内存不足的错误-- Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 32 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52。
我将php.ini memory_limit提高到-1,这种情况在我的开发和生产环境中仍然存在(生产分为OS 6)。如果我在运行memory_limit时通过CLI增加composer_update,那么安装就会成功完成,但这需要很长时间。
是否需要清除某种缓存,以防止Composer内存不足?我有一种感觉,每次我运行composer更新时,它仍然试图安装AWS。
编写器文件
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"require": {
"laravel/framework": "4.0.*",
"rtablada/package-installer": "dev-master",
"mogreet/mogreet-php": "dev-master",
"twilio/laratwilio": "dev-master",
"balloon/elephant.io": "dev-master",
"facebook/php-sdk": "dev-master",
"way/generators": "dev-master",
"codesleeve/asset-pipeline": "dev-master",
"natxet/CssMin": "dev-master"
},
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php",
"app/libraries"
]
},
"scripts": {
"post-install-cmd": [
"php artisan optimize"
],
"pre-update-cmd": [
"php artisan clear-compiled"
],
"post-update-cmd": [
"php artisan optimize"
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
},
"minimum-stability": "dev"
}发布于 2014-02-16 18:46:48
编辑:在更进一步之前,一定要确保您正在运行最新版本的composer,您可以通过composer self-update对其进行更新。
当您运行composer update时,它将为您的每个库(或最新版本)计算最新的gitref,然后安装该库的版本。然后将这些版本存储在composer.lock文件中。
当您运行composer install时,它只是安装在composer.lock文件中定义的版本。
composer update花费这么长时间使用这么多内存,是因为它必须跟踪每个库的版本,将其与您在composer.json中定义的版本进行比较,然后检查库的所有依赖项。这是一个相当密集的过程。
我发现使用hhvm运行composer (您可以安装它这里)可以极大地加快composer update进程的速度。
除此之外,您只需忍受高内存使用率,并在php.ini文件中增加内存使用量。确保更新与CLI相关的内容。
编辑:您不应该在生产环境中运行composer update。您应该只在开发时更新您的依赖项,然后在生产环境中使用composer install安装您上一次使用的composer依赖项集。
发布于 2014-02-17 01:42:54
目前,作曲家身上有一个错误,导致内存耗尽。
如果你这样做了
composer install然后删除供应商内部的文件夹
rm -rf vendor/laravel并这样做
composer update你会得到这个错误的。这是一个错误,它不应该耗尽内存。
现在,您可以通过以下操作来解决这个问题:
php -d memory_limit=-1 /usr/local/bin/composer update另外,检查这条线,他们即将修复这个问题。
发布于 2014-04-01 13:15:48
尝尝这个。它解决了我的问题,我想修复它的更好的方法,而不是更新内存。
sudo composer self-updatehttps://stackoverflow.com/questions/21815635
复制相似问题