Apache2のインストールと設定

 UbuntuでもやはりApacheの設定が可能です。Ubuntu/DebianでのApache2の取扱いはちょっと変わっていて、そのサイトやモジュールのカスタム設定はすべてシンボリックリンクを通じてON/OFFをするという独自の方法論があります。これは非常に便利です。巷ではDebian流とかいいますが、本当にそれはある種の流派っぽい感じすらします。

 ここでの設定例は以下のとおりです。
  • あらかじめオリジナルのドメインを取得していることを前提にしています。
  • DocumentRootは/var/wwwにしているとなんか嫌なので/home/<自分のユーザー名>/public_htmlにしておきます。
  • 管理者(自分)以外のいくつかのユーザーをバーチャルドメインやサブドメインで設定できるようにする。
  • すべてのユーザーでCGI(php5、perl、ruby、python)を使えるようにする。(基本的なことができるまでの設定です。)
  • Movable TypeなどのCMSが利用できるように設定する。

Apacheのインストール

1. apt-getでApache2をインストールします。
# apt-get install apache2
 インストールが終了したらブラウザーからhttp://localhost/でWebサーバーにアクセスできることを確認します。「It's work !」という文字が出てきたら成功です。もしうまくつながらない場合は、# /etc/init.d/apache2 restartで再起動をかけてみてください。

/etc/apache2/apache2.confの設定

 Debianではhttpd.confの設定をしないようです。DebianではApache2の設定ファイルはそれぞれのカテゴリーごとに分割されていて、それぞれの機能にしたがって各種のファイルを編集します。Webサーバーの大まかな設定はこのapache2.confに設定を書きます。(もちろんhttpd.confにも設定を書くことができます。その他のサーバーから引越しなどをした場合には今までと同様にまとめて書くこともできます。が、それはどうやらDebian流ではないみたいです。)/etc/apache2/apache2.confは以下のように設定しておくとよいです。(※あくまでも基本的な部分だけなのでカスタマイズはまだまだたくさんできますよ。)

1. 例によってapache2.confはバックアップをとっておくことをお薦めします。
# cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.backup
2. apache2.confの設定をします。例として以下のような設定でconfします。
ドメイン example.com
ユーザー名 myuser

# 取得ドメインをServerNameに設定しておきます。
# DNSサーバーでこのサーバーのIPとドメインを関連付けておかないとダメです。
ServerName example.com

# ここから先は殆どデフォルトのままでOK
ServerRoot "/etc/apache2"
LockFile /var/lock/apache2/accept.lock
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>
<IfModule mpm_worker_module>
    StartServers          2
    MaxClients          150
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadsPerChild      25
    MaxRequestsPerChild   0
</IfModule>
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
AccessFileName .htaccess
<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
</Files>
DefaultType text/plain
HostnameLookups Off
ErrorLog /var/log/apache2/error.log
LogLevel warn
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
Include /etc/apache2/httpd.conf
Include /etc/apache2/ports.conf
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
CustomLog /var/log/apache2/other_vhosts_access.log vhost_combined

# 各種設定はconf.dから読み込むのが礼儀みたいなところがあるので...。
Include /etc/apache2/conf.d/

# これを読み込まないと動きません。
Include /etc/apache2/sites-enabled/

# セキュリティー上プロダクトの表示のみ(バージョン名などを隠す)
ServerTokens ProductOnly
ServerSignature Off

/etc/apache2以下の設定

1. /etc/apache2/sites-available/defaultと/etc/apache2/sites-available/default-sslの二つのファイルのコピー(バックアップ)をとっておきます。(あとでトラブルが発生したときにデフォルトに戻せるように)
# cp /etc/apache2/sites-available/default /etc/apache2/sites-available/default.backup
# cp /etc/apache2/sites-available/default-ssl /etc/apache2/sites-available/default-ssl.backup

2. 自身のドメインでWebサーバーを設定します。
ドメイン example.com
ユーザー名 myuser

<VirtualHost *:80>
    ServerAdmin myuser@example.com
    DocumentRoot /home/myuser/public_html

    <Directory />
        Options FollowSymLinks Includes ExecCGI MultiViews
        AllowOverride Limit FileInfo
        Order allow,deny
        Allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

# www
<VirtualHost *:80>
        ServerAdmin myuser@example.com
        DocumentRoot /home/myuser/public_html
        ServerName www.example.com
</VirtualHost>
3. すべての設定が終わったらApacheを再起動します。
# /etc/init.d/apache2 restart
4. DocumentRootで設定したディレクトリにindex.htmlを作成して、以下のURLで接続できるかどうか確認します。
  • http://www.example.com/
  • http://localost/
  • http://192.168.11.2/
  • http://<このWebサーバーのIPアドレス>
 接続できないURLがあった場合はその時点でうまく名前解決などができていない...ということになります。ネットワーク設定まわりをもう一度見直してみてください。








プロフィール



  • Name :: 山上オサム ♂(37)
  • Hobby :: 武術
  • Work :: Web Designer