Yamamoto's Laboratory
Apache
コンピューター 自宅サーバー 二代目 WEB server の Apache

Ubuntu server 14.04Apache

自宅で運用している Ubuntu server の Apache に関するメモです.初心者向けに,インストールから運用まで全般にわたって説明します.

目次


インストール

ubuntu server をインストールするときに,「インストールするソフトウェアーの選択」の画面で,LAMP serverをチェックすれば,インストールされます.後からインストールする場合は,コマンド「# apt-get install apache2」を使います.

実行と確認

以下のようなコマンドで,Apache をコントロールすることができます.これらを使って,サーバーを起動,場合によっては再起動します.

/usr/sbin/apachectl start 起動
/usr/sbin/apachectl stop 停止
/usr/sbin/apachectl graceful 停止中の場合は起動,起動中の場合は再起動
/usr/sbin/apachectl graceful-stop 処理完了後に停止
/usr/sbin/apachectl restart 再起動
/usr/sbin/apachectl configtest 設定ファイルのテスト
/usr/sbin/apachectl status ステータス表示
/usr/sbin/apachectl fullstatus ステータス表示
/usr/sbin/apachectl help ヘルプの表示

apache の動作は,直接ブラウザにサーバーのIPアドレスを入れることで確認ができます.以下のWebページが表示されるでしょう.このページのソースは,/var/www/index.html です.

Apache の実行の確認
ブラウザのURL欄にサーバーアドレス(192.168.1.81)を直接書き込んだ結果.apache が動作していることがわかる.

インストールされている apache のバージョンの確認は,以下のようにします.また,コマンド「/usr/sbin/apachectl status」でも分かります.

$ /usr/sbin/apache2 -v
Server version: Apache/2.2.20 (Ubuntu)
Server built:   Sep  6 2011 18:39:06

Apache の設定 (バージョン 2.2)

設定ファイル

Apache の設定ファイルは,/etc/apache2/にあります.そこに含まれるファイルと役割は,以下の通りです.

/etc/apache2 にあるファイルとサブディレクトリー
file or directory 内容
apache2.conf Apache サーバーのメイン設定ファイル
conf.d 設定ファイルの保存ディレクトリー(注1)
envvars 環境変数の設定ファイル
httpd.conf Apache サーバーの設定ファイル(注2)
magic よく分からない.MIMEに関係がありそう.
mods-available モジュール用の設定ファイルを保存(注3)
mods-enabled 設定のシンボリックリンクを保存
ports.conf ポート番号の設定ファイル
sites-available バーチャルホストの設定ファイルを保存するディレクトリー
sites-enabled sites-available 配下にあるファイルのシンボリックリンクを保存(注4)
注1 デフォルトの apache2.conf には,「Include conf.d/」という記述があります.したがって,conf.d 以下にある設定ファイルは全て読み込まれることになります.
注2 デフォルトの apache2.conf には,「Include httpd.conf」という記述があります.このコメントには「# Include all the user configurations:」と書かれています.したがって,httpd.conf に書かれている設定は反映されます.ここには,全てのユーザーの設定を書くのが流儀でしょう.
注3 デフォルトの apache2.conf には,「Include mods-enabled/*.load」と「Include mods-enabled/*.conf」という記述があります.したがって,拡張子が load と conf は読み込まれます.
注4 デフォルトの apache2.conf には,「Include sites-enabled/」という記述があります.したがって,ここに保存されたファイル は読み込まれます.

いろいろなファイルやディレクトリーがありますが,主な設定は conf.d に設定ファイルを置くのが今風とのことです[参考].(ubuntu serverだから??) httpd.conf を編集して,設定を変えることは無いようです.

各種設定

バーチャルホスト

先に示したデフォルトで表示されるWebページは,/var/www/index.html にあります.ドキュメントルートは,/etc/apache2/sites-available/default に書かれています.このドキュメントルートが書かれたファイル「default」は,/etc/apache2/sites-enabled 以下に 000-default からシンボリック・リンクが貼られています.したがって,apache2.conf → 000-default → default というように,ドキュメントルートの設定が読み込まれています.

最初から設定されているデフォルトに代わり,新たにホストを設定する場合,次の操作が必要です.(1)設定ファイル「www」を作成し,sites-available に保存する.(2)デフォルトのバーチャルホスト「default」を削除し,新たなバーチャルホスト「www」を作成する.(3)Apache の設定ファイルの再読込.

  1. バーチャルホストの設定ファイル www をディレクトリー sites-available 以下に作成します.デフォルトのファイル defaulat をコピーして編集することを勧めます.私は,以下の部分を変更しました.
    • 「ServerAdmin ymm10m34@khaki.plala.or.jp」に変更
  2. 以下のようにして,バーチャルホスト「default」を解除し,新たなホスト「www」を登録します.削除にはコマンド「a2dissite」,登録には「a2ensite」を使います.バーチャルホストの削除/登録は,sites-enabled 以下のシンボリックリンクの有無で確認できます.
    # cd /etc/apache2/
    # a2dissite default 
    Site default disabled.
    To activate the new configuration, you need to run:
    service apache2 reload
    # a2ensite www
    Enabling site www.
    To activate the new configuration, you need to run:
      service apache2 reload
    root@www2:/etc/apache2# ls sites-enabled/
  3. Apache の設定の再読込を行います.
    # service apache2 reload
     * Reloading web server config apache2                    [ OK ]

ユーザー毎のファイル読み込み

「http://www.yamamo10.jp/yamamoto」のようにユーザー毎のデフォルトのファイルが読み込めるようにします..

  1. 「/etc/apache2/mods-available/userdir.conf」を適当に書き換えます.
    <IfModule mod_userdir.c>
          UserDir www
          UserDir disabled root
    
        Alias /yamamoto/ "/home/yamamoto/www/"
        
            <Directory /home/*/www>
                    AllowOverride FileInfo AuthConfig Limit Indexes
                    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
                    <Limit GET POST OPTIONS>
                            Order allow,deny
                            Allow from all
                    </Limit>
                    <LimitExcept GET POST OPTIONS>
                            Order deny,allow
                            Deny from all
                    </LimitExcept>
            </Directory>
    </IfModule>
    
    
  2. userdir.confを有効にします.
    # a2enmod userdir
    Enabling module userdir
    To activate the new configuration, you need to run:
      service apache2 restart
  3. 設定を再読込します.
    # service apache2 reload

