#navi(../)
* a2enmodとa2dismodコマンドの動作について [#v8f243cf]
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を例にし記します。

#contents
#htmlinsertpcsp(web-top.html,web-sp.html)

* modの宣言ファイル [#wcc56f22]
以下のコマンドで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にファイルがあるのが確認できます。

* a2enmodの動作 [#r685f44d]
詳細は、man a2enmodを確認してください。~
以下の例で rewrite_mod を有効にしてみます。
+ rewrite_modがあるかどうかを確認します。~
以下の通り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>
+たくさん表示されたので、grepをしてみます。~
rewriteが存在することが確認できます。
 $ ls -1 /etc/apache2/mods-available/ | grep rewrite
 rewrite.load
+見つけたファイルをcatするとmodを有効化する設定が記述されています。
 $ cat /etc/apache2/mods-available/rewrite.load 
 LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
+ a2enmodでrewriteを有効にします。
 a2enmod rewrite
構文は以下のようになります。
 a2enmod モジュール
Ubuntuなどの場合は、sudoをつけて実行してください。
+ 以下、実際に実行したときの出力です。~
modを有効にするため、Apache2の再起動が促されます。
 $ sudo a2enmod rewrite
 Enabling module rewrite.
 To activate the new configuration, you need to run:
   service apache2 restart
+a2enmodで何が行われているかを以下に説明します。~
最初に記述した通り、apache2.confには以下の記述があります。
 IncludeOptional mods-enabled/*.load
a2enmodコマンドで、/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が有効になります。

* a2dismodの動作 [#v2e8b3d0]
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とは [#e0d1623b]
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の再起動を忘れずに''

#htmlinsertpcsp(web-btm.html,web-sp.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS