この記事では、複数のWebサイトのApache仮想ホストの構成をガイドします。 creating< virtualhost> Servername、ServerAlias、およびDocumentRootを指定するブロックと、ディレクトリアクセス許可などのセキュリティ上の考慮事項、
Apacheで仮想ホストを作成すると、単一のサーバーから複数のWebサイトをホストできます。これは、着信要求のドメイン名またはIPアドレスに基づいて異なる応答を行うようにApacheを構成することによって達成されます。これが段階的なガイドです:
/etc/apache2/apache2.conf
apache2.conf(debian/ubuntu)、 /etc/httpd/conf/httpd.conf
(red hat/centos)、または/etc/httpd/conf/extra/httpd-vhosts.conf
ルート特権を持つテキストエディターを使用します(Linuxのsudo nano
など)。<virtualhost></virtualhost>
ブロックを追加します。各ブロックは、特定の仮想ホストの設定を定義します。基本的な例は次のようになります:<code class="apache"><virtualhost> ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example.com <directory> AllowOverride All Require all granted </directory> </virtualhost></code>
ServerName
:この仮想ホストの主要なドメイン名。ServerAlias
:この仮想ホストを指す代替ドメイン名。DocumentRoot
:Webサイトのファイルを含むディレクトリ。このディレクトリが存在することを確認してください。
<directory></directory>
:DocumentRootディレクトリの権限を指定します。 AllowOverride All
使用すると、 .htaccess
ファイルがいくつかの設定をオーバーライドできますが、すべてRequire all granted
。生産環境でAllowOverride All
注意を払ってください。
<virtualhost></virtualhost>
ブロックを作成し、それに応じてServerName
、 ServerAlias
、およびDocumentRoot
変更します。a2ensite example.com
( example.com
をサイトの名前に置き換える)を使用して、 sudo systemctl reload apache2
を使用できます。 Red Hat/Centosでは、 sudo systemctl restart httpd
を使用してapacheを再起動する必要がある場合があります。単一のサーバーで複数のWebサイトをホストする場合、セキュリティが最重要です。主な考慮事項は次のとおりです。
chmod 755
およびファイルのchmod 644
)を使用します。 777
のような過度に許容される設定は避けてください。.htaccess
ファイルは、慎重に管理されていなければ、セキュリティの脆弱性を導入できます。可能であれば使用を避け、それらを使用する必要がある場合は、 AllowOverride
を介して許可されている指令を慎重に確認および制限してください。 <virtualhost></virtualhost>
ディレクティブ内の各仮想ホストのさまざまなポートとドメインを簡単に構成できます。
別のポートを使用するには、 VirtualHost
宣言の*
後に指定します。たとえば、仮想ホストにポート8080を使用するには:
<code class="apache"><virtualhost> ServerName example.com:8080 # ... other directives ... </virtualhost></code>
example.com:8080
を使用して、クライアントはこのWebサイトにアクセスする必要があることに注意してください。標準以外のポートの使用は、HTTPSが一般的であるため、一般的にはあまり一般的ではありません。ただし、テストや特定のアプリケーションに役立ちます。
さまざまなドメインを使用するには、最初のセクションに示すように、 ServerName
およびServerAlias
ディレクティブでそれらを指定するだけです。 Apacheは、着信要求のホストヘッダーと一致して、使用する仮想ホストを決定します。これが標準的で優先される方法です。
はい、Webサイトごとに異なるPHPバージョンを持つApache仮想ホストを使用できます。これには通常、複数のPHPインストールを使用し、Apacheを構成して各仮想ホストに適切なPHPハンドラーを使用します。
正確な方法は、システムとPHPのインストール方法によって異なります。一般的なアプローチには次のものがあります。
mod_php
やphp-fpm
など)を使用するようにApacheを構成し、正しいPHP実行可能ファイルへのパスを指定します。suexec
(セキュリティの向上): suexec
を使用すると、各仮想ホストのPHPスクリプトを別のユーザーアカウントで実行することでセキュリティを強化します。これにより、1つの侵害されたWebサイトが他のWebサイトに影響を与えることができなくなります。これらのセットアップを構成するには、サーバーの環境とPHP構成に詳細と精通に注意する必要があります。詳細な手順については、システムのドキュメントとPHP-FPMドキュメントを参照してください。一般に、基本的な仮想ホストのセットアップよりも複雑です。
以上が複数のWebサイトのApacheで仮想ホストを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。