web-dev-qa-db-ja.com

WAMP仮想ホストが機能しない

私はwampバージョン2.5を使用しています。私のApacheは2.4.9です。PHP:5.5.12 MySQL:5.6.17

私はこれらの構成を持っています:

私の_httpd.conf_

_# Virtual hosts
Include conf/extra/httpd-vhosts.conf
_

私の_G:\wamp\bin\Apache\apache2.4.9\conf\extra\httpd-vhost.conf_

_# Virtual Hosts
#
# Required modules: mod_log_config

# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at 
# <URL:http://httpd.Apache.org/docs/2.4/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual Host
# configuration.
#


#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#


<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "g:/Apache24/docs/dummy-Host.example.com"
    ServerName dummy-Host.example.com
    ServerAlias www.dummy-Host.example.com
    ErrorLog "logs/dummy-Host.example.com-error.log"
    CustomLog "logs/dummy-Host.example.com-access.log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "g:/Apache24/docs/dummy-Host2.example.com"
    ServerName dummy-Host2.example.com
    ErrorLog "logs/dummy-Host2.example.com-error.log"
    CustomLog "logs/dummy-Host2.example.com-access.log" common
</VirtualHost>


<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "g:/wamp/www"
    ServerName localhost
    ErrorLog "logs/localhost-error.log"
    CustomLog "logs/localhost-access.log" common
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "g:\wamp\www\mysite\public"
    ServerName mysite.dev
</VirtualHost>
_

私の_c:\Windows\System32\Drivers\etc\hosts_

_# localhost name resolution is handled within DNS itself.
127.0.0.1   localhost
127.0.0.1   mysite.dev
#   ::1     localhost
_

私は次のURLを使用してプロジェクトにアクセスしようとします:_http://www.mysite.dev/_ [〜#〜] but [〜#〜] _Server not found error_を取得しています_www.mysite.dev_、_http://mysite.dev_ですが、まだ運が悪いです!

私の仮想ホストは以前は機能していましたが、なぜ今は機能していなかったのかわかりません。変なことが起こっています。

何が起こっているのかわかりません。どんなアイデアでも大歓迎です!

ありがとう!

12
Jason M

まず、vhost-httpd.confファイルから例dummy定義を削除する必要があります。それらは例のみとして存在し、構文を開始するためのものであり、存在しないフォルダーを指しているため、アクティブなconf/extra/httpd-vhosts.confに留まってはなりません。

したがって、これらの2つの定義をファイルから削除します。

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "g:/Apache24/docs/dummy-Host.example.com"
    ServerName dummy-Host.example.com
    ServerAlias www.dummy-Host.example.com
    ErrorLog "logs/dummy-Host.example.com-error.log"
    CustomLog "logs/dummy-Host.example.com-access.log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "g:/Apache24/docs/dummy-Host2.example.com"
    ServerName dummy-Host2.example.com
    ErrorLog "logs/dummy-Host2.example.com-error.log"
    CustomLog "logs/dummy-Host2.example.com-access.log" common
</VirtualHost>

2番目のApache 2.4.xはIPV4(127.0.0.1)とIPV6(:: 1)に対応しているため、hostsファイルは、各サイトのIPV4とIPV6の両方のバージョンの定義を含む次のようになります。ブラウザはどちらかを任意に使用できるため、両方が必要ですが、PCで両方が実際にアクティブである場合は、IPV4よりもIPV6ネットワークを使用することになります。

127.0.0.1   localhost
::1  localhost

127.0.0.1   mysite.dev
::1  mysite.dev

システムに実際に存在する2つの仮想ホストで、これを仮想ホストの定義として試してください。

<VirtualHost *:80>
    DocumentRoot "g:/wamp/www"
    ServerName localhost
    ServerAlias localhost
    ErrorLog "logs/localhost-error.log"
    CustomLog "logs/localhost-access.log" common
    <Directory  "G:/wamp/www">
        AllowOverride All
        Options Indexes FollowSymLinks
        Require local
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "g:\wamp\www\mysite\public"
    ServerName mysite.dev
    ServerAlias www.mysite.dev
    ErrorLog "logs/mysite-error.log"
    CustomLog "logs/mysite-access.log" common
    <Directory  "G:/wamp/www/mysite/public">
        AllowOverride All
        Options Indexes FollowSymLinks
        Require local
    </Directory>
</VirtualHost>

