前回の続きです。
以前書いた設定が難しい書式ではなかったので、バックアップせずにフォーマットしてしまったのですが、新たに同じように書いたものがなぜかうまくいきません。
「またか」と思い直して、調べました。
/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
以上で元通りに動作するようになりました。