75

MacOSXでXAMPPを使用しています。

私はクライアントのためにSymfonyのウェブサイトを適切に運営しようとしていますが、Symfonyを(まだ)本当に知りません。インストールして起動したいだけです。

/ etc/hostsファイルを次のように変更しました。

127.0.0.1 www.mysite.local

そして、httpd.confファイルは次のようになります。

<VirtualHost *:80>
  ServerName www.mysite.local
  DocumentRoot /Applications/MAMP/htdocs/mysite/web
  DirectoryIndex index.php
  <Directory /Applications/MAMP/htdocs/mysite/web>
    AllowOverride All
    Allow from All
  </Directory>
  Alias /sf /Applications/MAMP/htdocs/mysite/lib/vendor/symfony/data/web/sf
  <Directory "/Applications/MAMP/htdocs/mysite/lib/vendor/symfony/data/web/sf">
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>

現在、サイトは機能しています(イェーイ!)が、ローカルホストがwww.mysite.localとしてレンダリングされているため、他のローカルサイトにはアクセスできません。

私はどこが間違っていますか?

4

12 に答える 12

119

これは私のために働いた!

次のようなプロジェクトを実行するにはhttp://localhost/projectName

<VirtualHost localhost:80>
   ServerAdmin localhost
    DocumentRoot path/to/htdocs/
    ServerName localhost
</VirtualHost>

http://somewebsite.comローカルのようなプロジェクトを実行するには:

<VirtualHost somewebsite.com:80>
     ServerAdmin webmaster@example.com
     DocumentRoot /path/to/htdocs/somewebsiteFolder
     ServerName www.somewebsite.com
     ServerAlias somewebsite.com
</VirtualHost>

他のウェブサイトでも同じです。

<VirtualHost anothersite.local:80>
     ServerAdmin webmaster@example.com
     DocumentRoot /path/to/htdocs/anotherSiteFolder
     ServerName www.anothersite.local
     ServerAlias anothersite.com
</VirtualHost>
于 2013-10-25T20:02:24.893 に答える
30

localhost常ににリダイレクトされ127.0.0.1ます。これをだますには、他のVirtualHostに他のローカルループバックアドレス(など)を付け127.0.0.2ます。hostsこれを実装するには、対応するファイルも変更してください。

たとえば、私のようにhttpd-vhosts.conf見えます:

<VirtualHost 127.0.0.2:80>
    DocumentRoot "D:/6. App Data/XAMPP Shared/htdocs/intranet"
    ServerName intranet.dev
    ServerAlias www.intranet.dev
    ErrorLog "logs/intranet.dev-error.log"
    CustomLog "logs/intranet.dec-access.log" combined

    <Directory "D:/6. App Data/XAMPP Shared/htdocs/intranet">
        Options Indexes FollowSymLinks ExecCGI Includes
        Order allow,deny
        Allow from all
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

