ステータス:非推奨

理由:この記事は積極的に管理されておらず、新しいバージョンが利用可能です。   代わりに参照してください: CentOS7にApacheWebサーバーをインストールする方法

序章

Apache Webサーバーは、インターネット上でWebコンテンツを提供する最も一般的な方法です。 インターネットのアクティブなWebサイトの半分以上にサービスを提供し、非常に強力で柔軟性があります。

Apacheは、その機能とコンポーネントを、個別にカスタマイズおよび構成できる個々のユニットに分割します。 個々のサイトまたはドメインを記述する基本単位は、仮想ホストと呼ばれます。 仮想ホストを使用すると、1つのサーバーで、マッチングシステムを使用して複数のドメインまたはインターフェイスをホストできます。 これは、単一のVPSから複数のサイトをホストしようとしている人に関係があります。

構成された各ドメインは、同じサーバーが他のサイトにも責任があることを示すことなく、訪問者をそのサイトの情報を保持する特定のディレクトリに誘導します。 このスキームは、すべてのサイトが引き付けるトラフィックをサーバーが処理できる限り、ソフトウェアの制限なしに拡張できます。

このガイドでは、CentOS7VPSでApache仮想ホストを設定する方法について説明します。 このプロセスでは、要求しているドメインに応じて、さまざまな訪問者にさまざまなコンテンツを提供する方法を学習します。

前提条件

このガイドを開始する前に、最初に完了する必要のあるいくつかの手順があります。

sudo権限を持つroot以外のユーザーがいるCentOS7サーバーにアクセスする必要があります。 これをまだ構成していない場合は、CentOS7初期サーバーセットアップガイドを実行してこのアカウントを作成できます。

また、Apacheの仮想ホストを構成するには、Apacheをインストールする必要があります。 まだ行っていない場合は、yumを使用して、CentOSのデフォルトのソフトウェアリポジトリからApacheをインストールできます。

sudo yum -y install httpd

次に、ApacheをCentOSサービスとして有効にして、再起動後に自動的に起動するようにします。

sudo systemctl enable httpd.service

これらの手順が完了したら、SSHを介してroot以外のユーザーアカウントとしてログインし、チュートリアルを続行します。

注:このガイドの構成例では、example.com用に1つの仮想ホストを作成し、example2.com用に別の仮想ホストを作成します。 これらはガイド全体で参照されますが、フォローしながら独自のドメインまたは値に置き換える必要があります。 DigitalOceanでドメイン名を設定する方法については、このリンクをたどってください。

使用する実際のドメインがない場合は、チュートリアルの終わり近くに、ダミー値を使用して仮想ホスト構成をテストする方法を示します。

ステップ1—ディレクトリ構造を作成する

まず、訪問者に提供するサイトデータを保持するディレクトリ構造を作成する必要があります。

ドキュメントルート(Apacheが提供するコンテンツを見つけるために参照する最上位ディレクトリ)は、/var/wwwディレクトリ内の個々のディレクトリに設定されます。 作成する予定の仮想ホストごとに、ここにディレクトリを作成します。

これらの各ディレクトリ内に、実際のファイルを保持するpublic_htmlディレクトリを作成します。 これにより、ホスティングにある程度の柔軟性がもたらされます。

これらのディレクトリは、mkdirコマンドを使用して作成できます(-pフラグを使用すると、その中にネストされたフォルダーを含むフォルダーを作成できます)。

sudo mkdir -p /var/www/example.com/public_html
sudo mkdir -p /var/www/example2.com/public_html

red の部分は、VPSから提供するドメイン名を表していることに注意してください。

ステップ2—権限を付与する

これでファイルのディレクトリ構造ができましたが、ファイルはrootユーザーが所有しています。 通常のユーザーがWebディレクトリ内のファイルを変更できるようにする場合は、chownを使用して所有権を変更できます。

sudo chown -R $USER:$USER /var/www/example.com/public_html
sudo chown -R $USER:$USER /var/www/example2.com/public_html

$USER変数は、コマンドを送信したときと同じように、現在ログインしているユーザーの値を取ります。 これにより、通常のユーザーは、コンテンツを保存するpublic_htmlサブディレクトリを所有するようになります。

また、アクセス許可を少し変更して、ページが正しく提供されるように、一般的なWebディレクトリとその中のすべてのファイルとフォルダーへの読み取りアクセスが許可されるようにする必要があります。

