Apache Virtual Hostsを使用すると、1つのWebサーバーで複数のWebサイトを実行できます。仮想ホストを使用すると、サイトドキュメントルート(Webサイトファイルを含むディレクトリ)を指定したり、サイトごとに個別のセキュリティポリシーを作成したり、サイトごとに異なるSSL証明書を使用したりできます。
このチュートリアルでは、CentOS7サーバーでApache仮想ホストをセットアップする方法について段階的に説明します。
前提条件#
このチュートリアルを続行する前に、次の前提条件を満たしていることを確認してください。
- パブリックサーバーのIPを指すドメイン名があります。
example.com
を使用します 。 - CentOS7にApacheをインストールする方法に従ってApacheをインストールしました。
- sudo権限を持つユーザーとしてログインしています。
DocumentRootは、ドメイン名のWebサイトファイルが保存され、要求に応じて提供されるディレクトリです。ドキュメントルートは任意の場所に設定できます。この例では、次のディレクトリ構造を使用します。
/var/www/
├── example.com
│ └── public_html
├── example-1.com
│ └── public_html
├── example-2.com
│ └── public_html
/var/www
内のサーバーでホストするドメインごとに個別のディレクトリを作成しています ディレクトリ。これらの各ディレクトリ内に、public_html
を作成します。 ドメインのウェブサイトファイルを保存するディレクトリ。
ドメインexample.com
のルートディレクトリを作成します mkdirコマンドの使用:
sudo mkdir -p /var/www/example.com/public_html
テストの目的で、index.html
を作成します ドメインドキュメントのルートディレクトリ内のファイル。エディターを開き、次の内容のHTMLファイルを作成します。
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Welcome to example.com</title>
</head>
<body>
<h1>Success! example.com home page!</h1>
</body>
</html>
すべてのコマンドはsudoユーザーとして実行されるため、新しく作成されたファイルとディレクトリはrootユーザーが所有します。権限の問題がないことを確認するには、ドメインドキュメントのルートディレクトリの所有権をapache
に変更します ユーザー:
sudo chown -R apache: /var/www/example.com
仮想ホストファイルの作成#
仮想ホストを設定する方法はいくつかあります。すべての仮想ホストディレクティブを1つのファイルに追加するか、仮想ホストディレクティブごとに新しい構成ファイルを作成することができます。個人的には、2番目のアプローチの方が保守しやすいので、私は2番目のアプローチを好みます。
デフォルトでは、Apacheは.conf
で終わるすべての構成ファイルをロードするように構成されています /etc/httpd/conf.d/
から ディレクトリ。
特定のWebサイトの仮想ホストを作成するには、選択したエディターを開き、次の基本的な仮想ホスト構成ファイルを作成します。
/etc/httpd/conf.d/example.com.conf<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ServerAdmin [email protected]
DocumentRoot /var/www/example.com/public_html
<Directory /var/www/example.com/public_html>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/log/httpd/example.com-error.log
CustomLog /var/log/httpd/example.com-access.log combined
</VirtualHost>
ServerName
:この仮想ホスト構成に一致する必要があるドメイン。これはあなたのドメイン名である必要があります。-
ServerAlias
:www
など、この仮想ホストにも一致する必要がある他のすべてのドメイン サブドメイン。 -
DocumentRoot
:Apacheがドメインファイルを提供するディレクトリ。 Options
:このディレクティブは、特定のディレクトリで使用できるサーバー機能を制御します。-Indexes
:ディレクトリリストを防止します。-
FollowSymLinks
:このオプションは、Webサーバーにシンボリックリンクをたどるように指示します。
-
AllowOverride
:.htaccess
で宣言されているディレクティブを指定します ファイルは構成ディレクティブをオーバーライドできます。 -
ErrorLog
、CustomLog
:ログファイルの場所を指定します。
必要に応じてファイルを編集し、保存します。
構成ファイル名が.conf
で終わることが重要です 。構成ファイルには好きな名前を付けることができますが、ベストプラクティスは、仮想ホスト構成ファイルの名前としてドメイン名を使用することです。
次のコマンドで構成ファイルの構文をテストします:
sudo apachectl configtest
エラーがない場合は、次の出力が表示されます。
Syntax OK
新しく作成された仮想ホストをアクティブ化するには、次のコマンドでApacheサービスを再起動します。
sudo systemctl restart httpd
http://example.com
を開いて、すべてが期待どおりに機能していることを確認します :