<Directory>....</Directory>セクション内の<VirtualHost>....</VirtualHost>セクションは、Apacheに接続の受け入れを許可するIPアドレスを通知するため、Apache 2.4構文Require localを使用してアクセスを制限し、WAMPServerを実行するPCのみ、つまりApacheこれらのサイトのいずれかに接続できます。

同じ定義でApache 2.2構文とApache 2.4構文を一緒に使用しないでください。だから使わないで

Order Allow,Deny
Allow from all

そして

Require all granted

同じ定義で。 Apache 2.4を使用しているため、Apache 2.4構文を使用します。

ローカルネットワーク内の他のPCがサイト、つまり同僚や子供などのサイトを参照できるようにしたい場合は、この構文を1つ以上の仮想ホスト定義に追加できます。

サイトに他の1台のPCのみを許可する

Require local
Require ip 192.168.1.100

または他の2台のPC

Require local
Require ip 192.168.1.100, 192.168.1.101

または、ローカルネットワーク上の誰に対しても、IPアドレスの4四分位数の最初の3を使用します。

Require ip 192.168.1

また、どこからでもアクセスできる構文(つまり、.

Require all granted  <--Apache 2.4 syntax

or 

Order Allow,Deny     <-- Apache 2.2 syntax
Allow from all    

それはあなたの問題を短期的に解決するかもしれませんが、あなたがあなたのサイトを友人/クライアント/上司に見せたいと決心したときにあなたを捕まえるのを待っているだけです。ポートフォワーディングの段階に到達すると、ルーターがネットワークにネットワークを許可し、ALL OF YOUR SITESが世界中で利用できるようになります。

テスト/自慢するために人々に見てもらいたいONEサイトのONE Virtual Host DefinitionをRequire localからRequire all grantedに変更し、その単一のサイトのみにインターネットからのアクセスを許可することをお勧めします。

これらの変更をすべて行ったら、Apacheを必ず再起動してください。

また、ホストファイルを変更してchnagesをアクティブにする場合は、再起動するか、Runs as Administratorオプションを指定して開始したコマンドウィンドウのコマンドラインからこれらのコマンドを実行する必要があります。

net stop dnscache
net start dnscache

Windows 10を使用している場合は、上記のdnsコマンドが機能しない場合は、代わりにこれを行う必要があります。

ipconfig /flushdns
17
RiggsFolly

Googleが.dev gTLDを取得したため、.dev開発サイトを持つことは簡単にできなくなりました。軽減する最善の方法は、開発ドメインの名前を.localまたは任意の名前に変更することです。

バックグラウンドで行われるのは、ローカルDNSサーバーがブラウザーを127.0.53.53にリダイレクトし(cmdを開く> nslookup yourdomain.dev)、エンドユーザーに.dev gTLDが取得されたことを通知することです。 hostsファイルの.devドメインが127.0.0.1に設定されているため、接続が拒否されたことを示しています。

Hostsファイルで127.0.0.1を127.0.53.53に変更すると、ブラウザのエラーがERR_CONNECTION_REFUSEDからERR_ICANN_NAME_COLLISIONに変わることがわかります。

5
Maziyar Mk

以下は私のために働いています

<VirtualHost *:80>
    DocumentRoot "G:\project\test.dev"
    ServerAdmin [email protected]
    ServerName test.dev
    ErrorLog "logs/test.dev-error.log"
    CustomLog "logs/test.dev-access.log" common
    <Directory "G:\project\test.dev">
       AllowOverride All
       Options Indexes FollowSymLinks
       Require local
    </Directory>
</VirtualHost>
2
Mahesh Hegde

Apacheフォルダーのhttpd.confのいくつかの行のコメントを外して、同じ問題を修正します。

以下の行のコメントを外してください:

Include conf/extra/httpd-vhosts.conf
LoadModule vhost_alias_module modules/mod_vhost_alias.so

ファイルを保存し、Apacheを再起動すると動作します。この男に感謝します: https://john-dugan.com/wamp-vhost-setup/

私はこの質問に非常に遅れて来ています。@ RiggsFollyで言及されたすべてのことを行いましたが、変更したことの1つが即座に機能するようにしました。私が変更され .dev.test as .devは予約されています。お役に立てれば

0

Httpd.confでコメント化されていないこのモジュールをチェックしてください

  • proxy_module
  • proxy_http_module
0