我已经看到了许多答案,这些答案似乎是简单的解决方案,目前还没有一个解决方案。
我在PC上安装了32位Apache 2.4.33的WAMP。我可以使用别名mySite.local毫无问题地访问该PC上的网站。
PC的主机文件如下所示 127.0.0.1 mySite.local
远程笔记本电脑的主机文件是 192.168.1.114 mySite.local 那是网络上PC的IP。
httpd.conf
Listen 80
ServerName mySite.local:80
<Directory />
AllowOverride none
Require all denied
</Directory>
DocumentRoot "H:/Intranet/mySite_v2_www/public"
httpd-vhosts.conf
<VirtualHost *:80>
ServerName mySite.local
DocumentRoot "H:/Intranet/mySite_v2_www/public"
</VirtualHost>
我尝试在PC上禁用Windows防火墙和病毒检查程序。
笔记本电脑似乎可以到达那里但被阻止了。消息是..
禁止 您无权访问此服务器上的/。 mySite.local端口80上的Apache / 2.4.33(Win32)PHP / 7.2.4服务器
所以看起来它可以看到Apache,但是被阻止了。那么还需要设置什么才能访问服务器?
这是我一直关注的两个链接,以尝试使其正常运行 Error message "Forbidden You don't have permission to access / on this server" 和 How do I connect to this localhost from another computer on the same network?
感谢您提供的任何指导。
答案 0 :(得分:1)
为补充Paul Neale的答案:
Forbidden You don't have permission to access / on this server. Apache/2.4.33 (Win32) PHP/7.2.4 Server at mySite.local Port 80
该消息是Apache的答复。禁用PC上的Windows防火墙和病毒检查器无效,您已经连接到Apache了,没有任何网络问题。
Apache收到您访问根目录“ public”的请求:
H:/Intranet/mySite_v2_www/public
但是拒绝请求,因为启用了伪指令Require local
。此指令意味着,您可以从本地服务器(本地主机)(与127.0.0.0或本地主机相同)访问public的内容。
您想要的是告诉apache允许将某些IP地址访问根目录“ public”。
当您将指令更改为Require all granted
时,您是在告诉apache,无论是谁问,都应让其访问/(根文件夹),也就是“ public”。
因此,您要搜索的是apache中的“访问控制”,指令Require可以与IP地址一起使用,这里是main document from Apache,这是一个示例:
Require host address
Require ip ip.address
区分网络/权限问题很重要。如果您想知道是否能够与Apache进行通信(在网络级别),可以执行以下操作:
telnet <IP_APACHE_SERVER> <PORT_APACHE_SERVER>
#example: telnet 172.10.10.2 80
答案 1 :(得分:0)
因此,在玩了一天的组合之后,我发现在httpd.conf中我需要将Require local更改为Require all在本节中授予的所有权限。
<Directory "H:/Intranet/mySite_v2_www/public/">
Options +Indexes +FollowSymLinks +Multiviews
AllowOverride all
# onlineoffline tag - don't remove
# Require local
Require all granted
</Directory>