在我的 Symfony 项目中,运行composer update/install
命令时出错:
这是我运行composer时发生的错误:
致命错误:允许的内存大小为1073741824字节(已尝试 分配524288字节) 药业:// C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Util/RemoteFilesystem.php 在第189行
如您所见,我以管理员身份运行prompt命令,但即使我以非admin身份运行命令,也会发生同样的错误。
我还检查了页面here,以便设置他们建议的更改,以便毫无困难地运行编辑器。
我在Windows 10上并使用wamp服务器进行项目。
所以在我的php.ini中我写了这一行:memory_limit = 2G
我重新启动wamp,所以我的电脑也是如此。当我运行命令php -r "echo ini_get('memory_limit').PHP_EOL;"
时,它始终显示128M
。
如果我运行composer diagnose
命令,这是我从提示命令获得的:
正如你在这里看到的,作曲家在我的composer.json上显示错误。
这是我的composer.json
文件:
{
"name": "symfony/framework-standard-edition",
"license": "MIT",
"type": "project",
"description": "The \"Symfony Standard Edition\" distribution",
"autoload": {
"psr-4": { "": "src/" }
},
"minimum-stability": "dev",
"prefer-stable": true,
"require": {
"php": ">=5.3.9",
"symfony/symfony": "2.7.*",
"doctrine/orm": "^2.4.8",
"doctrine/doctrine-bundle": "~1.4",
"symfony/assetic-bundle": "~2.3",
"symfony/swiftmailer-bundle": "~2.3",
"symfony/monolog-bundle": "~2.4",
"sensio/distribution-bundle": "~4.0",
"sensio/framework-extra-bundle": "^3.0.2",
"incenteev/composer-parameter-handler": "~2.0",
"friendsofsymfony/user-bundle": "~2.0",
"knplabs/doctrine-behaviors": "~1.1",
"friendsofsymfony/jsrouting-bundle": "^1.5",
"jms/serializer-bundle": "^1.1",
"sonata-project/seo-bundle": "^2.0",
"genemu/form-bundle": "2.2.*",
"elao/web-profiler-extra-bundle" : "~2.3@dev",
"maxmind/geoip": "dev-master",
"a2lix/translation-form-bundle": "^2.0",
"ircmaxell/password-compat": "^1.0",
"sonata-project/translation-bundle": "^1.0",
"sp/bower-bundle": "^0.11.0",
"ensepar/html2pdf-bundle" : "~2.0"
},
"require-dev": {
"sensio/generator-bundle": "~2.3",
"doctrine/doctrine-fixtures-bundle": "^2.3"
},
"scripts": {
"pre-install-cmd": [
"BetonDirect\\EntityBundle\\HerokuDatabase::populateEnvironment"
],
"post-install-cmd": [
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
],
"post-update-cmd": [
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
]
},
"config": {
"bin-dir": "bin"
},
"extra": {
"symfony-app-dir": "app",
"symfony-web-dir": "web",
"symfony-assets-install": "hard-copy",
"incenteev-parameters": {
"file": "app/config/parameters.yml",
"env-map": {
"database_driver": "DATABASE_DRIVER",
"database_host": "DATABASE_HOST",
"database_port": "DATABASE_PORT",
"database_name": "DATABASE_NAME",
"database_user": "DATABASE_USER",
"database_password": "DATABASE_PASSWORD"
}
},
"branch-alias": {
"dev-master": "2.7-dev"
}
}
}
我也在我的wamp,服务器xdebug zend扩展中禁用,但它也不起作用(当我更改memory_limit时,同样的问题,没有任何改变)。
如果你有一些问题,我很感激。
答案 0 :(得分:0)
您正在编辑错误的php ini
找出你必须为cli编辑的php.ini
在cmd类型php -i
并搜索php.ini
或放置echo phpinfo()
在第180行的RemoteFilesystem.php或其他任何内容和搜索stdout for php.ini
答案 1 :(得分:0)
似乎您已经为Windows安装了32位PHP版本,此处的内存限制为2GB。您可以安装64位PHP版本,并且内存限制为4GB,应该足够了。
这是一个教程:
答案 2 :(得分:0)
这是 Windows 10 中的解决方案
php -d memory_limit=-1 C:/ProgramData/ComposerSetup/bin/composer.phar update