WAMP 2.5 (Apache 2.4.9) 允许从 LAN 上的所有计算机访问
WAMP 2.5 (Apache 2.4.9) enable access from all computer on LAN
我在本地使用 WAMP 建立了 2 个网站,我想让它可供本地网络中的任何人访问。
我在 httpd-vhosts.conf:
中设置了 2 个具有以下配置的虚拟主机
#Vistage
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "c:/wamp/www/vistagebusinessexpo.com"
ServerName vistagebusinessexpo.local
ServerAlias www.vistagebusinessexpo.local
ErrorLog "logs/dummy-host2.example.com-error.log"
CustomLog "logs/dummy-host2.example.com-access.log" common
<Directory "C:/wamp/www/vistagebusinessexpo.com">
AllowOverride All
Options Indexes FollowSymLinks
Require local
</Directory>
</VirtualHost>
#CaterCon
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "c:/wamp/www/catercon.com"
ServerName catercon.local
ServerAlias www.catercon.local
ErrorLog "logs/dummy-host2.example.com-error.log
CustomLog "logs/dummy-host2.example.com-access.log" common
<Directory "C:/wamp/www/catercon.com">
AllowOverride All
Options Indexes FollowSymLinks
Allow from 127.0.0.0/8 localhost ::1 10.1.1
</Directory>
</VirtualHost>
我的Windows/System32/drivers/etc/hosts文件配置如下:
127.0.0.1 localhost
127.0.0.1 vistagebusinessexpo.local
::1 vistagebusinessexpo.local
127.0.0.1 catercon.local
::1 catercon.local
问题是每次我尝试从我们网络中的任何其他计算机连接时,我都会得到 "Error 403 Access Denied/Forbidden"
到目前为止,我尝试了多种建议:
- 单击 "Put Online" 按钮并尝试使用 IPAdress/website.local
访问网站
- 修改httpd.conf文件以允许访问我们本地网络上的所有IP
- 修改httpd.conf文件为"allow from allow"
现在我运行没有解决方案
好的,
要点 1: 一旦您配置了自己的虚拟主机,Put Online and Put Offline
菜单的使用就变得无关紧要了,因为 Apache 将忽略 httpd.conf
文件,这是使用这些菜单唯一修改的内容。
要点 2: 您真的应该将 localhost
配置为虚拟主机以及您的其他站点。它应该是定义文件中的第一个 VH,因此将其设置为默认站点,如果有人使用您服务器的 IP 地址,只要您将其配置为仅 Require local
,他们将获得不允许访问。
第 3 点: 由于某种原因,您在一个 VH 中使用 Apache 2.2 访问语法,在另一个 VH 中使用 2.4。当您使用 Apache 2.4 时,请坚持使用 2.4 语法。如果您在 Apache 中激活了 mod_access_compat.so
,2.2 语法确实有效,但是为什么要麻烦!
要点 5: 您的每个 VHOST 现在都可以单独配置,但必须手动完成(编辑并重新启动 Apache)
那么我可以建议你试试这个作为你的 httpd-vhosts.conf
文件
#localhost
# Always have this as the first VHOST
# Never have access set to anything other than 'require local'
# The any access using ip address of your server will get sent here
## and get a Not Allowed Error
<VirtualHost *:80>
ServerName localhost
DocumentRoot c:/wamp/www
<Directory "c:/wamp/www/">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require local
</Directory>
</VirtualHost>
#Vistage
<VirtualHost *:80>
DocumentRoot "c:/wamp/www/vistagebusinessexpo.com"
ServerName vistagebusinessexpo.local
ServerAlias www.vistagebusinessexpo.local
ErrorLog "logs/vistagebusinessexpo-error.log"
CustomLog "logs/vistagebusinessexpo-access.log" common
<Directory "C:/wamp/www/vistagebusinessexpo.com">
AllowOverride All
Options Indexes FollowSymLinks
Require local
Require ip 10.1.1
</Directory>
</VirtualHost>
#CaterCon
<VirtualHost *:80>
DocumentRoot "c:/wamp/www/catercon.com"
ServerName catercon.local
ServerAlias www.catercon.local
ErrorLog "logs/catercon-error.log
CustomLog "logs/catercon-access.log" common
<Directory "C:/wamp/www/catercon.com">
AllowOverride All
Options Indexes FollowSymLinks
Require local
Require ip 10.1.1
</Directory>
</VirtualHost>
在 apache 2.4 中,将所有要求本地更改为要求全部授予文件:
C:/-> wamp64 -> bin -> apache 2.4.X -> config -> httpd.conf
C:/-> wamp64 -> bin -> apache 2.4.X -> config -> extra -> httpd-vhost.conf
我这样做了,效果很好!
我知道在 httpd.conf 中创建虚拟主机不是一个好习惯,但在经历了很多令人头疼的事情之后它成功了,并且同一网络中的 PC 也可以访问我的网站:
<VirtualHost *:80>
ServerName localhost
DocumentRoot c:/wamp/www
<Directory "c:/wamp/www/">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
这是针对本地主机的。
<VirtualHost *:80>
DocumentRoot "c:/wamp/www/mysite/"
DirectoryIndex index.php
ServerName mysite.com
<Directory "c:/wamp/www/mysite/">
AllowOverride All
Options Indexes FollowSymLinks
Require all granted
</Directory>
</VirtualHost>
这是网站的。与 RiggsFolly 的回答非常相似。
同样在同一个文件中将<Directory />
修改为:
<Directory />
AllowOverride All
Require all denied
</Directory>
最后在 C:\Windows\System32\drivers\etc\host 中添加 127.0.0.1 mysite.com
.
对于其他 PC 可以访问您的网站,只需在其主机文件中添加:
your-ip mysite.com
此致。
我在本地使用 WAMP 建立了 2 个网站,我想让它可供本地网络中的任何人访问。
我在 httpd-vhosts.conf:
中设置了 2 个具有以下配置的虚拟主机#Vistage
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "c:/wamp/www/vistagebusinessexpo.com"
ServerName vistagebusinessexpo.local
ServerAlias www.vistagebusinessexpo.local
ErrorLog "logs/dummy-host2.example.com-error.log"
CustomLog "logs/dummy-host2.example.com-access.log" common
<Directory "C:/wamp/www/vistagebusinessexpo.com">
AllowOverride All
Options Indexes FollowSymLinks
Require local
</Directory>
</VirtualHost>
#CaterCon
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "c:/wamp/www/catercon.com"
ServerName catercon.local
ServerAlias www.catercon.local
ErrorLog "logs/dummy-host2.example.com-error.log
CustomLog "logs/dummy-host2.example.com-access.log" common
<Directory "C:/wamp/www/catercon.com">
AllowOverride All
Options Indexes FollowSymLinks
Allow from 127.0.0.0/8 localhost ::1 10.1.1
</Directory>
</VirtualHost>
我的Windows/System32/drivers/etc/hosts文件配置如下:
127.0.0.1 localhost
127.0.0.1 vistagebusinessexpo.local
::1 vistagebusinessexpo.local
127.0.0.1 catercon.local
::1 catercon.local
问题是每次我尝试从我们网络中的任何其他计算机连接时,我都会得到 "Error 403 Access Denied/Forbidden"
到目前为止,我尝试了多种建议:
- 单击 "Put Online" 按钮并尝试使用 IPAdress/website.local 访问网站
- 修改httpd.conf文件以允许访问我们本地网络上的所有IP
- 修改httpd.conf文件为"allow from allow"
现在我运行没有解决方案
好的,
要点 1: 一旦您配置了自己的虚拟主机,Put Online and Put Offline
菜单的使用就变得无关紧要了,因为 Apache 将忽略 httpd.conf
文件,这是使用这些菜单唯一修改的内容。
要点 2: 您真的应该将 localhost
配置为虚拟主机以及您的其他站点。它应该是定义文件中的第一个 VH,因此将其设置为默认站点,如果有人使用您服务器的 IP 地址,只要您将其配置为仅 Require local
,他们将获得不允许访问。
第 3 点: 由于某种原因,您在一个 VH 中使用 Apache 2.2 访问语法,在另一个 VH 中使用 2.4。当您使用 Apache 2.4 时,请坚持使用 2.4 语法。如果您在 Apache 中激活了 mod_access_compat.so
,2.2 语法确实有效,但是为什么要麻烦!
要点 5: 您的每个 VHOST 现在都可以单独配置,但必须手动完成(编辑并重新启动 Apache)
那么我可以建议你试试这个作为你的 httpd-vhosts.conf
文件
#localhost
# Always have this as the first VHOST
# Never have access set to anything other than 'require local'
# The any access using ip address of your server will get sent here
## and get a Not Allowed Error
<VirtualHost *:80>
ServerName localhost
DocumentRoot c:/wamp/www
<Directory "c:/wamp/www/">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require local
</Directory>
</VirtualHost>
#Vistage
<VirtualHost *:80>
DocumentRoot "c:/wamp/www/vistagebusinessexpo.com"
ServerName vistagebusinessexpo.local
ServerAlias www.vistagebusinessexpo.local
ErrorLog "logs/vistagebusinessexpo-error.log"
CustomLog "logs/vistagebusinessexpo-access.log" common
<Directory "C:/wamp/www/vistagebusinessexpo.com">
AllowOverride All
Options Indexes FollowSymLinks
Require local
Require ip 10.1.1
</Directory>
</VirtualHost>
#CaterCon
<VirtualHost *:80>
DocumentRoot "c:/wamp/www/catercon.com"
ServerName catercon.local
ServerAlias www.catercon.local
ErrorLog "logs/catercon-error.log
CustomLog "logs/catercon-access.log" common
<Directory "C:/wamp/www/catercon.com">
AllowOverride All
Options Indexes FollowSymLinks
Require local
Require ip 10.1.1
</Directory>
</VirtualHost>
在 apache 2.4 中,将所有要求本地更改为要求全部授予文件:
C:/-> wamp64 -> bin -> apache 2.4.X -> config -> httpd.conf
C:/-> wamp64 -> bin -> apache 2.4.X -> config -> extra -> httpd-vhost.conf
我这样做了,效果很好! 我知道在 httpd.conf 中创建虚拟主机不是一个好习惯,但在经历了很多令人头疼的事情之后它成功了,并且同一网络中的 PC 也可以访问我的网站:
<VirtualHost *:80>
ServerName localhost
DocumentRoot c:/wamp/www
<Directory "c:/wamp/www/">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
这是针对本地主机的。
<VirtualHost *:80>
DocumentRoot "c:/wamp/www/mysite/"
DirectoryIndex index.php
ServerName mysite.com
<Directory "c:/wamp/www/mysite/">
AllowOverride All
Options Indexes FollowSymLinks
Require all granted
</Directory>
</VirtualHost>
这是网站的。与 RiggsFolly 的回答非常相似。
同样在同一个文件中将<Directory />
修改为:
<Directory />
AllowOverride All
Require all denied
</Directory>
最后在 C:\Windows\System32\drivers\etc\host 中添加 127.0.0.1 mysite.com
.
对于其他 PC 可以访问您的网站,只需在其主机文件中添加:
your-ip mysite.com
此致。