web-dev-qa-db-ja.com

apacheで複数のドキュメントルートを定義する方法

PHPファイルのすべてのリンクにルート相対パスを使用します(「url(/img/myimj.jpg)」など)。

Godaddy Hostサーバーでは、これは正常に機能します。

しかし、ローカルホストで実行したいと思います。 (Ubuntu 9、Apache 2、PHP 5)

たとえば、自分のサイトをvar/www/siteoneに保存し、別のサイトをvar/www/sitetwoに保存しています。

ルートディレクトリは「var/www」に設定されています。

ここで問題となるのは、href = "/"がvar/www/siteoneではなく、var/www /にリンクしていることです。

サイトごとに異なるドキュメントルートを定義する方法はありますか?

私はWeb開発の初心者であり、vitualHostがそれを実行できるかどうかはわかりません。

誰かがそれを説明できますか?

あなたの答えをありがとう。

このファイルに新しいvitualhostを追加する必要があります/ etc/Apache2/sites-available/default

しかし、私はまだ混乱しています、ローカルホストのためにそれを行う方法は?デフォルトのIPとポートは常に127.0.0.1:80です。

2
user444092

<VirtualHost>セクションは独自のDocumentRootディレクティブを持つことができます。

私は個人的に多くのVirtualDocumentRootを使用しています:
http://httpd.Apache.org/docs/2.0/mod/mod_vhost_alias.html#virtualdocumentroot

このディレクティブを使用すると、たとえば次のことができます。

VirtualDocumentRoot /var/www/%-2/%-3/

%-2は「右から2番目のアイテム」なので、exemple.comの例です。
%-3は右から3番目の項目なので、foo.exemple.comではfooです。

次に、ホスト名に一致するフォルダを作成する必要があります。
localhost /は次のようになります:

/var/www/localhost/_/

値がない_に注意してください(私は常に_-> wwwのようなシンボリックリンクを作成します)

そう
www.site1.comは/ var/www/site1/www /になります
www.site2.comは/ var/www/site2/www /になります
localhostは/ var/www/localhost/_ /になります

その後、シンボリックリンクを楽しんでください:-)

2
Mandark