brewでhttpd24入れていたけどupgradeしたら動かなくなった時の対処法


homebrew/apache/httpd24

  • apache2.4が使いたくて brew install httpd24 をインストールしていた
  • brew upgrade したらapache動かなくなった

そんなときの対処法

PHPでエラー

apacheのプロセス動きっぱなしで問題なく動作してると思ったら、ターミナルでPHPコマンド使えなくてやっと気づいた。
残ってるプロセス全部決して、apache起動しようとしたら起動できなくなった。

Warning: Use httpd instead of deprecated homebrew/apache/httpd24

brew doctor とかいろんなとこでエラーでまくり。

なにが変わった?

homebrew/apache/httpd24がcoreへ移行されたhttpdに統合された
httpd24 -> httpd (coreのhttpdが2.4になった)

対処法

httpdとhttpd24をuninstallして入れ直すだけ。
ただ綺麗に消すのが面倒。

ここを参考に。

抜粋

brew uninstall --ignore-dependencies httpd
brew uninstall --ignore-dependencies httpd24

mv /usr/local/var/apache2 /usr/local/var/httpd

brew untap homebrew/apache

brew install httpd

sudo brew services start httpd

apache2と tap homebrew/apache にさようなら。

ついでにPHP入れ直す時

--with-httpdを使う。(参考)
--homebrew-apxsはもう古い

brew install homebrew/php/php72 --with-httpd

PHP動かなくなったってとき

PHPオプションのxxx.soがない

ビルドしてinstallする

brew install homebrew/php/php72-igbinary --build-from-source

PHPのコードがそのまま表示される

  • httpd.conf確認して、libphpモジュールを読み込んでいるか確認する
  • libphpモジュールが実際にあるか確認する
    • なかったら brew reinstall php72 --with-httpd でビルド
  • httpd.confのPHP設定を確認
<FilesMatch .php$>
SetHandler application/x-httpd-php
</FilesMatch>
DirectoryIndex index.php index.html

sudo apachectl restart

して確認。