sudo chmod -R 755 /var/www

これで、Webサーバーにコンテンツを提供するために必要なアクセス許可が付与され、ユーザーは適切なフォルダー内にコンテンツを作成できるようになります。

ステップ3—仮想ホストごとにデモページを作成する

ディレクトリ構造が整ったので、提供するコンテンツを作成しましょう。

これはデモンストレーションとテストのためだけのものであるため、ページは非常にシンプルになります。 その特定のドメインを識別するサイトごとにindex.htmlページを作成します。

example.comから始めましょう。 次のように入力して、エディターでindex.htmlファイルを開くことができます。

nano /var/www/example.com/public_html/index.html

このファイルで、ページが接続されているサイトを示す簡単なHTMLドキュメントを作成します。 このガイドでは、最初のドメインのファイルは次のようになります。

<html>
  <head>
    <title>Welcome to Example.com!</title>
  </head>
  <body>
    <h1>Success! The example.com virtual host is working!</h1>
  </body>
</html>

終了したら、ファイルを保存して閉じます。

このファイルをコピーして、2番目のサイトのindex.htmlのテンプレートとして使用するには、次のように入力します。

cp /var/www/example.com/public_html/index.html /var/www/example2.com/public_html/index.html

次に、そのファイルを開いて、関連する情報を変更しましょう。

nano /var/www/example2.com/public_html/index.html
<html>
  <head>
    <title>Welcome to Example2.com!</title>
  </head>
  <body>
    <h1>Success! The example2.com virtual host is working!</h1>
  </body>
</html>

このファイルも保存して閉じます。 これで、仮想ホスト構成をテストするために必要なページができました。

ステップ4—新しい仮想ホストファイルを作成する

仮想ホストファイルは、個別のサイトの構成を指定し、ApacheWebサーバーがさまざまなドメイン要求にどのように応答するかを決定するものです。

まず、仮想ホストが保存されるディレクトリと、仮想ホストが訪問者にサービスを提供する準備ができていることをApacheに通知するディレクトリを設定する必要があります。 sites-availableディレクトリはすべての仮想ホストファイルを保持し、sites-enabledディレクトリは公開する仮想ホストへのシンボリックリンクを保持します。 次のように入力して、両方のディレクトリを作成できます。

sudo mkdir /etc/httpd/sites-available
sudo mkdir /etc/httpd/sites-enabled

注:このディレクトリレイアウトはDebianの寄稿者によって導入されましたが、仮想ホストの管理の柔軟性を高めるためにここに含めています(この方法で仮想ホストを一時的に有効または無効にする方が簡単です)。

次に、sites-enabledディレクトリで仮想ホストを探すようにApacheに指示する必要があります。 これを実現するために、Apacheのメイン構成ファイルを編集し、追加の構成ファイル用のオプションのディレクトリーを宣言する行を追加します。

sudo nano /etc/httpd/conf/httpd.conf

次の行をファイルの最後に追加します。

