1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

macOS Monterey バンドルApacheでPHPを使う(PHP-FPM編)

Last updated at Posted at 2022-02-19

これまで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行のコメント(先頭の # )を外します。

httpd.conf
LoadModule proxy_module libexec/apache2/mod_proxy.so
LoadModule proxy_fcgi_module libexec/apache2/mod_proxy_fcgi.so

Vimでは / キーにつづけて検索語を打つと検索できます。ハイライトを消したいときは :noh
上下左右キーを使って消したい # にカーソルをあわせて、 x キーで1字消去。

続いて、どこか(最下部にでも)に以下を追記して保存。

httpd.conf
# 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にするのがおすすめです。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?