• 文字サイズ変更
  • S
  • M
  • L
  • No : 12198
  • 公開日時 : 2016/12/10 16:04
  • 更新日時 : 2019/06/08 09:48
  • 印刷

CentOS6でのApacheの設定(VPSクラウド)

回答

設定する内容

VPSクラウドのCentOS6には初期状態で「Apache」というWebサーバープログラムがインストールされています。
Webサーバーを構築する場合はApacheの設定を行って下さい。

このマニュアルでは、例として以下のようなご利用形態を前提として記述しております。
実際に設定頂く際には、ドメイン名、IPアドレスはお客さまのものに置き換えて設定を行って下さい。

  • VPSクラウドのインスタンス上に http://www.example.com/ というアドレスのWebサーバーを構築する。
  • 「www.example.com」というドメイン名でインスタンスにアクセスするためのネームサーバー設定は完了している。

セキュリティーグループの設定

Webサーバを構築するためにセキュリティポートの設定が必要となります。
Apacheの初期設定では、80番ポートを使用します。
インスタンス起動時に割り当てたセキュリティーグループに対し、以下のルールを追記してください。

#HTTP
tcp:80,80,ip4:0.0.0.0/0

接続元となるcidrアドレスは、お客様の環境に合わせて書き換えてください。
セキュリティーグループの編集方法は、オンラインマニュアル内に記載しておりますのでご参照ください。

Webサーバーに設定する内容はお客さまのご利用形態によって変わりますが、オンラインマニュアルに記載されていない設定については弊社のサポート対象外となりますので、 この例と異なるご利用形態でお使いになる場合はApacheの設定方法について解説されている書籍・Webサイトなどをご参考に お客さまにて設定ファイルの内容を書き換えてご利用下さい。
Apache Software Foundation  http://www.apache.org/

Apacheの設定手順

Apacheの設定手順は以下の通りです。

  1. サーバーにSSHで接続し、rootアカウントを使用してログインします。
  2. 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の項目には通常使用する文字コードが設定されています。
    CentOS5ではUTF-8が標準の文字コードとして使われているためこの項目にはUTF-8が設定されていますが、この設定の場合HTMLファイルの文字コードがUTF-8で書かれていないと文字が化けてしまいます。

    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
    

    書き換えが終了したらファイルを保存してテキストエディタを終了して下さい。

  3. 以下のコマンドを実行し、Apacheを起動して下さい。
    [root@localhost ~]# service httpd start
    
  4. ブラウザで http://www.example.com/ にアクセスしてみて下さい。
    コンテンツが何も置かれていない場合、「Apache 2 Test Page powered by CentOS」というタイトルが書かれたページが表示されます。
    このページが表示されていれば正しくWebサーバーが動作しています。

    WebARENAのVPSクラウドでは、初期状態でドメイン名を設定していない場合はドメイン名部分をIPアドレスに変えても表示させることが出来ます。

    デフォルトでは /var/www/html ディレクトリがドキュメントルートに設定されています。
    このディレクトリに「index.html」というファイル名でトップページのHTMLファイルを置くとお客さまのホームページが表示されるようになります。

Webサーバーの同時接続数設定

prefork MPMの項目では同時に起動するプロセス数などを調整できます。

CentOS6のApache2.2では、Apacheのプロセスの設定(prefork MPM)を以下の設定ファイルで管理しております。

/etc/httpd/conf/httpd.conf

CentOS6の初期値のままでは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つのインスタンス上でドメイン名が異なる複数のWebサイトを運用することが出来ます。

Apacheの設定を行う前にネームサーバーで複数のドメインを使用するための設定を行っておく必要がありますので、
あらかじめ bindの設定 - バーチャルドメイン設定 に記載されているバーチャルドメインの設定を行っておいて下さい。
 

  • このページの Apacheの設定手順 に記載されている設定が完了しており、 http://www.example.com/ というアドレスのWebサイトを使用することは出来る状態になっている。
  • 「homepage.example.com」というドメイン名でインスタンスにアクセスするためのネームサーバー設定は完了している。

Apacheのバーチャルドメイン設定の手順は以下の通りです。

  1. サーバーにSSHで接続し、rootアカウントを使用してログインします。
  2. 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>
    

    書き換えが終了したらファイルを保存してテキストエディタを終了して下さい。

  3. http://homepage.example.com/ のコンテンツを置くディレクトリを作成し、 ディレクトリのオーナーをFTP接続に使用するユーザーアカウントに変更します。 ここでは例として「nttpc」というユーザアカウントを使用してFTP接続を行い、コンテンツをアップロードすることにします。
    以下のコマンドを順番に実行して下さい。
    [root@localhost ~]# mkdir /var/www/homepage.example.com
    [root@localhost ~]# chown nttpc /var/www/homepage.example.com
    
  4. 以下のコマンドを実行し、書き換えた内容を有効にして下さい。
    ※reload後、[ OK ]は表示されませんが設定は反映されております。
    [root@localhost ~]# service httpd reload
    
  5. ユーザー用アカウント(例ではnttpc)でサーバーにFTP接続して、 /var/www/homepage.example.com ディレクトリに http://homepage.example.com/ 用のコンテンツをアップロードして下さい。 トップページのファイル名は index.html にして下さい。
  6. ブラウザで 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の設定を変更する場合はこのファイルの内容を書き換え、設定ファイルの再読み込みを行って下さい。

SSLは仕様上同一のポートで複数のバーチャルドメインを使用することが出来ません。
通常のポート番号(443番)で複数のドメイン名を使用してSSLのWebを運用することは出来ませんので、ご注意下さい。
初期状態ではCentOS5に標準で付いているセルフサインの証明書がインストールされているためアクセスした時に警告が表示されます。
警告が表示されないようにするためにはブラウザが対応している信頼された認証局に申請を行い、 独自の証明書を作成してサーバーにインストールする必要があります。

参考として、主な認証局サービスをいくつかご案内致します。
ご利用になる認証局についての制限は特にございませんので、ここで挙げられていない認証局で作成された証明書を使用することも可能です。
証明書の作成費用など、サービスの詳細につきましてはそれぞれの認証局に直接お問い合わせ下さい。 証明書の作成・インストールはお客さまが証明書を申請する認証局で指定されている手順に従ってお客さまにて行って下さい。
弊社での設定・申請代行は承っておりませんので、ご了承下さい。

[ SSLを使わない場合の設定 ]

SSLを使用したくない場合の設定変更手順は以下の通りです。

  1. サーバーにSSHで接続し、rootアカウントを使用してログインします。
  2. 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
    

    書き換えが終了したらファイルを保存してテキストエディタを終了して下さい。

  3. 以下のコマンドを実行し、書き換えた内容を有効にして下さい。
    [root@localhost ~]# service httpd reload
    
 

アンケート:ご意見をお聞かせください