IncludeOptional sites-enabled/*.conf

その行の追加が完了したら、ファイルを保存して閉じます。 これで、最初の仮想ホストファイルを作成する準備が整いました。

最初の仮想ホストファイルを作成する

root権限でエディタで新しいファイルを開くことから始めます。

sudo nano /etc/httpd/sites-available/example.com.conf

注:概説した構成により、すべての仮想ホストファイル.confで終わる必要があります

まず、ポート80(デフォルトのHTTPポート)でリッスンしている仮想ホストとしてコンテンツを指定するタグのペアを作成することから始めます。

<VirtualHost *:80>

</VirtualHost>

次に、メインサーバー名www.example.comを宣言します。 また、 example.com を指すサーバーエイリアスを作成して、www.example.comexample.comのリクエストが同じコンテンツを配信するようにします。 :

<VirtualHost *:80>
    ServerName www.example.com
    ServerAlias example.com
</VirtualHost>

注:ドメインのwwwバージョンが正しく機能するには、ドメインのDNS構成にwwwリクエストをサーバーのIPにポイントするAレコードまたはCNAMEが必要です。 。 ワイルドカード(*)レコードも機能します。 DNSレコードの詳細については、ホスト名設定ガイドをご覧ください。

最後に、公開されているWebドキュメントのルートディレクトリを指定して終了します。 また、この特定のサイトのエラーとリクエストログを保存する場所をApacheに指示します。

<VirtualHost *:80>

    ServerName www.example.com
    ServerAlias example.com
    DocumentRoot /var/www/example.com/public_html
    ErrorLog /var/www/example.com/error.log
    CustomLog /var/www/example.com/requests.log combined
</VirtualHost>

これらの項目の書き込みが終了したら、ファイルを保存して閉じることができます。

最初の仮想ホストをコピーして、追加のドメイン用にカスタマイズする

最初の仮想ホストファイルが確立されたので、そのファイルをコピーして必要に応じて調整することで、2番目の仮想ホストファイルを作成できます。

cpでコピーすることから始めます。

sudo cp /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-available/example2.com.conf

テキストエディタでroot権限で新しいファイルを開きます。

sudo nano /etc/httpd/sites-available/example2.com.conf

次に、2番目のドメインを参照するために、すべての情報を変更する必要があります。 終了すると、2番目の仮想ホストファイルは次のようになります。

<VirtualHost *:80>
    ServerName www.example2.com
    DocumentRoot /var/www/example2.com/public_html
    ServerAlias example2.com
    ErrorLog /var/www/example2.com/error.log
    CustomLog /var/www/example2.com/requests.log combined
</VirtualHost>

これらの変更が完了したら、ファイルを保存して閉じることができます。

ステップ5—新しい仮想ホストファイルを有効にする

仮想ホストファイルを作成したので、Apacheが仮想ホストファイルを訪問者に提供できるように、それらを有効にする必要があります。 これを行うには、sites-enabledディレクトリに各仮想ホストのシンボリックリンクを作成します。

sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/example.com.conf
sudo ln -s /etc/httpd/sites-available/example2.com.conf /etc/httpd/sites-enabled/example2.com.conf

終了したら、Apacheを再起動して、次の変更を有効にします。

sudo apachectl restart

ステップ6—ローカルホストファイルを設定する(オプション)

この手順をテストするために実際のドメインの代わりにサンプルドメインを使用している場合でも、ローカルコンピューターのhostsファイルを一時的に変更することで、仮想ホストの機能をテストできます。 これにより、登録済みドメインを使用している場合にDNSシステムが行うのと同じように、構成したドメインに対するすべての要求がインターセプトされ、それらがVPSサーバーを指すようになります。 ただし、これはコンピュータからのみ機能し、テスト目的でのみ役立ちます。

注:これらの手順では、VPSサーバーではなく、ローカルコンピューターで操作していることを確認してください。 そのコンピューターの管理者資格情報にアクセスする必要があります。

MacまたはLinuxコンピューターを使用している場合は、次のように入力して、管理者権限でローカルのhostsファイルを編集します。

sudo nano /etc/hosts

Windowsマシンを使用している場合は、hostsファイルを変更する手順ここを参照してください。

追加する必要のある詳細は、VPSのパブリックIPアドレスと、そのVPSに到達するために使用するドメインです。

127.0.0.1   localhost
127.0.1.1   guest-desktop
server_ip_address example.com
server_ip_address example2.com

これにより、ローカルコンピューター上のexample.comおよびexample2.comに対するすべての要求が送信され、server_ip_addressのサーバーに送信されます。

ステップ7—結果をテストする

仮想ホストを構成したので、Webブラウザーで構成したドメインに移動して、セットアップを簡単にテストできます。

http://example.com

次のようなページが表示されます。

Success! The example.com virtual host is working!

同様に、他のドメインにアクセスすると、それらのドメイン用に作成したファイルが表示されます。

構成したすべてのサイトが正常に機能する場合は、同じCentOSサーバー上に新しいApache仮想ホストを正常に構成しています。

自宅のコンピューターのhostsファイルを調整した場合は、構成が機能することを確認したので、追加した行を削除することをお勧めします。 これにより、hostsファイルが実際には必要のないエントリでいっぱいになるのを防ぐことができます。

結論

この時点で、個別のドメインを持つ複数のサイトを処理する単一のCentOS7サーバーができているはずです。 上で概説した手順に従ってこのプロセスを拡張し、後で追加の仮想ホストを作成できます。 Apacheが処理できるドメイン名の数にソフトウェアの制限はありません。そのため、サーバーが処理できる数だけ自由に作成してください。