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も設定しておくよい。
(以上)