apache2.4でmod_rewrite を有効化する

概要

開発環境の手作りサーバーでよくmod_rewriteの設定書き換え忘れるので手順を書くよ。
apache2.4のインストールは以前のこの記事のとおりに作成したものを使ってるよ。

環境

centos6.9
apache2.4

やったこと

エクステンションの存在確認

# find / -name 'mod_rewrite.so'
/usr/lib64/httpd/modules/mod_rewrite.so
/opt/rh/httpd24/root/usr/lib64/httpd/modules/mod_rewrite.so

httpd,confを探す

# find / -name 'httpd.conf'
/opt/rh/httpd24/root/etc/httpd/conf/httpd.conf
/etc/httpd/conf/httpd.conf

apache24の方をバックアップとって編集

# cp /opt/rh/httpd24/root/etc/httpd/conf/httpd.conf /opt/rh/httpd24/root/etc/httpd/conf/httpd.conf.org
# vi /opt/rh/httpd24/root/etc/httpd/conf/httpd.conf

下記をファイルの一番下とかに追加する

LoadModule rewrite_module modules/mod_rewrite.so

apacheを再起動して下記のようなエラーが出るようなら、ロード済みなので追加しなくてもいい。

# service httpd24-httpd restart
Stopping httpd:                                            [FAILED]
Starting httpd: [Wed Aug 08 17:15:31.677887 2018] [so:warn] [pid 18197] AH01574: module rewrite_module is already loaded, skipping
[  OK  ]

とりあえず動作させるために書き換えの設定をする。

# vi /opt/rh/httpd24/root/etc/httpd/conf/httpd.conf

この記事でやったみたいに書き換える。具体的には
AllowOverride None

AllowOverride All
に書き換えて回る。確か4箇所くらいある。
#を先頭行につけてコメント化すればいいと思う。

#一箇所目
<Directory "/opt/rh/httpd24/root/var/www/cgi-bin">
#AllowOverride None #削除
AllowOverride All #追加
Options None
Require all granted
</Directory>

#2箇所目
<directory>
#AllowOverride none #削除
AllowOverride All #追加
Require all denied
</directory>

#3箇所目、webroot
<directory "="" opt="" rh="" httpd24="" root="" var="" www="">
<directory "="" var="" www"="">
#AllowOverride None #削除
AllowOverride All #追加
# Allow open access:
Require all granted
</directory></directory>

#4箇所目
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
#AllowOverride None #コメント符号つけて削除
AllowOverride All #追加

再起動

# service httpd24-httpd restart

これでmod_rewriteが有効化されたはず。