Macのローカルサーバー構築手順【PHP追加編】
ども、どもども。
というわけで、前回の記事では、MAMPを利用したローカル環境構築と、そこからのメール送信部分までを進めました。
ただ、前回記事の最後にあったとおり、MAMPでは現在、パッケージに同梱されているバージョンのPHPしか利用できないようで、それ以外のバージョンを利用したい場合は、自分でインストールするしか無いようでした。
いろいろ検索するも、同梱されているバージョンの切り替えは見つかるのですが、そもそも同梱されていない場合の手段が見つかりません。
そんな中、私と同じように困っていた方の記事を発見し、そこから Adding Versions of PHP to MAMP on a Mac( 訳:MacのMAMPにPHPのバージョンを追加する ) という情報を見つけました。
これなら行けるかも!と試した結果、ダウンロードしたパッケージに同梱されていなかったPHP 8.0.28 の導入に成功したので、今回はその流れを備忘録として残しておこうと思います。
Homebrewの環境を準備
先ほどの記事に、Homebrewを使用してインストールしたPHPを、MAMPへコピーして利用する方法が書かれていたので、私もそれを試してみることにしました。
ちなみに、Homebrewのインストールについては、過去の記事で触れています。
まずはMacにインストールされているPHPのバージョンを確認。
php -v
ターミナルに上記を入力して、ターンッ!
zsh: command not found: php
なんと!PHPが入っていない…でも考えてみたら、これまでPHPはインストールしたことなかったかも?
ちなみに、Macに標準でインストールされているPHPは、macOS12からはインストールされなくなったらしいです。
というわけで、上記の記事を参考に、PHPのインストールから始めることにしました。
その前に、Homebrewのバージョンも上げておこうと思ったのですが、確認しようとすると、また以前のようなエラーとなりました…
Warning: Git could not be found in your PATH.
Warning: No developer tools installed.
Warning: You are using macOS 13.
Warning: Ruby version 2.6.10 is unsupported on 13.
Warning: Homebrew's "sbin" was not found in your PATH but you have installed formulae that put executables in /usr/local/sbin.
どうやら、現在インストールしてあるHomebrewは、macOS13に対応していないようですね…
というわけで、過去の自分の記事を参考にアップデートを進めました。
備忘録、大切…
上記のようにいろいろとWarningが出ていましたが、update と upgrade 、cleanupを順番に進めていき、無事にHomebrewはバージョン4.0.6になりました。
brew -v
Homebrew 4.0.6
HomebrewにPHPをインストール
Homebrewの準備ができたので、こちらの記事を参考にPHPをインストールします。
2023年3月現在、brew search php で出てきたのはこちらでした。
brew search php
==> Downloading https://formulae.brew.sh/api/formula.jws.json
######################################################################## 100.0%
==> Downloading https://formulae.brew.sh/api/cask.jws.json
######################################################################## 100.0%
==> Formulae
brew-php-switcher php-cs-fixer@2 phpbrew phpstan
php php@7.4 phplint phpunit
php-code-sniffer php@8.0 phpmd pcp
php-cs-fixer php@8.1 phpmyadmin pup
ひとまず、提供されている最新版 PHP8.1 をインストールしました。
インストールが進むと、PATHを通してと出るので、以下のようにコマンドを入れます。
echo 'export PATH="/usr/local/opt/php@8.1/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/usr/local/opt/php@8.1/sbin:$PATH"' >> ~/.zshrc
PATHを通したあとは、それが反映されるようにコマンドを入力します。
source ~/.zshrc
その上で、PHPのバージョンを確認すると、以下のようにPHP8.1.17がインストールできました!
php -v
PHP 8.1.17 (cli) (built: Mar 16 2023 13:19:00) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.17, Copyright (c) Zend Technologies
with Zend OPcache v8.1.17, Copyright (c), by Zend Technologies
PHP 8.0.28 をインストール
ここで喜んでいる場合ではない(汗)
当初の目的は、バージョン 8.0.28 を利用することだったので、こちらの記事を参考に、古いバージョンをインストールしてみることに。(ちなみに、8.1はMAMPをインストールした際にも同梱されていました。)
まず、Homebrewで 8.0.28 が提供されているのかを調べてみると、こちらを発見。
上記で8.0.28 が提供されていることを確認できたので、先ほどの記事を参考に、インストールを進めます。
brew unlink php@8.1
brew tap shivammathur/php
brew reinstall shivammathur/php/php@8.0
上記を順番に実施して、インストールが完了したら、PATHを修正します。
echo 'export PATH="/usr/local/opt/php@8.0/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/usr/local/opt/php@8.0/sbin:$PATH"' >> ~/.zshrc
source ~/.zshrc
この状態でバージョンを確認すると、8.0.28が正常にインストールできていることが確認できました!
php -v
PHP 8.0.28 (cli) (built: Feb 15 2023 01:59:22) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.28, Copyright (c) Zend Technologies
with Zend OPcache v8.0.28, Copyright (c), by Zend Technologies
MAMP環境へ必要なファイルをコピー
これでMacにインストールされたPHPを目的のバージョンにできたので、先ほどの記事を参考にMAMP環境へPHP8.0.28をインストールできるようになりました。
まずは以下のとおり、/usr/local/Cellar/php に入っている目的のバージョンのフォルダをコピーします。
First we need to copy the installed PHP files to MAMP. Using Finder, navigate to /usr/local/Cellar/php and you should find a folder named after the installed version of PHP. For me it was 8.1.8. Copy this folder.
https://gist.github.com/codeadamca/09efb674f54172cbee887f04f700fe7c
このフォルダへの移動はFinderの「移動」にある「フォルダへ移動」から進みます。
移動した先で、8.0.28 のフォルダをコピーします。
コピーしたフォルダを、MAMPのPHPを保存している場所へ貼り付けます。
Navigate to the folder that MAMP stores PHP versions. For me this was /Applications/MAMP/bin/php. Paste this folder here.
https://gist.github.com/codeadamca/09efb674f54172cbee887f04f700fe7c
貼り付けた後は、フォルダの名前をMAMPのルールにあわせてリネームしておきます。
続けて、PHPのmoduleファイルをコピーを進めます。
Next we need the PHP modile file. Navigate to /usr/local/lib/httpd and copy the modules folder. Inside this folder is the PHP module file names libphp.so.
https://gist.github.com/codeadamca/09efb674f54172cbee887f04f700fe7c
ただ、上記の /usr/local/lib/httpd には、module/libphp.so がありませんでした。
というか、httpdというフォルダが無かったです(汗)
あれこれと探してみたところ、/usr/local/opt/php@8.0/lib/httpd/ に発見!
このmodulesフォルダをコピーします。
Navigate to /Applications/MAMP/bin/php/php8.1.8 and paste the modules folder.
https://gist.github.com/codeadamca/09efb674f54172cbee887f04f700fe7c
先ほど作ったMAMP環境のPHPのフォルダ内へ貼り付けます。
以上でMAMP環境へのPHP8.0.28インストールが完了となります!
MAMPを再起動
MAMPを再起動すると、PHPバージョンで 8.0.28 が選択できるようになりました!
PreferencesでPortsを設定して、サーバーを起動すると、無事にPHP 8.0.28 が利用できるようになりました。
PHP追加編まとめ
当初思っていたよりも遠回りになってしまいましたが、無事にMAMPのPHPを変更することができました。
HomebrewのアップデートとPHPインストールに時間がかかりましたが、それがなければもっとスムースだったと思います。
これでさまざまなバージョンのPHP環境を準備することができそうです。
あと、ターミナルともだいぶ仲良くなれてきた気がしています(笑)
次は、今回用意した環境で、SSLの設定や、バーチャルホストの設定を進めたいと思います!