Apacheの設定
設定する内容
WebARENAのVPSには初期状態で「Apache」というWebサーバープログラムがインストールされています。
Webサーバーを構築する場合はApacheの設定を行って下さい。
このマニュアルでは、例として以下のようなご利用形態を前提として記述しております。
実際に設定頂く際には、ドメイン名、IPアドレスはお客さまのものに置き換えて設定を行って下さい。
- VPS上に http://www.example.com/ というアドレスのWebサーバーを構築する。
- 「www.example.com」というドメイン名でVPSにアクセスするためのネームサーバー設定は完了している。
Webサーバーに設定する内容はお客さまのご利用形態によって変わりますが、オンラインマニュアルに記載されていない設定については弊社のサポート対象外となりますので、この例と異なるご利用形態でお使いになる場合はApacheの設定方法について解説されている書籍・Webサイトなどをご参考に お客さまにて設定ファイルの内容を書き換えてご利用下さい。
Apache Software Foundation
Apacheの設定手順
Apacheの設定手順は以下の通りです。
- サーバーにSSHで接続し、rootアカウントを使用してログインします。
- viなどのテキストエディタで /etc/httpd/conf/httpd.conf ファイルを開いて下さい。
viで /etc/httpd/conf/httpd.conf ファイルを開くコマンドは以下の通りです。[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
httpd.confファイルには多くの設定項目が書かれていますが、ここでは最低限設定しておいた方がよい項目をご案内致します。
KeepAliveの項目ではHTTPのキープアライブ機能を使用するかしないかを設定します。
デフォルトではOffとなっていますが、この状態だとOnの場合に比べレスポンスが悪くなりますのでOnに設定することをお勧めします。# # KeepAlive: Whether or not to allow persistent connections ... # one request per connection). Set to "Off" to deactivate. # KeepAlive On
ServerAdminの項目にはWebサーバー管理者のメールアドレスを入力します。
デフォルトでは root@localhost となっていますので、お客さまのメールアドレスに書き換えて下さい。
ここでは例として root@example.com というアドレスを設定しています。# # ServerAdmin: Your address, where problems with the server ... # e-mailed. This address appears on some server-generated ... # as error documents. e.g. admin@your-domain.com # ServerAdmin root@example.com
ServerNameの項目には、ホスト名とポートを設定します。
デフォルトでは www.example.com:80 となっていますので、行頭の「#」を削除して、お客さまのホスト名に書き換えて下さい。# # ServerName gives the name and port that the server uses to identify itself. # This can often be determined automatically, but we recommend you specify # it explicitly to prevent problems during startup. # # If this is not set to valid DNS name for your host, server-generated # redirections will not work. See also the UseCanonicalName directive. # # If your host doesn't have a registered DNS name, enter its IP address here. # You will have to access it by its address anyway, and this will make # redirections work in a sensible way. # ServerName www.example.com:80 (←行頭にある # を削除)
AddDefaultCharsetの項目には通常使用する文字コードが設定されています。
UTF-8ではない文字コードで日本語の文字を記述する場合でも、 以下のように行頭に「#」を付けておくとこの設定をコメントアウト(無効化)して文字化けを防止することが出来ますので、 このように変更して頂くことをお勧め致します。
Scientific Linux6ではUTF-8が標準の文字コードとして使われているためこの項目にはUTF-8が設定されていますが、この設定の場合HTMLファイルの文字コードがUTF-8で書かれていないと文字が化けてしまいます。# Specify a default charset for all pages sent out. This is # always a good idea and opens the door for future ... # of your web site, should you ever want it. Specifying it as # a default does little harm; as the standard dictates that a page # is in iso-8859-1 (latin1) unless specified otherwise i.e. you # are merely stating the obvious. There are also some security # reasons in browsers, related to javascript and URL parsing # which encourage you to always set a default char set. # # AddDefaultCharset UTF-8
書き換えが終了したらファイルを保存してテキストエディタを終了して下さい。 - 以下のコマンドを実行し、Apacheを起動して下さい。
[root@localhost ~]# service httpd start
-
ブラウザで http://www.example.com/ にアクセスしてみて下さい。
コンテンツが何も置かれていない場合、「Scientific Linux Test Page」というタイトルが書かれたページが表示されます。
このページが表示されていれば正しくWebサーバーが動作しています。WebARENAのVPSでは、初期状態でドメイン名を設定していない場合はドメイン名部分をIPアドレスに変えても表示させることが出来ます。デフォルトでは /var/www/html ディレクトリがドキュメントルートに設定されています。
このディレクトリに「index.html」というファイル名でトップページのHTMLファイルを置くとお客さまのホームページが表示されるようになります。
Webサーバーの同時接続数設定
prefork MPMの項目では同時に起動するプロセス数などを調整できます。
Scientific Linux6のApache2.2では、Apacheのプロセスの設定(prefork MPM)を以下の設定ファイルで管理しております。
/etc/httpd/conf/httpd.conf
Scientific Linux6の初期値のままではApacheの動作が不安定になる場合がございますので、弊社にてServerLimitとMaxClientsの値を 128 に設定してご提供しております。
※初期値については、こちらをご参照下さい。
なお、設定されている値については、お客さま側で任意の値を設定してご利用頂くことができます。
prefork MPMの設定は、/etc/httpd/conf/httpd.conf、に記述する必要がございますので、この点ご注意下さい。
/etc/httpd/conf/httpd.conf
# prefork MPM # StartServers: number of server processes to start # MinSpareServers: minimum number of server processes which are kept spare MaxSpareServers: maximum number of server processes which are kept spare # ServerLimit: maximum value for MaxClients for the lifetime of the server # MaxClients: maximum number of server processes allowed to start # MaxRequestsPerChild: maximum number of requests a server process serves StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 128 (初期設定値 256) MaxClients 128 (初期設定値 256) MaxRequestsPerChild 4000
自動起動の設定
Apacheを起動するとWebサーバーとして動作するようになりますが、そのままの状態ではOSを再起動するたびに手動でApache を起動しなければなりません。
OSの再起動と同時に Apache を自動起動したい場合は、chkconfig で httpd をon に設定して下さい。
chkconfig の設定方法は、オンラインマニュアル内サービスの自動起動設定に掲載しておりますのでご参照下さい。
バーチャルドメイン設定
Apacheのバーチャルドメイン機能を使用すると、1つのVPS上でドメイン名が異なる複数のWebサイトを運用することが出来ます。
Apacheの設定を行う前にネームサーバーで複数のドメインを使用するための設定を行っておく必要がありますので、
あらかじめbindの設定 - バーチャルドメイン設定に記載されているバーチャルドメインの設定を行っておいて下さい。
以降の説明は、例として以下のようなご利用形態を前提として記述しています。
- このページのApacheの設定手順に記載されている設定が完了しており、 http://www.example.com/ というアドレスのWebサイトを使用することは出来る状態になっている。
- 「homepage.example.com」というドメイン名でVPSにアクセスするためのネームサーバー設定は完了している。
Apacheのバーチャルドメイン設定の手順は以下の通りです。
- サーバーにSSHで接続し、rootアカウントを使用してログインします。
- viなどのテキストエディタで /etc/httpd/conf/httpd.conf ファイルを開いて下さい。
viで /etc/httpd/conf/httpd.conf ファイルを開くコマンドは以下の通りです。[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
ファイルの末尾近くにバーチャルドメインの設定項目があります。
ここで「NameVirtualHost *:80」と書かれている行があり、初期状態では行頭に「#」が付けられて無効な状態になっています。
名前ベースのバーチャルドメイン機能を使用するため、行頭の「#」を削除して下さい。# # Use name-based virtual hosting. # NameVirtualHost *:80 (←行頭にある # を削除) # # NOTE: NameVirtualHost cannot be used without a port specifier # (e.g. :80) if mod_ssl is being used, due to the nature of the # SSL protocol. #
ファイルの末尾に各バーチャルドメインの設定を追加します。緑色で書かれている内容を追加して下さい。名前ベースのバーチャルドメイン機能を使用する場合、
追加する hostname.example.com だけではなくもともと使用している www.example.com もバーチャルドメインとして設定する必要があります。# # VirtualHost example: # Almost any Apache directive may go into a VirtualHost container. # The first VirtualHost section is used for requests without a known # server name. # # # ServerAdmin webmaster@dummy-host.example.com # DocumentRoot /www/docs/dummy-host.example.com # ServerName dummy-host.example.com # ErrorLog logs/dummy-host.example.com-error_log # CustomLog logs/dummy-host.example.com-access_log common # <VirtualHost *:80> ServerAdmin root@example.com DocumentRoot /var/www/html ServerName www.example.com </VirtualHost> <VirtualHost *:80> ServerAdmin root@example.com DocumentRoot /var/www/homepage.example.com ServerName homepage.example.com </VirtualHost>
書き換えが終了したらファイルを保存してテキストエディタを終了して下さい。 - http://homepage.example.com/ のコンテンツを置くディレクトリを作成し、ディレクトリのオーナーをFTP接続に使用するユーザーアカウントに変更します。 ここでは例として「nttpc」というユーザアカウントを使用してFTP接続を行い、コンテンツをアップロードすることにします。
以下のコマンドを順番に実行して下さい。[root@localhost ~]# mkdir /var/www/homepage.example.com [root@localhost ~]# chown nttpc /var/www/homepage.example.com
- 以下のコマンドを実行し、書き換えた内容を有効にして下さい。
※reload後、[ OK ]は表示されませんが設定は反映されております。[root@localhost ~]# service httpd reload
- ユーザー用アカウント(例ではnttpc)でサーバーにFTP接続して、 /var/www/homepage.example.com ディレクトリに http://homepage.example.com/ 用のコンテンツをアップロードして下さい。 トップページのファイル名は index.html にして下さい。
- ブラウザで http://www.example.com/ と http://homepage.example.com/ にアクセスしてみて下さい。
それぞれ別々のコンテンツが表示されていれば、バーチャルドメインが正しく動作しています。
SSL設定
SSLはApacheを起動した時点で使用可能になっています。
/var/www/html ディレクトリにあるコンテンツをSSLでも表示させることが出来るようになっていますので Apacheを起動させて以下のアドレスにアクセスすればアップロードしたコンテンツがSSLで表示されます。
https://(ドメイン名またはIPアドレス)/
たとえば、Webサーバー用のドメイン名として www.example.com が設定されている場合は以下のアドレスにアクセスして下さい。
https://www.example.com/
SSLの設定は /etc/httpd/conf.d/ssl.conf ファイルに書かれています。
SSLの設定を変更する場合はこのファイルの内容を書き換え、設定ファイルの再読み込みを行って下さい。
通常のポート番号(443番)で複数のドメイン名を使用してSSLのWebを運用することは出来ませんので、ご注意下さい。
初期状態ではScientific Linux6に標準で付いているセルフサインの証明書がインストールされているためアクセスした時に警告が表示されます。
警告が表示されないようにするためにはブラウザが対応している信頼された認証局に申請を行い、 独自の証明書を作成してサーバーにインストールする必要があります。
参考として、SuitePRO V3でクーポン販売している認証局を以下に案内します。
ご利用になる認証局についての制限は特にございませんので、ここで挙げられていない認証局で作成された証明書を使用することも可能です。
証明書の作成・インストールはお客さまが証明書を申請する認証局で指定されている手順に従ってお客さまにて行って下さい。
弊社での設定・申請代行は承っておりませんので、ご了承下さい。
[ SSLを使わない場合の設定 ]
SSLを使用したくない場合の設定変更手順は以下の通りです。
- サーバーにSSHで接続し、rootアカウントを使用してログインします。
- viなどのテキストエディタで /etc/httpd/conf.d/ssl.conf ファイルを開いて下さい。
viで /etc/httpd/conf/httpd.conf ファイルを開くコマンドは以下の通りです。[root@localhost ~]# vi /etc/httpd/conf.d/ssl.conf
「Listen 443」と記述されている行と「SSLEngine on」と記述されている行の先頭に「#」を付けてコメントアウトして下さい。# # When we also provide SSL we have to listen to the # the HTTPS port in addition. # #Listen 443
# SSL Engine Switch: # Enable/Disable SSL for this virtual host. #SSLEngine on
書き換えが終了したらファイルを保存してテキストエディタを終了して下さい。 - 以下のコマンドを実行し、書き換えた内容を有効にして下さい。
[root@localhost ~]# service httpd reload