2015年03月30日

Ubuntu サーバの設定 Webサーバー

最も利用頻度が高いと思われる、Webサーバーを構築。

Webサーバー「Apache2」を導入
インストール。
sudo apt-get install apache2

完了した時点で、立ち上がっているので、
Webブラウザから、「http://サーバーのIPアドレス」にアクセスすると、
apache2_1.png

デフォルトページの「It Works!」が表示される。
これは、「/var/www/html/index.html」に書かれたHTMLを表示しています。
この「/var/www/html/」を「ドキュメントルート」と呼び、Apache2で公開するコンテンツのほとんどを格納する場所です。

ドキュメントルートを変更する
デフォルトのドキュメントルート「/var/www/html/」を変更する。
cd /etc/apache2/sites-available/
sudo cp 000-default.conf 000-index.conf
"000-default.conf"は雛形として残し、コピーして"000-index.conf"(適当)とした。
この"000-default.conf"を編集する。
sudo vi 000-index.conf

# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.example.com

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html ←変更する場所へ書き換える
~省略~


次に
sudo vi /etc/apache2/apache2.conf
~省略~

<Directory /var/www/> ←変更したディレクトリに変更
  Options Indexes FollowSymLinks
  AllowOverride None
  Require all granted
</Directory>

~省略~


Directory ディレクティブの設定を行う。
/etc/apache2/apache2.conf
を直接に編集せず、

個別サイトの設定は、
/etc/apache2/sites-available/
に置く。

ここでは先に作った "000-index.conf" に記述した。
"/etc/apache2/apache2.conf" に記載されている内容を参考に、
<Directory パス> から </Directory> を追加する。

# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.example.com

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html ←変更する場所へ書き換える

<Directory /var/www/html> ←変更する場所へ書き換える
  Options Indexes FollowSymLinks
  AllowOverride none
  Require all granted
</Directory>


~省略~


最後に、作成した設定ファイルを登録します。

システムからは /etc/apache2/apache2.conf が読み込まれます。
そして apache2.conf の最後には、以下の記述があり、
# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf

これにより、sites-enabled 以下に置かれている設定ファイルが読み込まれます。
実のところ、この sites-enabled ディレクトリに置かれているファイルはシンボリックリンクになっていて、その実体は、sites-available 以下のファイル。
上で準備してきたものが相当します。

つまり、設定ファイルは、sites-available で準備し、その設定ファイルのうち、実際に有効としたいものをシンボリックリンクで、 sites-enabled に配置して使う。

設定を有効にするには、

$ sudo a2ensite 設定ファイル名



無効化したいときは

$ sudo a2dissite 設定ファイル名



実際に作業すると、
まず現在登録されている”000-default.conf”を削除。
sudo a2dissite 000-default.conf

それから指定したファイルを”000-index.conf”を登録。
sudo a2ensite 000-index.conf


これがapache2ディレクトリの"sites-enabled"内にあった000-default.confのシンボリックリンクを削除し、新たに000-index.confのリンクを置く操作です。

これでApache2を再起動する。
sudo service apache2 restart

ここまででは参照先を変更しただけで、そこにはhtmlがまだ無いので「It Works!」が表示されなくなったはず。

変更したディレクトリに、「/var/www/」に置かれていたindex.htmlをコピーして
再度、アクセスすると「It Works!」が表示されればOK。

バージョン情報を隠す
初期状態のままでは、404 エラーなどを返したときにOSやApache のバージョンが表示される。
Apache/2.4.7 (Ubuntu) Server
セキュリティ上、隠したいのでこれを無効にする。
sudo vi /etc/apache2/conf-available/security.conf

~省略~

#
# ServerTokens
# This directive configures what you return as the Server HTTP response
# Header. The default is 'Full' which sends information about the OS-Type
# and compiled in modules.
# Set to one of: Full | OS | Minimal | Minor | Major | Prod
# where Full conveys the most information, and Prod the least.
#ServerTokens Minimal
ServerTokens Prod ← "OS"を"Prod"に変更
※ServerTokens により余分な情報を出力しないよう抑制

#ServerTokens Full

#
# Optionally add a line containing the server version and virtual host
# name to server-generated pages (internal error documents, FTP directory
# listings, mod_status and mod_info output etc., but not CGI generated
# documents or custom error documents).
# Set to "EMail" to also include a mailto: link to the ServerAdmin.
# Set to one of: On | Off | EMail
ServerSignature Off ←コメント削除
#ServerSignature On ←コメント付与
※ServerSignature によりディレクトリ リストのフッターに余分な情報を出力しないよう抑制

~省略~


これでApache2を再起動する。
sudo service apache2 restart

再度、アクセスしてもバージョンは表示されなくなった。


posted by Zorinos at 00:02| Comment(0) | Linux | 更新情報をチェックする
この記事へのコメント
コメントを書く
コチラをクリックしてください
ブログランキング・にほんブログ村へ
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。