HTML5 の動画のために

HTML 5 のビデオタグ <video> を使うために,httpd.conf に以下を記述します.

AddType video/ogg .ogv
AddType video/mp4 .mp4
AddType video/webm .webm

ファビコンの設定

apache2でファビコン(favcon:Favorite icon)を指定することができます.ドキュメントルートに,favicon.ico を保存するだけです.

ドキュメントルートは,apache2の設定ファイル,バーチャルホストを使っている場合はその設定ファイルに書かれているはずです.私の場合(参照:バーチャルホスト)には,/etc/apache2/sites-available/wwwに書かれていました.このファイルの「DocumentRoot」と書かれているところで,ドキュメントルートのディレクトリーが指定されています.

Apache の設定 (バージョン 2.4)

バージョン2.2 からの変更

Ubuntu server 14.04 LTS にアップグレードと同時に Apache 2.47 になりました.すると,WEB サイトを開くと,タイトル「403 Forbidden」で本文「Forbidden You don't have permission to access /yamamoto/comp/index.html on this server.」と表示され,サイトが見えなくなった (具体例).設定が変わってしまった.

バージョン 2.2 と 2.4 では設定が異なります.「virtualhost - Apache 2.4 & Ubuntu 14.04 error on Vagrant: "You don't have permission to access / on this server." - Server Fault」を参考に,ディレクトリー「/etc/apache2/sites-available」にファイル「www.conf」を作成しました.

Apache 2.4.7の設定ファイル

001   ServerName www.yamamo10.jp
002   NameVirtualHost *:80
003   
004   <Directory />
005       Options FollowSymLinks
006       AllowOverride All
007       Require all granted
008   </Directory>
009   
010   <Directory "/home/*/www">
011       Options FollowSymLinks MultiViews
012       AllowOverride All
013       Require all granted
014       DirectoryIndex index.html index.php
015   </Directory>
016   
017   <VirtualHost *:80>
018       ServerAdmin ymm10m34@khaki.plala.or.jp
019       ServerName www.yamamo10.jp
020       ServerAlias yamamo10.jp
021   
022       DirectoryIndex index.php
023       Options FollowSymLinks
024       DocumentRoot /var/www
025   
026   </VirtualHost>

ファイルの作成後,以下のコマンドを実行し,設定を反映させます.

$ sudo a2ensite www.conf
$ sudo service apache2 reload

その他の設定

Apache 2 の設定ファイル /etc/apache2/apache2.conf に,以下の変更を加えました.

  • apache や PHP 他のバージョンを隠すために,「ServerSignature Off」を記述.

設定ファイルを反映させるためには,リロードが必要です.

$ sudo service apache2 reload

ページ作成情報

参考資料

  1. 日本 Apache ユーザー会
  2. naoki NOFX2さんのIT備忘録〜Administratorへの道〜の「Apache 2.2 設定 Ubuntu Server」も参考にしました.
  3. TOBY SOFT wikiUbuntu/apache2をかなり参考にしました.
  4. Ubuntu DocumentationHTTPD - Apache2 Web Server
  5. site-available の設定は,(暫定)へっぽこ戦記に書かれているwebサーバ(apache2)の設定を参考にしました.
  6. ユーザー毎のファイルの読み込みは,「そ,そんなことないんだから!」の「ApacheでUserdirを使用できるようにする」を参考にしました.
  7. Pete LePage さんの HTML5 の動画を参考にしました.
  8. バージョン 2.4 の設定は,「virtualhost - Apache 2.4 & Ubuntu 14.04 error on Vagrant: "You don't have permission to access / on this server." - Server Fault」を参考にしました.

更新履歴

2012年6月 ページの新規作成
2014年7月5日 HTML 5の動画設定


no counter