Apache Virtual Hostsを使用すると、単一のサーバーで複数のWebサイトをホストできます。 Apacheは、その機能とコンポーネントを個々のユニットに分割して、個別にカスタマイズできるようにします。
ここLinuxAPTでは、サーバー管理サービスの一環として、お客様が関連するApache仮想ホストクエリを実行するのを定期的に支援しています。
このコンテキストでは、Ubuntu18.04サーバーでApache仮想ホストを構成する方法を検討します。
Ubuntuで仮想ホストを作成する方法は?
仮想ホストを使用すると、個別のWebサイトドキュメントルート、セキュリティポリシーを指定したり、さまざまなSSL証明書を使用したりできます。
この手順を進める前に、次の要件が満たされていることを確認する必要があります。
- sudo権限を持つroot以外のユーザーがいるUbuntu18.04サーバー。
- Ubuntu 18.04サーバーにApacheをインストールする方法で説明されているように、Apacheをインストールして構成する必要があります。
- ドメイン名はサーバーのIPアドレスを指している必要があります。
1.ディレクトリ構造を作成します
まず、ドメインのWebサイトファイルを保存し、Webサイト訪問者に応答するディレクトリを作成する必要があります。
一般的に、それはDocumentRootと呼ばれます。
私。ドキュメントルートは任意の場所に設定できますが、ディレクトリ構造で設定することをお勧めします。
したがって、すべてを/ var / www:
に保存します。/var/www/
├── example1.com
│ └── public_html
├── linuxapt.com
│ └── public_html
基本的に、サーバー上でホストするドメインごとに、/ var/wwwディレクトリ内に個別のディレクトリを作成します。
ii。これらのディレクトリ内に、ドメインWebサイトファイルを格納するpublic_htmlディレクトリを作成します。
$ sudo mkdir -p /var/www/example.com/public_html
テスト目的で、ドメインドキュメントのルートディレクトリ内にindex.htmlファイルを作成します。デフォルトでは、このページは訪問者がWebサイトにアクセスしたときに表示されます。
iii。お気に入りのテキストエディタを使用して新しいindex.htmlファイルを作成するには、次のように入力します。
$ sudo nano /var/www/example.com/public_html/index.html
iv。その後、以下の行を追加します:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Welcome!!</title>
</head>
<body>
<h1>Great! example.com set up completed!</h1>
</body>
</html>
すべてのコマンドはsudoユーザーとして実行され、新しく作成されたファイルとディレクトリはrootユーザーが所有します。
したがって、通常のユーザーのアクセス許可の問題を回避するために、ドキュメントルートディレクトリの所有権を変更する必要があります。
したがって、通常のユーザーは問題なくWebディレクトリ内のファイルを変更できます。
$ sudo chown -R www-data: /var/www/example.com
2.仮想ホストファイルを作成する
Apache仮想ホスト構成ファイルは/etc/ apache2 / sites-availableディレクトリに保存され、/ etc / apache2/sites-enabledディレクトリへのシンボリックリンクを作成することで有効にできます。
次のように入力して、選択したテキストエディタを使用して新しいファイルを作成します:
$ sudo nano /etc/apache2/sites-available/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 ${APACHE_LOG_DIR}/example.com-error.log
CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
</VirtualHost>
- サーバー名:これはドメイン名であり、仮想ホスト構成と一致している必要があります。
- ServerAlias:この仮想ホストにも一致する必要がある他のすべてのドメインまたはサブドメイン(通常はwwwサブドメイン)。
- DocumentRoot:Apacheがドメインファイルを提供する仮想ホストディレクトリのパス。
- オプション:このディレクティブは、特定のディレクトリで使用できるサーバー機能を制御します。
- -インデックス:ディレクトリの一覧表示を防ぎます。
- FollowSymLinks:このオプションが有効になっている場合、Apacheはシンボリックリンクをたどります。
- AllowOverride:.htaccessファイルで宣言されたディレクティブが構成ディレクティブをオーバーライドできることを指定します。
- ErrorLog、CustomLog:ログファイルの場所を指定します。
構成ファイルには任意の名前を付けることができますが、ファイル名はドメイン名と同じにすることをお勧めします。
次に、/ etc / apache2 / sites-enabledディレクトリにシンボリックリンクを作成して、新しく作成したWebサイトを有効にします。
デフォルトでは、Ubuntuシステムには、シンボリックリンクを作成するためのヘルパースクリプトがあります。 a2ensiteヘルパースクリプトを使用して作成するには、次のコマンドを実行します。
$ sudo a2ensite example.com
タイプ別にシンボリックリンクを手動で作成することもできます:
$ sudo ln -s /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-enabled/
作成したら、次を使用して構文エラーを確認します。
$ sudo apachectl configtest
エラーがない場合は、以下の出力が表示されます。
Output
Syntax OK
以下のコマンドで変更を有効にするには、apache2サービスを再起動する必要があります:
$ sudo systemctl restart apache2
最後に、http://example.comをWebブラウザで開いて確認すると、次のように表示されます:
Great! example.com set up completed!