PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes)

原文連接:https://www.wjcms.net/archives/2020-10-05-20-03-19

今天在使用composer安裝擴展包時報錯,如下:

PHP Fatal error:  Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///www/server/php/74/bin/composer/src/Composer/DependencyResolver/Solver.php on line 223

Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///www/server/php/74/bin/composer/src/Composer/DependencyResolver/Solver.php on line 223

Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors.#   

於是折騰了很久,終於還是成功了,寫下文章記錄一下,分享給大家。

在網上找到的文章如下,

通過上面提示composer鏈接,輸出內存配置信息

php -r "echo ini_get('memory_limit').PHP_EOL;"
輸出 128M

我嘗試修改 php.ini文件,我的路徑是 /etc/php7/apache2/php.ini,修改裏面的 memory_limit = -1, 重啓apache之後,運行 composer update 一樣的錯誤,我想到的是可能 php 命令和apache2的 php.ini文件不是同一個,所以

wakasann@linux-2ywt:/srv/www/htdocs/sfs> sudo find / -name "php.ini"[sudo] password for root: /etc/php7/cli/php.ini/etc/php7/apache2/php.ini/etc/php7/fastcgi/php.ini
我嘗試修改 /etc/php7/cli/php.ini 中的 memory_limit的值爲 -1,修改完之後,運行

php -r "echo ini_get('memory_limit').PHP_EOL;"
輸出結果是: -1 感覺修改成功,composer update也可正常運行了。

可以成功解決,但是不安全,在這裏不推薦使用。

終極解決方法

這裏寫下我的推薦方法,就是使用命令安裝。

php -d memory_limit=-1 /usr/bin/composer require xxxx/xxxxxxx

就可以發現安裝成功了。

注意

上述命令中的/usr/bin/composer,爲composer安裝地址 可使用 composer -h 命令進行獲取。

關注我,每天分享更多文章。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章