Help us understand the problem. What is going on with this article?

php.ini (memory) に 1時間持っていかれた話

目標ができ、アウトプットするために記事を書こうと思いました。

がんばるぞい!

環境


・PHP 7.3

・Composer 1.10.13

問題

個人開発をネタにしようと何を作ろうか悩みながら
composerでインストールしていたら
壁は突然現れました。

スクリーンショット 2020-10-10 15.17.40.png

まず、error内容をグーグル先生に伝えました。
そうすると php.ini の内容を変えましょうという助言をいただきました。

【PHP】composer require時にPHP Fatal error: Allowed memory size of XXX bytes exhaustedが表示されたら

記事を拝読しました。
記事に、メモリ上限値無制限とあって、怖いなと感じて素直に行動しませんでした。
ここが良くなかったです。自ら時間を捨てる結果となりました。

# まずは、memory_limitの設定値を確認してみました (記事通りの結果)
% php -r "echo ini_get('memory_limit').PHP_EOL;"
128M
# php.iniの場所を確認しました (MacOS)
% php -i | grep php.ini                              
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini

先程のerror文の中に

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

とあったので
php.iniを見て疑問に思いました。

php.ini
memory_limit = 128M # 256M や 512Mにしてみましたが…

4096 byteとあったので
0.004MBくらいじゃん!128M(MB?)で何がいけないの?
と思っていました。

数値を適当に上げましたが
同じerror文が出ました。

ファイルの場所や参照している何かが違うのか?と
1時間以上、調べまくりました。

しかし、どうにもならないので
希望の光もなく、見覚えのある数字にしてみました。

php.ini
memory_limit = 4096M

としました。

そしたら、成功しました。

キモチェ〜〜〜〜というか
ファ?!という感じでした。  完

数時間後、この記事を書いている際

error文を翻訳してみました。

1610612736バイトの許容メモリサイズが使い果たされました
(4096バイトを割り当てようとしました)

とのこと。

コア php.ini ディレクティブに関する説明 ¶リソース制限

公式サイトを確認してもよくわからなかったので

4096MのMってMemoryのMなのかな〜
そんなことを考えながら
別件のメールサーバーいじってたら、
6時間も過ぎてしまいました。

ちょっとイジるつもりが詰まってしまって…

何もできていない、開発しないとッ!!

緩い日報のようになってしまいました。

今回の投稿で感じたことは
画像より文字の方がいいなと感じたので
スクリーンショットではなくて
これからは、メモなどにコピペしておこうと思います。

Markdown 覚えないと…

以上

kMaskPro
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away