MacOS14.3でphpを動かす方法
MacOS14.3でphpを動かす方法を解説します
Apacheの確認
apacheが入っていることを確認します
$ which httpd
/usr/sbin/httpd
$ which apachectl
/usr/sbin/apachectl
apacheとなるhttpdとapacheを起動・停止するためのapachectlが見つかればOKです
みつからない場合はインストールしましょう
PHPのインストール
Homebrewでphpをインストールします
$ brew install php
phpがインストールされたか確認しましょう
$ php -v
PHP 8.3.2 (cli) (built: Jan 16 2024 13:46:41) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.2, Copyright (c) Zend Technologies
with Zend OPcache v8.3.2, Copyright (c), by Zend Technologies
phpがインストールされたことを確認しました
Apacheにphpを適応する
このままではphpinfoを表示できません
apacheにphpを適応するためhttpd.confを編集しましょう
$ vim /etc/apache2/httpd.conf
LoadModule php_module /opt/homebrew/opt/php@8.3/lib/httpd/modules/libphp.so
<IfModule php_module>
AddType application/x-httpd-php .php
</IfModule>
今回はphp8なのでphp_moduleとして適応します
/opt/homebrew/opt/php@8.3/lib/httpd/modules/libphp.so
libphp.soまでのpathはphpをインストールした方法によって異なるようなので各自でしらべてください
homebrewでインストールした場合は上記のpathでした
httpd.confの編集が完了したらapacheを再起動させれば完了です
$ sudo apachectl restart
おつかれさまでした
No code signingエラーがでる場合
httpd.confの編集をしapacheを再起動させると以下のエラーが出る場合
No code signing authority for module at /opt/homebrew/opt/php/lib/httpd/modules/libphp.so specified in LoadModule directive.
libphp.soに署名をする必要があります
キーチェーンアクセスを使用して証明書を作成します
キーチェーンアクセス > 署名書アシスタント > 認証局を作成
名前:任意
ユーザー証明:コード署名
メール:ご自身の
証明書ができたらダブルクリックで開くと証明書の設定ができます
SSL:常に信頼
に変更してください
次にlibphp.soを作成した証明書で署名します
codesign --sign "PHP CA" --force --keychain ~/Library/Keychains/login.keychain-db /opt/homebrew/opt/php@8.3/lib/httpd/modules/libphp.so
さらにhttpd.confを再度修正します
修正前
LoadModule php_module /opt/homebrew/opt/php@8.3/lib/httpd/modules/libphp.so
修正後
LoadModule php_module /opt/homebrew/opt/php@8.3/lib/httpd/modules/libphp.so "PHP CA"
あとはapacheを再起動するだけです
$ sudo apachectl restart
うまく再起動ができphpinfoが表示できれば完了です
Could not reliably determine the server's fully qualified domain nameエラーが出る場合
以下のエラーが出た場合
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using CnMBA.local. Set the 'ServerName' directive globally to suppress this message
httpd.confのServerNameを編集する必要があります
修正前
#ServerName www.example.com:80
修正後
#ServerName www.example.com:80
ServerName localhost:80
あとはapacheを再起動して適応するだけです
http://localhost:80
最後にlocalhostを開いて確認しましょう
参考サイト
phpのインストール
https://www.stub-create.com/blog/php/mamp-brew.html
apacheの設定
https://weblabo.oscasierra.net/apache-macos-usage/
https://tangerine.hateblo.jp/entry/2021/10/26/161116
https://qiita.com/naoyago/items/9b0a0b42e53747392dd3
コード署名
https://pointsandlines.jp/server-side/php/code-signing-in-macos-monterey
https://www.simplified.guide/macos/apache-php-homebrew-codesign