これまでlocalhostで .php
のファイルを扱っていたけれど、MontereyにしたらブラウザからアクセスしたときにPHPが実行されず、ソースが表示されてしまうようになってしまった、という人向けです。
おそらく一番楽であろう、標準で入っているApache + php-fpmを使う方法をご紹介。mod_phpは使いません。
##Monterey以降バンドルされなくなったPHPをインストール
HomebrewでPHPをインストールする場合。
brew install php
もしHomebrew未導入であれば、https://brew.sh に書いてあるようにして導入してから上記コマンドたたいてください。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
なおPHPの公式には「FPM使うには --enable-fpm
を付けてビルドせよ」と書いてありますが、普通に brew install php
すればついてきます。
##PHP-FPMを起動
システムのログイン時に自動起動させるために ~/Library/LaunchAgents
にシンボリックリンクを配置します。
ln -s /usr/local/opt/php/homebrew.mxcl.php.plist ~/Library/LaunchAgents
初回は手打ちで立ち上げましょう。
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.php.plist
ステータスを確認します。
brew services list
startedとなっていればOK。
##Apacheの設定
テキストエディタでhttpd.confを編集します。Vimを使う場合。
vim /private/etc/apache2/httpd.conf
エディタが起動しますので、以下の2行のコメント(先頭の #
)を外します。
LoadModule proxy_module libexec/apache2/mod_proxy.so
LoadModule proxy_fcgi_module libexec/apache2/mod_proxy_fcgi.so
Vimでは /
キーにつづけて検索語を打つと検索できます。ハイライトを消したいときは :noh
。
上下左右キーを使って消したい #
にカーソルをあわせて、 x
キーで1字消去。
続いて、どこか(最下部にでも)に以下を追記して保存。
# php-fpmの設定
<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
Vimでは i
キーで挿入モードになります。 i
押してから ⌘+v
すると貼り付けられると思います。
保存するには esc
で挿入モードを抜けたあとに、 :wq
(上書き保存)でVimを抜けられます。
編集が終わったらApacheの再起動をします。
sudo apachectl restart
ローカルに配置した .php
のページで、ソースが表示されずに意図通り実行できたら成功です。
###参考
・Homebrewでインストールしたときのpfp-fpmの.confの場所
/usr/local/etc/php/*.*/php-fpm.d/www.conf
・ログがここに生成される
/usr/local/var/log/php-fpm.log
・せっかくmod_phpではなくfcgiを使うので、MPMはpreforkではなくworkerやeventにするのがおすすめです。