2024年3月14日木曜日

ローカルサーバー環境ツール「MAMP」の php バージョンを追加する方法(Mac編 - php 8.3.4 と php8.2.17 の複数バージョン)

Mac で手軽に PHP を利用したウェブサイトのチェックをする場合、ウェブページにあるフォルダにて「php -S localhost:8888」コマンドを実行して、localhost:8888 にアクセスするということはたまにします。

しかしながら、MySQLなどデータベース絡みになってくると、それだけではうまくいきません( WordPress など )。そうした場合には、ローカルサーバー環境ツールを使うことも多いかと思います。ここでは MAMP というツールで、MAMP側が提供していない PHP バージョンを追加する方法を備忘録としてまとめておきます。

2024年3月14日時点で、MAMP 6.9は PHP 8.2.0 が最新になっています。
ここでは、具体的に PHP 8.3.3 と PHP 8.2.16 2つのバージョンを追加してみます。

2024年3月15日時点で、PHP 8.3.4 と PHP 8.2.17 がリリースされていたので、これに対応するよう加筆修正しました。

検証環境

  • macOS 14.4
  • MAMP 6.9
あらかじめ、MAMP 6.9 がインストールされているものとします。

用語説明


ターミナルアプリから「***」を実行


内蔵ディスクの 「アプリケーション」フォルダ > 「ユーティリティ」フォルダにある「ターミナル」アプリを起動した上で、*** を入力して「Enter」キーを押して、***を実行することを意味します。

例:ターミナルアプリから「/opt/homebrew/bin/php -v」を実行

下記のようにターミナルアプリを起動して、/opt/homebrew/bin/php -vを入力すると赤枠部分の入力となります。ここで Enter ボタンを押すと実行されます。ここでは、赤枠の下側にあるように、メッセージが出てきます。これは PHPのバージョンを調べるときにつかいます。


PHP 8.3.4(最新版)のインストールと MAMPへの追加


PHP 8.3.4(最新版) のインストール


1. 下記を参考に、HomeBrew をインストールします(インストールしていない場合)

2. ターミナルアプリから「brew install php」を実行して PHP 8.3.4 をインストールします。
もし HomeBrew をインストールしていて、上記コマンドにて php をインストールしたことがあるなら、「brew upgrade php」を実行して最新版へアップグレードしてみてください。
*実際には HomeBrewがサポートする最新の PHPがインストールされます。

3. ターミナルアプリから「brew search php」を実行して、php にチェックが入っていることを確認してみてください。


4. ターミナルアプリから「/opt/homebrew/bin/php -v」を実行して、PHP 8.3.3がインストールされたことを確認してみてください。

PHP 8.3.4 (cli) (built: Mar 12 2024 23:42:26) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.4, Copyright (c) Zend Technologies
    with Zend OPcache v8.3.4, Copyright (c), by Zend Technologies

MAMP への追加


1. /opt/homebrew/Cellar/php/8.3.4 を /Applications/MAMP/bin/php/ にコピーし、そのフォルダ名を「php8.3.4」に変更します。

実際にどのバージョンかは、ターミナルアプリから「ls /opt/homebrew/Cellar/php」を実行して確認しておいてください。

ターミナルアプリから「cp -rp /opt/homebrew/Cellar/php/8.3.4 /Applications/MAMP/bin/php/php8.3.4」を実行するとコピーして名前変更できる。

他の方法としては下記のように、双方のフォルダを開いてコピーしてもよい。
  1. ターミナルアプリから「open /opt/homebrew/Cellar/php」を実行し、/opt/homebrew/Cellar/phpフォルダを開く
  2. ターミナルアプリから「open /Applications/MAMP/bin/php」を実行し、/Applications/MAMP/bin/php を開く
  3. 「1」で開いたフォルダにある「8.3.4」を、「2」で開いたフォルダへコピーする
    Option キーを押しながら、フォルダをドラッグ&ドロップ
  4. 8.3.4 の名前を php8.3.3 に変更する。
