Apache が仮想ホスト ファイルをロードしない

Apache が仮想ホスト ファイルをロードしない

Apache2 サーバーをセットアップしようとしているのですが、仮想ホストをロードできません。もっと正確に言うと、 に書き込んでいる間は正常に動作します000-default.confが、別のファイルを使用しようとすると完全に無視されるようです。

なぜこれが機能しないのでしょうか? どうすれば機能するのでしょうか?

答え1

通常、個別の仮想ホスト構成を設定する場合は、次のディレクトリに配置します。

/etc/apache2/sites-available/

したがって、仮想ホストの名前がある場合、www.example.com設定ファイル名はwww.example.com.conf次のように命名できます。

/etc/apache2/sites-available/www.example.com.conf

次に、次のようにテキスト エディターでそのファイルを開きます。これはnano例として使用していますが、好みのテキスト エディターを自由に使用してください。

sudo nano /etc/apache2/sites-available/www.example.com.conf

そして、次のようなコンテンツを次のように配置しますwww.example.com.conf

<VirtualHost *:80>
  ServerAdmin [email protected]
  ServerName example.com
  ServerAlias www.example.com
  DocumentRoot /var/www/example.com/
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

ファイルを閉じて保存し、a2ensite次のように使用して、システムが次のようsites-availableにシンボリック リンクを設定するようにします。sites-enabled

sudo a2ensite www.example.com.conf

または、必要に応じて、ln -s次のように手動でシンボリック リンクを設定することもできます。

ln -s /etc/apache2/sites-available/www.example.com.conf /etc/apache2/sites-enabled/www.example.com.conf

完了したら、次のように Apache をリロードします。

sudo service apache2 reload

何らかの理由でreload動作しない場合は、次のように強制的に再起動してください。

sudo service apache2 restart

reloadbeforeを使用する利点restartは、設定ファイルにタイプミスがあった場合、Apache はエラーを報告しますが、設定ファイルはロードしないことです。つまり、Apache Web サーバーは、ロードされた最後の安定した設定ファイルに基づいて引き続き稼働します。

リスクは、 を強制しrestart、構成ファイルに入力ミスがあった場合、が の後に続くrestart完全なサービスを強制するため、Apache が停止することです。そして、それが詰まった場合、構成の入力ミス/問題が解決されるまでサーバーは停止します。stopstartstart

答え2

ファイルを確認してくださいhttpd.conf。 のような行が含まれているはずですInclude conf/*.conf。 ワイルドカードか固定ファイル ( など) かを確認してください000-default.conf

また、新しい conf ファイルがワイルドカード パターンと一致し、 と同じフォルダーに保存されていることを確認します000-default.conf

最後に、Apacheディストリビューションには利用可能なアクティブなconfファイルがあるため、場合によってはソフトリンクが必要になることがあります。

関連情報