Ubuntu ~Apache - インストール~

○ Apache

ホームページの公開や Web アプリケーションの作成には、サーバーソフトが必要になります。
ここでは、Linux 環境でもっともユーザーが多いと思われる Apache を紹介します。

○ インストール

# apt-get install apache2
Reading package lists... Done
xxxxx
xxxxx
Do you want to continue [Y/n]? y
xxxxx
xxxxx
Setting up apache2-mpm-worker (2.2.8-1ubuntu0.3) ...
 * Starting web server apache2
 [ OK ]

Setting up apache2 (2.2.8-1ubuntu0.3) ...
Processing triggers for libc6 ...
ldconfig deferred processing now taking place

○ 設定ファイル/関連ファイル

場所/ファイル 内容
/etc/apache2/apache2.conf apache2の全体設定用ファイル
/etc/apache2/conf.d/ 各種Webアプリケーションなどの設定ファイルを配置するディレクトリ
/etc/apache2/envvars 環境設定ファイル
/etc/apache2/httpd.conf 過去の互換性のために存在するファイル(中身は空)
/etc/apache2/mods-available/ モジュールファイルが置かれるディレクトリ
/etc/apache2/mods-enabled/ 使用するモジュールへのリンクファイルが置かれるディレクトリ
/etc/apache2/ports.conf ポート番号
/etc/apache2/sites-available/ サイト定義ファイルが置かれるディレクトリ
/etc/apache2/sites-enabled/ 使用するサイト定義ファイルへのリンクファイルが置かれるディレクトリ
/etc/init.d/apache2 rcスクリプト
/usr/sbin/a2dismod モジュールを無効にする
/usr/sbin/a2dissite サイトを無効にする
/usr/sbin/a2enmod モジュールを有効にする
/usr/sbin/a2ensite サイトを有効にする
/usr/sbin/apache2 実行用バイナリ
/usr/sbin/apache2ctl コントロール用スクリプト
/var/www/ HTMLファイルや画像ファイルなどを配置するディレクトリ
/var/log/apache2/access.log クライアントからのアクセスを記録するログファイル
/var/log/apache2/error.log エラーを記録するログファイル

ツリービューでは
/  ルート
├etc
|  ├apache2
|  |  ├conf.d
|  |  |  └xxxxx  :各種Webアプリケーションなどの設定ファイルを配置するディレクトリ
|  |  ├mods-available
|  |  |  └xxxxx  :モジュールファイルが置かれるディレクトリ
|  |  ├mods-enabled
|  |  |  └xxxxx  :使用するモジュールへのリンクファイルが置かれるディレクトリ
|  |  ├sites-available
|  |  |  └xxxxx  :サイト定義ファイルが置かれるディレクトリ
|  |  ├sites-enabled
|  |  |  └xxxxx  :使用するサイト定義ファイルへのリンクファイルが置かれるディレクトリ
|  |  ├apache2.conf  :apache2の全体設定用ファイル
|  |  ├envvars  :環境設定ファイル
|  |  ├httpd.conf  :過去の互換性のために存在するファイル(中身は空)
|  |  └ports.conf  :ポート番号
|  └init.d
|      └apache2  :rcスクリプト
├usr
|  ├lib
|  |  └cgi-bin
|  |      └xxxxx  :cgi スクリプトを配置するディレクトリ
|  └sbin
|      ├a2dismod  :モジュールを無効にする
|      ├a2dissite  :サイトを無効にする
|      ├a2enmod  :モジュールを有効にする
|      ├a2ensite  :サイトを有効にする
|      ├apache2  :実行用バイナリ
|      └apache2ctl  :コントロール用スクリプト
└var
    ├www
    |  └xxxxx  :HTMLファイルや画像ファイルなどを配置するディレクトリ
    └log
        ├access.log  :クライアントからのアクセスを記録するログファイル
        └error.log  :エラーを記録するログファイル

○ 設定の変更

apache2 は(デフォルトの状態では)
・ /etc/apache2/apache2.conf に全体の設定ファイル
・ /etc/apache2/sites-enabled/ にシンボリックリンク
・ /etc/apache2/sites-available/ にサイト定義(個別設定ファイル)
が配置されていて、シンボリックリンクとサイト定義のセットを複数用意することでバーチャルドメインの設定ができる。

デフォルトでは、
/etc/apache2/sites-enabled/000-default -> /etc/apache2/sites-available/default
となっている。

上記構成について確認、変更は、apache2.conf の最終行にある以下の行から行える。

