Apache2をインストールしてモジュールを有効化(a2enmod)、無効化(a2dismod)する場合はコマンドを使うと便利です。
(Ubuntu, Debianで確認しました。他のディストリビューションでは確認していません…)
aptコマンドでApacheをインストールしたあと、/etc/apache2/apache2.conf をみてみてください。
modに関する設定がぜんぜんないのが確認できます。
しかし、以下の宣言により、modの設定を読み込んでいるのが確認できます。
# Include module configuration: IncludeOptional mods-enabled/*.load IncludeOptional mods-enabled/*.conf
以下、a2enmodとa2dismodの動作をrewrite_modを例にし記します。
以下のコマンドでApache2のmod一覧が表示されます。
$ ls /etc/apache2/mods-available/ access_compat.load buffer.load headers.load negotiation.conf sed.load actions.conf cache.load heartbeat.load negotiation.load session.load actions.load cache_disk.conf heartmonitor.load php5.conf session_cookie.load alias.conf cache_disk.load ident.load php5.load session_crypto.load <snip>
上記の通り、/etc/apache2/mods-availableにファイルがあるのが確認できます。
詳細は、man a2enmodを確認してください。
以下の例で rewrite_mod を有効にしてみます。
$ ls /etc/apache2/mods-available/ access_compat.load buffer.load headers.load negotiation.conf sed.load actions.conf cache.load heartbeat.load negotiation.load session.load actions.load cache_disk.conf heartmonitor.load php5.conf session_cookie.load alias.conf cache_disk.load ident.load php5.load session_crypto.load <snip>
$ ls -1 /etc/apache2/mods-available/ | grep rewrite rewrite.load
$ cat /etc/apache2/mods-available/rewrite.load LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
a2enmod rewrite構文は以下のようになります。
a2enmod モジュールUbuntuなどの場合は、sudoをつけて実行してください。
$ sudo a2enmod rewrite Enabling module rewrite. To activate the new configuration, you need to run: service apache2 restart
IncludeOptional mods-enabled/*.loada2enmodコマンドで、/etc/apache2/mods-available/rewrite.load のリンクを /etc/apache2/mods-enabled/ に作成しています。
$ ls -l /etc/apache2/mods-enabled/rewrite.load lrwxrwxrwx 1 root root 30 12月 17 11:02 /etc/apache2/mods-enabled/rewrite.load -> ../mods-available/rewrite.loadこれにより、IncludeOptional mods-enabled/*.load 内にrewriteのリンクが存在するうようになるので、Apache2再起動によりrewriteが有効になります。
a2enmodの動作でも記述しましたが、a2dismodによりa2enmodで作成したリンクを削除します。
これにより、rewriteの設定がなくなるのでApache2再起動によりrewriteが無効になります。
以下に実行例を記します。
$ ls -l /etc/apache2/mods-enabled/rewrite.load lrwxrwxrwx 1 root root 30 12月 17 11:02 /etc/apache2/mods-enabled/rewrite.load -> ../mods-available/rewrite.load $ sudo a2dismod rewrite Module rewrite disabled. To activate the new configuration, you need to run: service apache2 restart $ ls -l /etc/apache2/mods-enabled/rewrite.load ls: /etc/apache2/mods-enabled/rewrite.load にアクセスできません: そのようなファイルやディレクトリはありません $
a2enmodとa2dismodをfileコマンドで確認すると、perlスクリプトであることが確認できます。
また、a2dismodはa2enmodへのリンクであることが確認できます。
$ file `which a2enmod` /usr/sbin/a2enmod: a /usr/bin/perl -w script, ASCII text executable $ file `which a2dismod` /usr/sbin/a2dismod: symbolic link to a2enmod $ ls -l `which a2dismod` lrwxrwxrwx 1 root root 7 9月 18 01:51 /usr/sbin/a2dismod -> a2enmod $ head -20 `which a2enmod` #!/usr/bin/perl -w # # a2enmod by Stefan Fritsch <sf@debian.org> # Licensed under Apache License 2.0 # # The coding style is "perltidy -pbp" use strict; use Cwd 'realpath'; use File::Spec; use File::Basename; use File::Path; use Getopt::Long; my $quiet; my $force; my $maintmode; my $purge; Getopt::Long::Configure('bundling');
興味のある方は、スクリプトを読んでみてください。
以上、a2enmodおよびa2dismodについての簡単な説明でした。
詳細については、man a2enmodなどで確認してください。
設定変更後は、Apache2の再起動を忘れずに