概要
開発環境の手作りサーバーでよく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が有効化されたはず。