UbuntuでもやはりApacheの設定が可能です。Ubuntu/DebianでのApache2の取扱いはちょっと変わっていて、そのサイトやモジュールのカスタム設定はすべてシンボリックリンクを通じてON/OFFをするという独自の方法論があります。これは非常に便利です。巷ではDebian流とかいいますが、本当にそれはある種の流派っぽい感じすらします。
ここでの設定例は以下のとおりです。
1. 例によってapache2.confはバックアップをとっておくことをお薦めします。
2. 自身のドメインでWebサーバーを設定します。
ここでの設定例は以下のとおりです。
- あらかじめオリジナルのドメインを取得していることを前提にしています。
- 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.backup2. 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>3. すべての設定が終わったらApacheを再起動します。
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>
# /etc/init.d/apache2 restart4. DocumentRootで設定したディレクトリにindex.htmlを作成して、以下のURLで接続できるかどうか確認します。
- http://www.example.com/
- http://localost/
- http://192.168.11.2/
- http://<このWebサーバーのIPアドレス>



