【2019/01/09現在】Mac PHP7.3にて、composerがPHP Fatal error: Uncaught ErrorException: preg_match_all(): JIT compilation failed: no more memory

この記事の目次
chevron_right やってみる
chevron_right php.iniの場所
chevron_right 編集する

PHP7.3をbrewを使ってMacに入れたのですが、人柱になりました。
composerを使おうとすると、以下のエラーが出ます。

PHP Fatal error:  Uncaught ErrorException: preg_match_all(): JIT compilation failed: no more memory

調べて見ると、バグっぽいですね。

ひとまずの回避策

php.iniのpcre.jitを0にします。

やってみる

php.iniの場所

$ php -i | grep php.ini

コヤツを叩けば出てくるはず。
自分の環境では「/usr/local/etc/php/7.3/php.ini」でした。

編集する

sudo vim /usr/local/etc/php/7.3/php.ini

多分以下のような記述の場所があるはず。

 ; Enables or disables JIT compilation of patterns. This requires the PCRE
 ; library to be compiled with JIT support.
 ;pcre.jit=1

なので、これを変えてあげましょう

 ; Enables or disables JIT compilation of patterns. This requires the PCRE
 ; library to be compiled with JIT support.
 ;pcre.jit=1
 pcre.jit=0         ; ←追加

これでOK。
もしこれでもコケるようであれば、sudo apachectl restartをしてあげる。

[PR] おすすめの本
この記事を書いた人
Nな人(えぬなひと)。
Nは本名から取っています。
Laravelが大好きなPHPerで、WEBを作るときはLaravelを技術スタックに絶対推すマン。
PHP、Pythonと、昔はperlを書いていたP言語エンジニア。
最近はNimを書いたりしています。