前回の続きです。
以前書いた設定が難しい書式ではなかったので、バックアップせずにフォーマットしてしまったのですが、新たに同じように書いたものがなぜかうまくいきません。
「またか」と思い直して、調べました。
/etc/apache2/apache2.confを編集して、ドキュメントルートの変更、そしてhtaccess、mod_rewrite、CGIもそれぞれ有効にします。なおドキュメントルートは/media/WWW以下としています。
ドキュメントルートを変更するためデフォルト設定をコメントアウトし、その下に新たなドキュメントルート設定を追加。htaccessも有効にします。
#<Directory /var/www/>
# Options Indexes FollowSymLinks
# AllowOverride None
# Require all granted
#</Directory>
< Directory /media/WWW/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
htaccessでmod_rewriteモジュールを使用するので、インストールされているかどうか確認します。
$ cat /etc/apache2/mods-available/rewrite.load
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
あるようなので、有効にします。
$ sudo a2enmod rewrite
[sudo] パスワード:
Enabling module rewrite.
To activate the new configuration, you need to run:
service apache2 restart
/etc/apache2/conf-available/にcgi-enabled.confを作成して、CGIが動作するようにします。
<Directory "/media/WWW">
Options +ExecCGI
AddHandler cgi-script .cgi .pl
</Directory>
作ったcgi-enabled.confを有効にします。
$ a2enconf cgi-enabled.conf
Enabling conf cgi-enabled
To activate the new configuration, you need to run:
systemctl reload apache2
/etc/apache2/conf-available/serve-cgi-bin.confを編集して、ドキュメントルート設定、htaccessを有効にします。デフォルト設定はコメントアウトします。
# ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
ScriptAlias /cgi-bin/ /media/WWW/
# <Directory "/usr/lib/cgi-bin">
<Directory "/media/WWW">
# AllowOverride None
AllowOverride All
/etc/apache2/sites-available/000-default.confを編集してドキュメントルートを設定します。
# DocumentRoot /var/www/html
DocumentRoot /media/WWW
同じく/etc/apache2/sites-available/default-ssl.confにもドキュメントルートを設定します。
# DocumentRoot /var/www/html
DocumentRoot /media/WWW
以上で設定が終わりました。Apache2をリスタートします。
sudo service apache2 restart
以上で元通りに動作するようになりました。