Mac OS XでXAMPPを使用しています。クライアント用にsymfonyのWebサイトを適切に実行しようとしています。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>
現在、サイトは機能しています(はい!)が、localhostがwww.mysite.localとしてレンダリングされるため、他のローカルサイトにはアクセスできなくなりました。私はどこが間違っていますか?
ありがとうございました!
表示されている場合、これは正常です。最初の仮想ホストエントリであるため、ローカルホストが表示されます。
たとえば、そのページを表示したくないとしましょう。表示したいのはApacheの動作ページだけなので、mysite.localの前にローカルホストとしてvhostエントリを作成し、それが動作するページを指すようにします。
しかし、これは正常です。前にこの問題があったので、心配しないでください!
これは私のために働いた!
http://localhost/projectName
などのプロジェクトを実行するには
<VirtualHost localhost:80>
ServerAdmin localhost
DocumentRoot path/to/htdocs/
ServerName localhost
</VirtualHost>
http://somewebsite.com
などのプロジェクトをローカルで実行するには
<VirtualHost somewebsite.com:80>
ServerAdmin [email protected]
DocumentRoot /path/to/htdocs/somewebsiteFolder
ServerName www.somewebsite.com
ServerAlias somewebsite.com
</VirtualHost>
他のウェブサイトでも同じ
<VirtualHost anothersite.local:80>
ServerAdmin [email protected]
DocumentRoot /path/to/htdocs/anotherSiteFolder
ServerName www.anothersite.local
ServerAlias anothersite.com
</VirtualHost>
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>
セクションに127.0.0.2:80
と入力したことに注意してください。VirtualHostのこのブロックは、IPアドレス127.0.0.2
port 80
へのリクエストにのみ影響することを意味します。 HTTP。
名前intranet.dev
を適切にルーティングするために、私のhosts
エントリ行は次のようになります。
127.0.0.2 intranet.dev
これにより、localhost
に別のVirtualHostブロックを作成できなくなりますが、これは不要です。
あなたはこれを使いたいかもしれません:
<VirtualHost *:80>
DocumentRoot "somepath\Apache2.2\htdocs"
ServerName localhost
</VirtualHost>
<VirtualHost *:80>
最初の仮想ホストとして(別の仮想ホストの前に配置します)
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>
それでおしまい。 localhost、phpmyadmin、およびmain_live(My virtual project)の両方を同時に使用できます。
ジョン・スミスの回答の追加説明 公式ドキュメントから 。その理由を理解するため。
メインホストがなくなります
仮想ホストを追加する場合既存の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>
ここで説明されているすべてを実行しても、まだアクセスできない場合:
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は必要ありません。使用できますが、違いはありません。
次に、ホストを編集するには、 nOTEPAD AS ADMINISTRATOR(DESCRIBED BELLOW)を実行する必要があります。これを行わずにファイルを編集する場合は、元のファイルではなく擬似ファイルを編集します(はい、保存しますが、実際のファイルではありません)
Windowsの場合:
メモ帳アイコンを見つけ、右クリックして、管理者として実行し、ファイルを開き、c:/ windows/system32/driver/etc/hostsに移動し、「すべてのファイルを表示」をチェックして、ホストを開きます。
以前に編集していた場合は、管理者として実行していないときに以前に編集していたファイルではない可能性があります。
それから apacheがhttpd-vhost.confを読んでいるかどうかを確認します 、xampFolder/Apache/binに移動し、Shiftキーを押しながら右クリックして、ここでターミナルコマンドを開き、xamppを開き(通常どおり)、Apacheを起動し、コマンドラインで次のように入力します。 httpd -S、仮想ホストのリストが表示されます。something.devがあるかどうかを確認してください。
<VirtualHost *:80>
を<VirtualHost 127.0.0.1:80>
に変更するだけです。
デフォルトのDocumentRoot
は、サーバーを指すすべてのドメインまたはIPに対応し、指定されたVirtualHost
が機能します。
webフォルダー(前述の「/ Applications/MAMP/htdocs/mysite/web ")が空であるためです。
私の提案は、まずプロジェクトを作成し、次に仮想ホストの作成に取り組むことです。私は同じような状況で行きました。 DocumentRoot in httpd-vhosts.confizで空のフォルダーを使用していましたが、自分のshahg101.comサイトにアクセスできません
私はUbuntu 16.04を実行しています、これは私のために働いたものです:
/etc/Apache2/sites-available
に移動します。そこに000-default.conf
というファイルがあります。cp 000-default.conf example.local.conf
<VirtualHost *:80>
を<VirtualHost example.local:80>
に変更しますServerName example.local
そして、必要な場合は、この行を追加します:ServerAlias www.example.local
service Apache2 restart
ブラウザを開き、example.local
に移動します。 Webサイトが表示されます。