Debianってなんか変?一般的なLinuxとの違いについて

2021-09-20

LinuxのDebianについてまとめました。

ユーザ設定をモジュール管理して追加削除を安全に行える。そのため、設定ファイルのディレクトリやファイル名が一般的なLinux情報と異なる点に注意。

昔、目の付け所がシャープなSHARPのLINUX ZAURUS(リナザウ)にも採用されていた。

※DebianはWEBサーバとして利用しているので、それに関する情報が主となります。

気になる!DebianOS独特な部分

ネットのLinux情報を宛に設定を行う場合、一番最初に詰まるのが設定ファイルの場所や名前が異なる点です。まずはその辺を見ていきましょう。

Debianのバージョン確認

cat /etc/debian_version

Apacheのバージョン確認

Red Hat系場合

httpd -v

Debianの場合

sudo apache2 -v

※よくみるバージョン確認コマンド「httpd -v」は使用できません。

Apacheの主な設定ファイルについて

Red Hat系場合

/etc/httpd/conf/httpd.conf

Debianの場合

/etc/apache2/apache2.conf

Apache設定について

Apacheの設定やmod有効化について、Red Hat系はhttp.confに直接記述します。

DebianでのApacheの設定について

Debianではユーザ設定ファイルを決められたディレクトリに作成し、設定を有効にする命令で有効/無効を切り替え、それらが基本設定に上書きされるように設定を変更する。

これにより、ユーザが基本設定ファイルを直接編集することなく、設定を追加変更できるので、保守性を高められる点と、問題が発生したときの切り分けが容易になる利点がある。

モジュール、バーチャルホスト、設定の3つがあるが、基本的に同じ操作手順なので、モジュールについて最初に行い、追ってバーチャルホスト、設定についての差を説明する。

モジュールの追加と削除

モジュールは下記保存ディレクトリで追加や設定を行う。
モジュールをインストールするとこのディレクトリに追加されるが、この時点では有効になっていない。「mods-available」つまり、「利用可能なモジュール」として保存されている状態。

/etc/apache2/mods-available/

利用可能なモジュールの確認

利用可能なモジュールはすべてここに追加されるので、以下のコマンドで利用可能なモジュールを一覧することができる。

cd /etc/apache2/mods-available/
ls

※cdはディレクトリ移動のコマンド
※lsはディレクトリ内の一覧コマンド

※有効にする前に、mods-availableに使用したいモジュールが既にある必要があります。ない場合は先にインストールで追加してください。

モジュールを有効にする

次に、モジュールを有効化する。

hogehogeというモジュールを有効にする場合の実行コマンド

sudo a2enmod mods_hogehoge

すると、以下の「有効なモジュール」ディレクトリにモジュールが追加されて、設定が有効になる。

/etc/apache2/mods-enabled/

有効なモジュールの確認

有効なモジュールはすべてここに追加されるので、以下のコマンドで有効になったモジュールを一覧することができる。

cd /etc/apache2/mods-enabled/
ls

※cdはディレクトリ移動のコマンド
※lsはディレクトリ内の一覧コマンド

Apacheの動作に反映するためには、Apacheの再起動が必要

sudo systemctl restart apache2

Apacheで動作しているモジュールの確認

sudo apache2ctl -M

ここに有効にしたモジュールが表示されれば有効化は完了です。

モジュールを無効にする

次に設定を無効化する実行コマンド

sudo a2dismod mods_hogehoge

前述の有効なモジュールの確認で見ると、追加されていたhogehogeモジュールが消えていることがわかる。

Apacheの動作に反映するためには、Apacheの再起動が必要

sudo systemctl restart apache2

サイト設定(バーチャルホスト)の追加と削除

基本的にモジュールと同じ流れです。

サイト設定は下記保存ディレクトリで追加や設定を行う。

/etc/apache2/sites-available/

このディレクトリにあるだけでは有効になっていない。「sites-available」つまり、「利用可能なサイト設定」として保存されている状態。

