CentOS7でApache仮想ホストを設定する方法

前書き##

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)にアクセスすることもできます。

準備完了##

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

  1. sudo権限を持つ非rootユーザーのCentOS7サーバーが必要です。
  2. また、Apacheをインストールして、仮想ホストを構成する必要があります。 yumを使用して、CentOSのデフォルトのソフトウェアリポジトリからApacheをインストールできます。
sudo yum -y install httpd

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

sudo systemctl enable httpd.service

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

ステップ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

ステップ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 hmod -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>

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

次のように入力して、 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>

このファイルを保存して閉じます。

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

仮想ホストファイルは、さまざまなサイトの構成を指定し、さまざまなドメイン要求に応答する方法を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>

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

手順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ファイルを一時的に変更することにより、仮想ホストの機能をテストできます。これにより、構成したドメインに対するすべての要求が傍受され、サーバーに送信されます。ただし、テスト目的のみです。

**注:**これらの手順は、必ずローカルコンピューターで実行してください。コンピューターにアクセスするには、管理者の資格情報が必要です。

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に送信されます。

ステップ7-結果をテストする##

仮想ホストを構成したので、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

CentOS7でApache仮想ホストを設定する方法
Ubuntu16.04でApache仮想ホストを設定する方法
Ubuntu20.04でApache仮想ホストを設定する方法
CentOS8でSSHキーを設定する方法
CentOS8にApacheをインストールする方法
Ubuntu14.04でGogsを設定する方法
CentOS8にApacheMavenをインストールする方法
CentOS7にApacheKafkaをインストールする方法
Ubuntu14.04でRを設定する方法
CentOS8でNginxサーバー構成ブロックを設定する方法
Ubuntu14.04でShinyServerをセットアップする方法
Ubuntu18.04で時刻同期を設定する方法
Ubuntu18.04でDNSサーバーを設定する方法
centOS7にjdk1.8をインストールする方法
CentOS8にMySQLをインストールする方法
CentOS8にMemcachedをインストールする方法
CentOS8にRをインストールする方法
CentOS8にFFmpegをインストールする方法
CentOS8にVirtualboxをインストールする方法
Ubuntu20.04にApacheをインストールする方法
CentOS8にTensorFlowをインストールする方法
Centos7でgcc4.9.xに更新する方法
UbuntuとRaspbianでJavaホームを設定する方法
CentOS8にTeamViewerをインストールする方法
CentosオペレーティングシステムをVMware仮想マシンにインストールする方法
CentOSにPerl5をインストールする方法
CentOS8にGitをインストールする方法
CentOS8にGradleをインストールする方法
CentOS8にElasticsearchをインストールする方法
CentOS8にJenkinsをインストールする方法
CentOS8にJavaをインストールする方法
CentOS8にGoをインストールする方法
Ubuntu14.04でMasterlessPuppet環境をセットアップする方法
CentOS8にGCCをインストールする方法
CentOS8にYarnをインストールする方法
Ubuntu14.04でUFWを使用してファイアウォールを設定する方法
CentOS8にNginxをインストールする方法
CentOS7にAsteriskをインストールする方法
CentOS8にJenkinsをインストールする方法
CentOS8にVagrantをインストールする方法
CentOS8にPython3.8をインストールする方法
CentOS8にTomcat9をインストールする方法
CentOS8にWebminをインストールする方法
Ubuntu16.04で匿名ダウンロード用にvsftpdを設定する方法
CentOS8にRubyをインストールする方法
Ubuntu20.04にApacheをインストールする方法
CentOS8にSkypeをインストールする方法
CentOS8にhtopをインストールする方法
CentOS8にPythonをインストールする方法
Ubuntu14.04で本番Elasticsearchクラスターをセットアップする方法
CentOS8にElasticsearchをインストールする方法
CentOS8にPostgresqlをインストールする方法
CentosにWordpressをインストールする方法
Ubuntu14.04でNginxを使用してパスワード認証を設定する方法
CentOS8にhtopをインストールする方法
Ubuntu16.04でユーザーディレクトリ用にvsftpdを設定する方法
CentOS8にTeamViewerをインストールする方法
CentOS7にスワップを追加する方法
CentOS8にMariaDBをインストールする方法
CentOS7にMongoDBをインストールする方法
CentOSでGitサーバーをセットアップするための詳細な手順