<VirtualHost>(セクションで入力したことに注意してください。これは、VirtualHostのこのブロックが、HTTPのデフォルトポートであるIPアドレスポート127.0.0.2:80への要求にのみ影響することを意味します。127.0.0.280

intranet.dev名前を正しくルーティングするために、私のhostsエントリ行は次のようになります。

127.0.0.2 intranet.dev

このようにしてlocalhost、不要なの別のVirtualHostブロックを作成できなくなります。

于 2013-04-20T04:10:44.540 に答える
26

あなたがそれを見れば、これは正常です。これは最初の仮想ホストエントリであるため、ローカルホストが表示されます。

たとえば、そのページを表示したくないとします。表示したいのは「Apache、それは機能する」ページだけなので、ローカルホストとしてmysite.localの前にvhostエントリを作成し、「それは機能する」ページをポイントします。

しかし、これは正常です。私は以前にこの問題を抱えていたので、心配しないでください!

于 2012-06-12T11:59:29.490 に答える
15

あなたはこれを使いたいかもしれません:

<VirtualHost *:80>
    DocumentRoot "somepath\Apache2.2\htdocs"
    ServerName localhost
</VirtualHost>
<VirtualHost *:80>

最初の仮想ホストとして(他の仮想ホストの前に配置します)。

于 2013-07-08T00:42:12.413 に答える
10

virtualHostで作業しているときにlocalhostにアクセスするという同じ問題がありました。以下のようにvirtualHostリッスンコードに名前を追加することで解決しました:

私のhostsファイルに、以下のコードを追加しました(C:\ Windows \ System32 \ drivers \ etc \ hosts)-

127.0.0.1   main_live

そして私のhttpd.confに以下のコードを追加しました:

<VirtualHost main_live:80>
    DocumentRoot H:/wamp/www/raj/main_live/
    ServerName main_live
</VirtualHost>

それでおしまい。それは機能し、localhostphpmyadmin、およびmain_live(私の仮想プロジェクト)の両方を同時に使用できます。

于 2016-08-19T11:20:08.407 に答える
8

公式ドキュメントからのジョン・スミスの回答の 追加説明。それがなぜであるかを理解するため。

メインホストが消える

既存のWebサーバーに仮想ホストを追加する場合は、既存のホストのブロックも作成する必要があります。この仮想ホストに含まれるServerNameとDocumentRootは、グローバルServerNameとDocumentRootと同じである必要があります。この仮想ホストを最初に構成ファイルにリストして、デフォルトのホストとして機能するようにします。

たとえば、XAMPPと適切に連携し、VirtualHostがメインホストを上書きしないようにするには、ファイルhttpd-vhosts.confに次の行を追加します。

# Main host
<VirtualHost *:80>
    ServerName localhost
    DocumentRoot "/xampp/htdocs"
</VirtualHost>

# Additional host
<VirtualHost *:80>
    # Over directives there
</VirtualHost>
于 2017-03-12T06:20:01.613 に答える
5

ここで説明されているすべてのことを行っていてもアクセスできない人の場合:

Apache 2.4を使用したXAMPP:

ファイルhttpd-vhost.conf内

<VirtualHost *>
    DocumentRoot "D:/xampp/htdocs/dir"
    ServerName something.dev
   <Directory "D:/xampp/htdocs/dir">
    Require all granted #apache v 2.4.4 uses just this
   </Directory>
</VirtualHost>

ここでは、ポートやIPアドレスは必要ありません。Apacheはそれを独自のファイルで構成します。NameVirtualHost *:80;は必要ありません。非推奨です。使用できますが、違いはありません。

次に、ホストを編集するには、管理者としてメモ帳を実行する必要があります(以下で説明します)。これを行わずにファイルを編集していた場合は、元のファイルではなく、疑似ファイルを編集しています(はい、保存されますが、実際のファイルではありません)

Windowsの場合:

メモ帳アイコンを見つけて右クリックし、管理者として実行してファイルを開き、C:/ WINDOWS / system32 / driver / etc / hostsに移動し、 [すべてのファイルを表示]をオンにして、ホストを開きます。

以前に編集していた場合は、管理者として実行していないときに以前に編集していたファイルではないことがわかります。

次に、Apacheがhttpd-vhost.confを読み取っているかどうかを確認するには、フォルダーxampFolder / apache / binに移動しShift、右クリックしてここでターミナルコマンドを開き、XAMPPを開いて(通常どおり)、Apacheを起動してからコマンドを実行します。行、タイプhttpd -S。仮想ホストのリストが表示されます。something.devがそこにあるかどうかを確認してください。

于 2014-03-28T17:55:32.580 に答える
3

According to this documentation: Name-based Virtual Host Support

You may be missing the following directive:

NameVirtualHost *:80
于 2012-06-11T22:31:46.530 に答える
3

に変更<VirtualHost *:80>するだけ<VirtualHost 127.0.0.1:80>です。

次に、デフォルトDocumentRootは、サーバーを指し、指定されたすべてのドメインまたはIPアドレスに機能しますVirtualHost

于 2017-03-25T15:26:39.590 に答える
1

Webフォルダ(「/ Applications / MAMP / htdocs / mysite / web」で説明)が空であることが原因である可能性があります。

私の提案は、最初にプロジェクトを作成してから、仮想ホストの作成に取り組むことです。

私も同じような状況で行きました。httpd-vhosts.confizのDocumentRootで空のフォルダーを使用していましたが、 shahg101.comサイトにアクセスできませんでした。

于 2016-04-27T07:48:33.400 に答える
0

Ubuntu 16.04(Xenial Xerus)を実行しています。これは私のために働いたものです:

  1. ターミナルを開き、にcd/etc/apache2/sites-availableます。そこに。というファイルがあります000-default.conf
  2. そのファイルをコピーします。cp 000-default.conf example.local.conf
  3. その新しいファイルを開きます(私はNanoを使用しています。使い慣れたものを使用してください)。
  4. コメント行がたくさん表示されますが、削除することができます。
  5. <VirtualHost *:80>に変更<VirtualHost example.local:80>
  6. ファイルの場所を反映するようにドキュメントルートを変更します。
  7. ServerName example.local次の行を追加します。必要に応じて、次の行を追加します。ServerAlias www.example.local
  8. ファイルを保存してApacheを再起動します。service Apache2 restart

ブラウザを開き、に移動しexample.localます。あなたはあなたのウェブサイトを見るはずです。

于 2016-10-09T21:32:13.937 に答える
0

WindowsとBitnamiWAMPStack Manager Toolを使用している人は、この仮想ホスト構成を使用する必要がありますBitnami\apache2\conf\bitnami\bitnami.conf

注:ディレクトリセクションの一部の設定は必須ではありません。

たとえば、site.comの仮想ホスト構成は次のようになります。

<VirtualHost site.com:80>
  DocumentRoot "C:/Bitnami/apache2/htdocs/site/docroot"

  <Directory "C:/Bitnami/apache2/htdocs/site/docroot">
    Options Indexes FollowSymLinks
    AllowOverride All
    <IfVersion < 2.3 >
      Order allow,deny
      Allow from all
    </IfVersion>
    <IfVersion >= 2.3 >
      Require all granted
    </IfVersion>
  </Directory>
</VirtualHost>

他の友人が述べたように、vhostの構成は、sagitsの答えが必要であることを忘れないでください。

于 2021-03-29T11:37:07.363 に答える