# Include the virtual host configurations:
Include /etc/apache2/sites-enabled/

デフォルトでは、/etc/apache2/sites-available/default のみが存在する。

# バーチャルホストを定義するIPアドレスを指定。*を指定すると全てのアクセスが対象
NameVirtualHost *
# バーチャルホストの定義開始。*が指定されているので、全てのアクセスがここの設定に従う
<VirtualHost *>
        # エラーが発生したときに、ブラウザに表示されるメールアドレス
        ServerAdmin webmaster@localhost

        # ホームページのドキュメントルート
        DocumentRoot /var/www/
        # システム全体の設定開始。/ はシステムのルート
        <Directory />
                # サーバがこのディレクトリ内のシンボリックリンクをたどることを許可
                Options FollowSymLinks
                # .httpaccessファイルによる各種設定の変更を禁止する
                AllowOverride None
        # システム全体の設定終了
        </Directory>
        # ドキュメントルートの設定開始
        <Directory /var/www/>
                # index.htmlが存在しない場合、ファイル一覧を表示する
                # サーバがこのディレクトリ内のシンボリックリンクをたどることを許可
                # MultiViews機能が有効
                Options Indexes FollowSymLinks MultiViews
                # .httpaccessファイルによる各種設定の変更を禁止する
                AllowOverride None
                # allowをdenyの前に評価する
                Order allow,deny
                # 全てのホストからのアクセスを許可する
                allow from all
        # ドキュメントルートの設定終了
        </Directory>

        # /cgi-bin/ は /usr/lib/cgi-bin/ のエイリアス
        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        # /usr/lib/cgi-bin の設定開始
        <Directory "/usr/lib/cgi-bin">
                # .httpaccessファイルによる各種設定の変更を禁止
                AllowOverride None
                # CGIを有効にする/ultiViewsを無効にする/キュリティの強化
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                # allowをdenyの前に評価する
                Order allow,deny
                # 全てのホストからのアクセスを許可する
                Allow from all
        # /usr/lib/cgi-bin の設定終了
        </Directory>

        # error.logファイルの指定
        ErrorLog /var/log/apache2/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        # Logレベルをwarnに設定
        LogLevel warn

        # カスタムログを指定
        # フォーマットは combined(apache2.confで定義) とする
        CustomLog /var/log/apache2/access.log combined
        # プロキシ群の中で、実際に仕事を行ったサーバをクライアントに知らせる
        ServerSignature On

    # /doc/ を /usr/share/doc/ の別名にする
    Alias /doc/ "/usr/share/doc/"
    # /usr/share/doc/ の設定開始
    <Directory "/usr/share/doc/">
        # index.htmlが存在しない場合、ファイル一覧を表示する
        # MultiViews機能が有効
        # サーバがこのディレクトリ内のシンボリックリンクをたどることを許可
        Options Indexes MultiViews FollowSymLinks
        # .httpaccessファイルによる各種設定の変更を禁止
        AllowOverride None
        # denyをallowの前に評価する
        Order deny,allow
        # 全てのホストからのアクセスを禁止する
        Deny from all
        # 127.0.0.0/255.0.0.0 ::1/128からのアクセスを許可する
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    # /usr/share/doc/ の設定終了
    </Directory>

# バーチャルホストの定義終了
</VirtualHost>

◆ ホスト名をログ収集できるように DNS ルックアップを有効にする

# nano /etc/apache2/apache2.conf

#HostnameLookups Off
HostnameLookups On

◆ クライアントが、ディレクトリ名の最後に「/」 を指定してディレクトリインデックスを要求する場合に探すリソースのリストを設定する

# nano /etc/apache2/mods-enabled/dir.conf

#DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
DirectoryIndex index.php index.cgi index.pl index.html index.xhtml index.htm

◆ 言語の優先順位を設定する

# nano /etc/apache2/mods-available/negotiation.conf

#LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
LanguagePriority ja en ca cs da de el eo es et fr he hr it ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW

 

○ モジュールの有効・無効化

# a2enmod モジュール名   ・・・モジュールの有効化
# a2dismod モジュール名   ・・・モジュールの無効化

○ サイトの有効・無効化

# a2ensite サイト名   ・・・サイトの有効化
# a2dissite サイト名   ・・・サイトの無効化

○ 再起動

設定を変更したら、設定を有効にするため再起動する

# /etc/init.d/apache2 restart
 * Restarting web server apache2
 [ OK ]


自宅サーバーWebRing << 前 |ID=231 |次 >> 乱移動前後5表示サイト一覧