www.ni4.jp

Macのローカルサーバー構築手順【PHP追加編】

ども、どもども。
というわけで、前回の記事では、MAMPを利用したローカル環境構築と、そこからのメール送信部分までを進めました。

ただ、前回記事の最後にあったとおり、MAMPでは現在、パッケージに同梱されているバージョンのPHPしか利用できないようで、それ以外のバージョンを利用したい場合は、自分でインストールするしか無いようでした。
いろいろ検索するも、同梱されているバージョンの切り替えは見つかるのですが、そもそも同梱されていない場合の手段が見つかりません。

そんな中、私と同じように困っていた方の記事を発見し、そこから Adding Versions of PHP to MAMP on a Mac( 訳:MacのMAMPにPHPのバージョンを追加する ) という情報を見つけました。

これなら行けるかも!と試した結果、ダウンロードしたパッケージに同梱されていなかったPHP 8.0.28 の導入に成功したので、今回はその流れを備忘録として残しておこうと思います。

Table of Contents

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の設定や、バーチャルホストの設定を進めたいと思います!

にしやま やすふみ

札幌のウェブサイト・ホームページ制作会社 ジャクスタポジションで、代表とディレクターやってます。Movable Typeとラーメン、ザンギ、酒が好き。
プロフィール詳細はこちら

アクセスの多い記事