Syntax Error.

[Sy] macOS (High Sierra) にて PHP をアップデートする手順( PHP5.6 -> PHP7.0 )

2018/08/20

macOS (High Sierra) にて PHP5.6 から 7.0 にアップデートする手順です。 Homebrew を使ってます。

1. PHP7.0 をインストール

Homebrew を使って、 PHP7.0 を以下のようにインストールします。

$ brew install php@7.0

2. PATH の設定を変更

.bashrc.zshrc を編集し、 今インストールした PHP7.0 を有効にするために PATH を次のようにします。(おそらく元々 PHP5.6 の設定が書いてあるはずなので、それを修正します)

$ vim ~/.bashrc
(.bashrc)

export PATH="/usr/local/opt/php@7.0/bin:$PATH"
export PATH="/usr/local/opt/php@7.0/sbin:$PATH"

保存して、変更した内容を反映させます。

$ source ~/.bashrc

3. 確認

ちゃんとバージョンが切り替わったかどうか確認します。

$ php -version
PHP 7.0.31 (cli) (built: Jul 19 2018 23:41:03) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.31, Copyright (c) 1999-2017, by Zend Technologies

php-fpm も合わせて確認しておきます。

$ php-fpm -version
PHP 7.0.31 (fpm-fcgi) (built: Jul 19 2018 23:41:09)
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.31, Copyright (c) 1999-2017, by Zend Technologies

4. php-fpm 自動起動の設定

(必要に応じて)

macOS の起動時に自動で php-fpm を起動するようにしておきます。

まずは次のように準備しておきます。

$ cp /usr/local/opt/php@7.0/homebrew.mxcl.php@7.0.plist ~/Library/LaunchAgents/

ここで、もしこのように古いバージョンのプロセスが生きているようであれば、

$ ps ax | grep php
87536 ?? S 0:02.53 /usr/local/opt/php@5.6/sbin/php-fpm --nodaemonize
87538 ?? S 0:00.74 /usr/local/opt/php@5.6/sbin/php-fpm --nodaemonize
87539 ?? S 0:00.55 /usr/local/opt/php@5.6/sbin/php-fpm --nodaemonize
87540 ?? S 0:00.82 /usr/local/opt/php@5.6/sbin/php-fpm --nodaemonize
571 s003 S+ 0:00.00 grep php

プロセス&自動起動を終了しておきましょう。(plist のファイル名は、若干異なる可能性もあります。LaunchAgentsディレクトリを確認してみてください。)

$ launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.php@5.6.plist

念の為プロセスがいなくなったかどうか確認します。

$ ps ax | grep php
576 s003 R+ 0:00.00 grep php

php-fpm のプロセスがなくなったら、次のように 7.0 のプロセスを起動します。同時に自動起動の設定もこれで OK です。

$ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php@7.0.plist

$ ps ax | grep php
579 ?? S 0:00.08 /usr/local/opt/php@7.0/sbin/php-fpm --nodaemonize
581 ?? S 0:00.00 /usr/local/opt/php@7.0/sbin/php-fpm --nodaemonize
587 ?? S 0:00.00 /usr/local/opt/php@7.0/sbin/php-fpm --nodaemonize
589 s003 S+ 0:00.00 grep php

あとは必要に応じて、 /usr/local/etc/php/7.0/php.ini/usr/local/etc/php/7.0/php-fpm.d/www.conf などの設定をいじってください。