Apache Webサーバーは、インターネット上でWebコンテンツを提供する最も一般的な方法であり、その機能とコンポーネントを個別にカスタマイズおよび構成できる個別のユニットに分解します。単一のサイトまたはドメインを記述する基本単位は、仮想ホストと呼ばれます。仮想ホスティングにより、1つのサーバーがマッチングシステムを使用して複数のドメインまたはインターフェイスをホストできます。
このチュートリアルでは、CentOS 7サーバーで[Apache仮想ホスト](https://cloud.tencent.com/developer/article/1022750?from=10680)を設定する方法を紹介します。このプロセスでは、要求されたドメインに基づいて、さまざまな訪問者にさまざまなコンテンツを提供する方法を学習します。 Apache構成仮想ホストに問題がある場合は、[Tencent Cloud Communityにアクセスして関連するソリューションを表示する](https://cloud.tencent.com/developer/article/1113091?from=10680)にアクセスすることもできます。
このガイドを開始する前に、いくつかの手順を完了する必要があります。
sudo yum -y install httpd
次に、ApacheをCentOSサービスとして有効にして、再起動後に自動的に起動するようにします。
sudo systemctl enable httpd.service
これらの手順を完了したら、SSH経由で非rootユーザーアカウントとしてログインし、このチュートリアルを続行します。
まず、訪問者にサービスを提供するために、サイトデータを格納するためのディレクトリ構造を作成する必要があります。
ドキュメントルートディレクトリ(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
現在ファイルがあるディレクトリ構造は、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 hmod -R 755/var/www
これで、Webサーバーにコンテンツを提供するために必要な権限が与えられ、ユーザーは対応するフォルダーにコンテンツを作成できるようになります。
ディレクトリ構造ができたので、いくつかのコンテンツを作成しましょう。ページは非常に単純になります。特定のドメインを識別するサイトごとに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>
完了したら、ファイルを保存して閉じます。
次のように入力して、 index.html
ファイルをコピーして2番目のWebサイトのテンプレートとして使用できます。
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>
このファイルを保存して閉じます。
仮想ホストファイルは、さまざまなサイトの構成を指定し、さまざまなドメイン要求に応答する方法をApacheWebサーバーに指示します。
まず、仮想ホストが格納されているディレクトリを設定し、Apache仮想ホストに訪問者にサービスを提供するように指示する必要があります。 sites-available
ディレクトリはすべての仮想ホストファイルを保持し、 sites-enabled
ディレクトリは公開したい仮想ホストのシンボリックリンクを保持します。次の2つのディレクトリを入力できます。
sudo mkdir /etc/httpd/sites-available
sudo mkdir /etc/httpd/sites-enabled
次に、Apacheにsites-enabledディレクトリで仮想ホストを検索させます。 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
を宣言します。また、 www.example.com
と example.com
へのリクエストが同じコンテンツを提供するように、 example.com
を指すサーバーエイリアスを指定します。
< VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com
< /VirtualHost>
**注:**ドメインの「www」バージョンが正しく機能するためには、ドメインのDNS構成で、「www」要求がサーバーのIPを指すようにAレコードまたはCNAMEが必要になります。ワイルドカード(*)レコードも利用できます。
最後に、公的にアクセス可能な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>
これらの変更を行った後、ファイルを保存して閉じることができます。
仮想ホストファイルを作成したので、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
このプロセスをテストするために実際のドメインの代わりにサンプルドメインを使用している場合でも、ローカルコンピューター上のhostsファイルを一時的に変更することにより、仮想ホストの機能をテストできます。これにより、構成したドメインに対するすべての要求が傍受され、サーバーに送信されます。ただし、テスト目的のみです。
**注:**これらの手順は、必ずローカルコンピューターで実行してください。コンピューターにアクセスするには、管理者の資格情報が必要です。
MacまたはLinuxコンピューターを使用している場合は、次のコマンドを入力して、管理者権限でローカルの hosts
ファイルを編集します。
sudo nano /etc/hosts
Windowsコンピュータを使用している場合は、ホストファイルを変更する手順[ここ](http://support.microsoft.com/kb/923947)を見つけることができます。
追加する必要のある詳細は、サーバーのパブリックIPアドレスと、それに続くサービスへのアクセスに使用するドメインです。
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
に送信されます。
仮想ホストを構成したので、Webブラウザーで構成されたドメインを入力することにより、設定を簡単にテストできます。
http://example.com
次のようなページが表示されます。
![]( /img/1e8c803c946a0e381d80a52b8ff0e8c7/elngxm46xv.png)結果インターフェイス
同様に、他のドメインにアクセスすると、それらのドメイン用に作成されたファイルも表示されます。
構成したすべてのサイトが正常に実行されている場合は、CentOSサーバーで新しいApache仮想ホストを正常に構成しています。
コンピューターのhostsファイルを調整した場合は、有効であることが確認された行を削除する必要がある場合があります。これにより、hostsファイルが多くの不要なエントリでいっぱいになるのを防ぐことができます。
このチュートリアルでは、CentOS 7でApache仮想ホストを設定する方法を紹介します。Debianシステムを使用している場合は、Tencent Cloud Communityの[Debian 8でApache仮想ホストを設定する方法](https://cloud.tencent.com/developer/article/1162896?from=10680)のチュートリアルを参照できます。
参照:「CentOS7でApache仮想ホストを設定する方法」
Recommended Posts