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>

#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が有効化されたはず。