MavericksからYosemiteにアップした時のApache設定

MavericksからYosemiteにアップすると、組み込みのApacheが、2.2から2.4にかわります。

それまで使っていた httpd.conf はリネームされ保管されます。

で、Apache 2.2から2.4は、けっこう変更点があって、リネームされたhttpd.conf をもう一回戻したらいいかというと、ただ戻してもまともに動きません。

むしろ、バージョンアップの際に提供されている2.4用のhttpd.confを編集したほうが安全です。

読み込むモジュール類が変わっているのも大きいですが、VirtualHost内でのディレクティブ設定が変わっているので、httpd.conf の変更だけだと、うまくいかないこともあります。

僕の場合をメモしておきますので、参考になれば幸いです。
ちなみにMacの場合は、/private/etc ですが、/etc でもいけるので、そっちで書いています。

* * *

デフォルトのhttpd.confを守る。

cd /etc/apache2/
sudo cp httpd.conf httpd.yosemite.conf
sudo vi httpd.conf

Include /private/etc/apache2/extra/httpd-vhosts.conf

のコメントアウトを外す

#NameVirtualHost *:80

NameVirtualHostを指定していたら、コメントアウトする

#ServerName www.example.com:80

をhostsで設定したものに明示的に変更する。しなくても動くけど、エラーが出るので。

VirtualHost設定で、ディレクティブ設定を、

Order allow,deny
Allow from all

というようにしている場合、

Require all granted

に変更する。

これがけっこう重要で、localhost内で.htaccessを置いている場合なんかも、それぞれの.htaccess内ですべて修正しないといけない。

このあたりの仕様変更は、「Apache 2.2 2.4 変更点」とかを検索するといっぱい出てくる。

phpを使う場合、phpを有効にする。

LoadModule php5_module libexec/apache2/libphp5.so

mod_rewriteを使う場合はこちらを有効にする(mod_accessの場合もある)。

LoadModule rewrite_module libexec/apache2/mod_rewrite.so

* * *

Yosemiteにアップデートすると、php.iniが失われることがある。

cd /etc
sudo cp php.ini.default php.ini
sudo vi php.ini

で編集し、必要な設定を加える。MySQLを使っている場合は、socketの設定など。date.timezoneも設定しておくよい。

(以上)

ジャンル: MacWeb