2012-04-18 18 views
0

注:明らかに、VirtualHostエントリのServerNameに衝突があり、/ etc/hostsファイルにいくつかの変更を加える必要があります。これを見ても、どんな洞察にも感謝します。おかげ404 VirtualHostとApache(httpd)のサブディレクトリを持つ

=======================================

(ノート私はhttp://をhxxp://に置き換えてstackoverflowを許可しました)

私はサブディレクトリに複数のWordPressインストールをホストする予定のサーバー、10.1.1.1を持っています。サーバー上の仕様:

OS:RHEL 6.2サンティアゴ Apacheのバージョン:Apacheの/ 2.2.15(Unixの) PHPバージョン:5.3.9 MySQLバージョン5.5.20

私がしたい最初のWordPressのインストールsite_oneという仮想ディレクトリから実行します - このサイトのコードは/ var/www/sites/site_oneにあります

実行したいWordPressの2番目のインストール仮想ディレクトリsite_two(つまりhxxp://10.1.1.1/site_two) - このサイトのコードは/ var/www/sites/site_twoにあります

  1. :私は私のhttpd.confに以下の変更を行いました

    から

    は、私はまた、

    の/ var/www /のサイトにダミーハローワールドindex.htmlファイルを落としてきましたサイト全体のため

    のDocumentRootは/ var/www /のサイトに設定されている、すなわち:

    のDocumentRoot "の/ var/www /のサイト"

  2. がNameVirtualHost *:80
    [VirtualHostの私は、次のVirtualHostディレクティブを持っているのhttpd.confの一番下にあるは(私は、出力にスタックオーバーフローを得ることができませんでしたので、<ブロック> []で> <を交換し、 *:80]
    ServerNameの10.1.1.1
    のDocumentRootは/ var/www /のサイト/ site_one
    エイリアス/ site_oneの/ var/www /のサイト/ site_one/
    [/ VirtualHostの]

    [のVirtualHost *:80 ]
    ServerName 10.1.1。1
    のDocumentRootは/ var/www /のサイト/
    エイリアスsite_two/site_twoの/ var/www /のサイト/ site_two/
    [/ VirtualHostの]

    • 私はHTTPDの構文をチェック(HTTPD -t)

      - とsytax私はhttpdの

を再起動

  • OKです

    私はhxxp://10.1.1.1/site_twoにアクセスしようとすると404になり、error_logは/ var/www/sites/sites_one/site_two /ファイルを探していると報告します...明らかに私はそれは/ var/www/sites/site_two /に見えません。どうしたのですか?すべての助けをありがとう!

  • +0

    あなたは '/ etc/httpd/conf.d /'にメインの 'httpd.conf'を編集するのではなく、一つのvhost .confファイルを作成しようとしましたか? – scibuff

    +0

    私はポート80への2つの参照との競合があると思います... – user801745

    答えて

    1

    Apacheのマニュアルを参照してください。 http://httpd.apache.org/docs/2.2/vhosts/name-based.html

    IPアドレスが1つしかないため、名前ベースの仮想ホストを使用しようとしています。これは問題ありませんが、この仕組みのDNS部分が欠落しています。ドキュメントから: "各ホスト名を正しいIPアドレスにマップし、次に異なるホスト名を認識するようにApache HTTP Serverを構成するようにDNSサーバーを構成する必要があります。"

    最初にリストされた仮想ホストは、常にデフォルトのホストです。だからあなたのsite_oneはあなたが思った通りに動作するのですが、site_twoにアクセスしようとすると、それはデフォルトの仮想ホストになります。 バーチャルホストの仕組みについて間違っています。あなたがしようとしているのは、エイリアスを使用して達成することができますが、コードのどこでもドキュメントルートを参照する場合は、あなたが参照しているサイトをフォローアップする必要があります。

    など。 PHPコードで

    require($_SERVER['DOCUMENT_ROOT']."/site_one/directory/to/wherever 
    
    関連する問題