2. /opt/homebrew/lib/httpd/modules フォルダ を、/Applications/MAMP/bin/php/php8.3.4/ へコピーする

ターミナルアプリから「cp -rp /opt/homebrew/lib/httpd/modules /Applications/MAMP/bin/php/php8.3.4/」を実行するとコピーできる。

3. /Applications/MAMP/bin/php/ フォルダを開きます
ターミナルアプリから「open /Applications/MAMP/bin/php/」を実行しても開くことができます。

MAMP無料版は、このフォルダにあるうち2つのみを認識します。
a. 一番新しいバージョン
b. 一番新しいバージョンより1つ前のメジャーバージョンの最新版
c. b. がなければ一番新しいバージョンより1つ前

例:下記の場合、php7.4.33 と php8.3.4 が選択
php7.4.33
php8.2.0
php8.3.4

例:下記の場合、php8.2.0 と php8.3.4 が選択
php8.2.0
php8.3.4

この調整(利用したいバージョン)は、 /Applications/MAMP/bin/php/ に archive フォルダでも作成して、不要なバージョンをそこにいれておくことです。

4. MAMPを起動します。

下記のように PHP version について 8.3.4 を選択して、Startボタンを押して起動します。
*ポートをデフォルトから変更している場合には、Start ボタンの前に、MAMP の Preferences から設定をしなおす必要があります。


5. Apache に PHP 8.3.4 が組み込まれているかどうか確認する
/Applications/MAMP/htdocs/test.php をテキストエディとなどメモアプリで作成して、
<?php phpinfo(); ?> を入力して保存します。
http://localhost:8888/test.php にアクセスします。

下記のように、PHP 8.3.4 が Webサーバー(上記の場合 Apache)に組み込まれていることを確認します。


PHP 8.2.17(最新版以外)のインストールと MAMPへの追加


*最新版以外については下記のようにします。

PHP 8.2.17(最新版以外) のインストール


1. 下記を参考に、HomeBrew をインストールします(インストールしていない場合)

2. ターミナルアプリから「brew search php」を実行して、インストール可能なバージョンをチェックします。今回は php8.2系となります(下図ではすでに php8.2 をインストール済みになっていますが、インストールしていないものと扱ってください)


3. ターミナルアプリから「brew install php@8.2」を実行して PHP 8.2.17 をインストールします。
もし HomeBrew をインストールしていて、上記コマンドにて php 8.2 系をインストールしたことがあるなら(たとえば PHP 8.2.10 が入っているとか)、「brew upgrade php@8.2」 として最新版へアップグレードしてみてください。

3. ターミナルアプリから「brew search php」を実行して、php@8.2 にチェックが入っていることを確認してみてください。

実際にどのバージョンかは、ターミナルアプリから「ls /opt/homebrew/Cellar/php@8.2」を実行して確認しておいてください。
以下、/opt/homebrew/Cellar/php@8.2/8.2.17 にインストールされているとします。

4. ターミナルアプリから「/opt/homebrew/Cellar/php@8.2/8.2.17/bin/php -v」を実行して、PHP 8.2.17 がインストールされたことを確認してみてください。

PHP 8.2.17 (cli) (built: Mar 12 2024 14:26:30) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.17, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.17, Copyright (c), by Zend Technologies

上記、バージョンが異なると数字がかわります。
他のバージョンをインストールした場合、/opt/homebrew/Cellar/ フォルダ以下に複数インストールした PHP が入るので、そちらから探してみてください。

MAMP への追加


1. /opt/homebrew/Cellar/php@8.2/8.2.17 を /Applications/MAMP/bin/php/ にコピーし、そのフォルダ名を「php8.2.17」に変更します。

ターミナルアプリから「cp -rp /opt/homebrew/Cellar/php@8.2/8.2.17 /Applications/MAMP/bin/php/php8.2.17」を実行するとコピーして名前変更できる。