利用可能なサイト設定の確認

利用可能なサイト設定はすべてここに追加されるので、以下のコマンドで利用可能なサイト設定を一覧することができる。

cd /etc/apache2/sites-available/
ls

※cdはディレクトリ移動のコマンド
※lsはディレクトリ内の一覧コマンド

※有効にする前に、sites-availableに使用したいサイト設定ファイルが既にある必要があります。ない場合は先にインストールで追加してください。

サイト設定を有効にする

次に、設定を有効化する。

hogehoge.comというサイト設定を有効にする場合の実行コマンド

sudo a2ensite hogehoge.com

すると、以下の「有効なサイト設定」ディレクトリにサイト設定が追加されて、設定が有効になる。

/etc/apache2/sites-enabled/

有効なサイト設定の確認

有効なサイト設定はすべてここに追加されるので、以下のコマンドで有効になったサイト設定を一覧することができる。

cd /etc/apache2/sites-enabled/
ls

※cdはディレクトリ移動のコマンド
※lsはディレクトリ内の一覧コマンド

Apacheの動作に反映するためには、Apacheの再起動が必要

sudo systemctl restart apache2

サイト設定(バーチャルホスト)を無効にする

次にサイト設定を無効化する実行コマンド

sudo a2dissite hogehoge.com

前述の有効なサイト設定の確認で見ると、追加されていたhogehoge.comが消えていることがわかる。

Apacheの動作に反映するためには、Apacheの再起動が必要

sudo systemctl restart apache2

Apache設定の追加と削除

基本的にモジュールと同じ流れです。

Apache設定は下記保存ディレクトリで追加や設定を行う。

/etc/apache2/conf-available/

このディレクトリにあるだけでは有効になっていない。「conf-available」つまり、「利用可能なApache設定」として保存されている状態。

利用可能なApache設定の確認

利用可能なApache設定はすべてここに追加されるので、以下のコマンドで利用可能なApache設定を一覧することができる。

cd /etc/apache2/conf-available/
ls

※cdはディレクトリ移動のコマンド
※lsはディレクトリ内の一覧コマンド

※有効にする前に、conf-availableに使用したい設定ファイルが既にある必要があります。ない場合は先にインストールで追加してください。

Apache設定を有効にする

次に、Apache設定を有効化する。

hogehoge.confというApache設定を有効にする場合の実行コマンド

sudo a2enconf hogehoge.conf

すると、以下の「有効なApache設定」ディレクトリにApache設定が追加されて、設定が有効になる。

/etc/apache2/conf-enabled/

有効なApache設定の確認

有効なApache設定はすべてここに追加されるので、以下のコマンドで有効になったApache設定を一覧することができる。

cd /etc/apache2/conf-enabled/
ls

※cdはディレクトリ移動のコマンド
※lsはディレクトリ内の一覧コマンド

Apacheの動作に反映するためには、Apacheの再起動が必要

sudo systemctl restart apache2

Apache設定を無効にする

次にApache設定を無効化する実行コマンド

sudo a2disconf hogehoge.conf

前述の有効なApache設定の確認で見ると、追加されていたhogehoge.confが消えていることがわかる。

Apacheの動作に反映するためには、Apacheの再起動が必要

sudo systemctl restart apache2

最後に

Debianは基本設定ファイルを変更せずに、追加設定はユーザ設定ファイルを作成して設定する。そのユーザ設定ファイルに対して、有効化/無効化を行い基本設定に設定上書きする。基本設定ファイルを変更しないので、保守性が高く、理解すると面白い部分。

おまけ

関連性のあるコマンド

Apacheのバージョン情報から特定の文字列で検索表示

sudo apache2ctl -V |grep MPM:

PHPが読み込んでいる ini ファイル一覧

php --ini

※コンソールの場合はcli版の情報が表示されます。WEBサイトで動作しているものと異なる事があるので注意。(FPMなど)

Debian,Linux,サーバ

Posted by 管理者