web-dev-qa-db-ja.com

Apacheで仮想ホストを構成するにはどうすればよいですか?

ApacheUbuntu(仮想マシン内)に仮想ホストを作成しようとしていますが、取得できません。多くの構成を行いましたが、いずれの構成でも結果が得られるため、最初からそれを行う新しい仮想マシンを作成しました。ここにすべてのプロセスを段階的に配置して、皆さんが私が間違っていることを理解できるようにします。

私が持っているもの

  • VirtualBox
  • Ubuntu 14.04(VirtualBox上の仮想マシン)
  • UbuntuにApacheをインストールしました(Sudo apt-get install Apache2

必要なもの

  • ブラウザでejemplo.esというURLを書き込むと、VirtualHostフォルダーに作成したファイルが表示され、www.ejemplo.es(私のものではない)にあるページは表示されません。

  • DNS構成の代わりに/etcフォルダーのhostsファイルを使用します。

私が試したもの

  • まず最初に:サーバーのルートディレクトリを変更します

まず、サーバーのルートディレクトリを/var/www/extrasとして作成し、/var/wwwにこの新しいディレクトリを作成する必要があります。

Sudo mkdir /var/www/extras

そして、いくつかのテキストを含むindex.htmlを作成します。

新しいディレクトリを作成したら、000-default.confファイルを変更してDocumentRootディレクティブを変更する必要があります。

Sudo gedit /etc/Apache2/sites-available/000-default.conf

DocumentRootディレクティブを次のように変更します。

DocumentRoot /var/www/extras

その後、Apacheを再起動して変更を保存します。

Sudo /etc/init.d/Apache2 restart

Apache2.confファイルのDirectoryブロックを変更します

Sudo gedit /etc/Apache2/Apache2.conf

<Directory /var/www/html>から<Directory /var/www/extras>に移動し、Apacheを再起動します。

  • 2番目のステップ:作成する仮想ホストからフォルダーとファイルを作成する

/var/www/extrasディレクトリ内に、仮想ホストのフォルダーとなる新しいフォルダー(ejemplo.es)を作成します。

Sudo mkdir /var/www/extras/ejemplo.es

その中に、テキストindex.htmlを使用してサーバーのルートディレクトリ用に作成した"This is an example"ファイルがあります。

その後、ブラウザーに移動してlocalhost/ejemplo.esと書くと、前のステップで作成したファイルの内容を見ることができます。 ただし、同じコンテンツにアクセスするが、ejemplo.esではなくlocalhost/ejemplo.esと入力することです

  • 最終ステップ:仮想ホストの構成

仮想ホストの構成を使用して、/etc/Apache2/sites-availableに新しいファイルを作成する必要があります。

Sudo gedit /etc/Apache2/sites-available/ejemplo.es.conf

次の構成で:

<VirtualHost 10.0.2.15:80>
    ServerAdmin [email protected]
    ServerName ejemplo.es
    ServerAlias www.ejemplo.es
    DocumentRoot /var/www/extras/ejemplo.es
</VirtualHost>

Apache2.confファイルでIncludeOptional sites-enabled/*.confInclude sites-enabled/*.confに変更します。 (これは、おそらく私のApacheにこのフォルダーが含まれておらず、私のVirtualHostが機能しなかった可能性があるかどうかを確認するための証明でした)。

それで、作成したVirtualHostをアクティブにする必要があります。

Sudo a2ensite ejemplo.es

Apacheを再起動して、行った変更を保存します。

Sudo /etc/init.d/Apache2 restart

フォルダーのコンテンツをリストすると/etc/Apache2/sites-enabledVirtualHostがアクティブになっていることがわかります(このフォルダーに対するlsコマンド)。

最後に、hostsファイル(Sudo gedit /etc/hosts)に新しい行を追加します。

10.0.2.15   ejemplo.es

そのため、ファイルにはIPを含む3行があります。

127.0.0.1    localhost
127.0.1.1    user
10.0.2.15    ejemplo.es

以下の行はff00...で始まりますが、私の目的には関係ないと思います。

最後に、最後の変更を保存するには、次のコマンドを実行する必要があります。

Sudo /etc/init.d/networking restart

しかし、VirtualHostフォルダに置いたファイルではなく、www.ejemplo.esのデフォルトページを取得します。

私は何か間違ったことをしていると確信していますが、どこにあるかわかりません。 1つVirtualHostを作成するのは初めてで、これまでに見たすべてのチュートリアルにはこれらの手順があったため、何かが欠けていると思います。

私の手順に従って、私が行った構成に疑問があるかどうか尋ねることができると思います。

前もって感謝します!

1
Error404

詳細については質問にコメントしたかったのですが、評判が足りなかったので、少しだけ情報を提供するためにこれに答えてみます。

上記の新しいVMでリストしたのと同じ手順を実行しましたが、問題なく動作します。

ブラウザーがボックス(ubuntu-クライアント)であろうと、ホスト(virtualboxが実行されている)であろうと、上記のドメインをテストする方法が正確にはわかりません。

Client-ubuntuでドメインにアクセスしようとしている場合、virtualhostタグにさらにIPを追加できます。

<VirtualHost ejemplo.es:80 127.0.1.100:80 192.168.1.100:80></VirtualHost>.

ここで、127.0.1.100と192.168.1.100は、すべてejemplo.esを指すIPの例です。

IP 10.0.x.xを使用してホストからアクセスしようとしている場合、アクセスできない可能性があります。特に、VMに適切なネットワークタイプを選択しなかった場合。ローカルドメインの動作を確認する前に、最初にIPをpingできます。私の場合、ブリッジ接続(コピーされたNATを使用)を選択しているので、VMはネットワーク内の他の物理デバイスと同じように動作できます。

もう1つは、既に稼働しているサイトがあり、開発およびテスト用のローカル環境が必要な場合、同じドメインを使用するのではなく、異なるドメイン(.local、.devなど)を使用することをお勧めします。

1
Brian Ng