他の方法としては下記のように、双方のフォルダを開いてコピーしてもよい。
  1. ターミナルアプリから「open /opt/homebrew/Cellar/php@8.2」を実行し、/opt/homebrew/Cellar/php@8.2フォルダを開く
  2. ターミナルアプリから「open /Applications/MAMP/bin/php」を実行し、/Applications/MAMP/bin/php を開く
  3. 「1」で開いたフォルダにある「8.2.17」を、「2」で開いたフォルダへコピーする
    Option キーを押しながら、フォルダをドラッグ&ドロップ
  4. 8.2.17 の名前を php8.2.17 に変更する。
2. /opt/homebrew/Cellar/php@8.2/8.2.17/lib/httpd/modules フォルダ を、/Applications/MAMP/bin/php/php8.2.17/ へコピーする

ターミナルアプリから「cp -rp /opt/homebrew/Cellar/php@8.2/8.2.17/lib/httpd/modules /Applications/MAMP/bin/php/php8.2.17/」を実行するとコピーできる。

3. /Applications/MAMP/bin/php/ フォルダを開きます
ターミナルアプリから「open /Applications/MAMP/bin/php/」を実行しても開くことができます。

MAMP無料版は、このフォルダにあるうち2つのみを認識します。
a. 一番新しいバージョン
b. 一番新しいバージョンより1つ前のメジャーバージョンの最新版
c. b. がなければ一番新しいバージョンより1つ前

例:下記の場合、php7.4.33 と php8.3.3 が選択
php7.4.33
php8.2.0
php8.2.17
php8.3.3

例:下記の場合、php8.2.17 と php8.3.3 が選択
php8.2.17
php8.3.3

この調整(利用したいバージョン)は、 /Applications/MAMP/bin/php/ に archive フォルダでも作成して、不要なバージョンをそこにいれておくことです。

4. MAMPを起動します。
下記のように PHP version について 8.2.17 を選択して、Startボタンを押して起動します。
*ポートをデフォルトから変更している場合には、Start ボタンの前に、MAMP の Preferences から設定をしなおす必要があります。


5. Apache に PHP 8.2.17 が組み込まれているかどうか確認する
/Applications/MAMP/htdocs/test.php をテキストエディとなどメモアプリで作成して、
<?php phpinfo(); ?> を入力して保存します(すでに用意していたら不要です)
http://localhost:8888/test.php にアクセスします。

下記のように、PHP 8.2.17 が Webサーバー(上記の場合 Apache)に組み込まれていることを確認します。


付録


HomeBrewでインストールした php について php コマンドで切り替える方法

1. ターミナルアプリから「brew unlink php」を実行して、/opt/homebrew/bin/php のシンボリックリンクを解除する

表示されるメッセージ:Unlinking /opt/homebrew/Cellar/php/8.3.4... 24 symlinks removed.

2. ターミナルアプリから「brew link php@8.2」を実行して、/opt/homebrew/bin/php へ php8.2 へのシンボリックリンクを設定する

表示されるメッセージ:Linking /opt/homebrew/Cellar/php@8.2/8.2.17... 25 symlinks created.

3. ターミナルアプリから「/opt/homebrew/bin/php -v」を実行して、PHP 8.2.17が実行されていることを確認する。

PHP 8.2.17 (cli) (built: Mar 12 2024 14:26:30) (NTS)
...

もとに戻すとき(インストールされている最新版へ戻す)


1. ターミナルアプリから「brew unlink php」を実行して、/opt/homebrew/bin/php のシンボリックリンクを解除する

2. ターミナルアプリから「brew link php」を実行して、/opt/homebrew/bin/php へ php最新版 へのシンボリックリンクを設定する

3. ターミナルアプリから「/opt/homebrew/bin/php -v」を実行して、PHPの最新版が実行されていることを確認する。


2024年3月14日 @kimipooh
2024年3月15日 加筆修正

0 件のコメント: