使Apache只能通过127.0.0.1访问,这是可能的吗?

我已经build立了我的Apache服务器,并且PHP / MySQL运作良好!

但问题是,我怎么保持这个私密的,因为它是一个只发展的服务器? 保持内容私密性的唯一原因是,如果脚本出错了,我不希望Apache错误出现,如果它成为一个面向公众的网站(事实上,其他人也共享相同的networking!),我更less可能会使用我的电脑作为虚拟主机 – 我更可能使用虚拟主机提供商的路线为实际的现场。

目前我可以通过三种方式访问​​它:

[注意,不能发布链接,所以对于其他两个,你必须插入冒号/正斜杠,如第一个]。

但是,我只想通过第一个访问它。 它正在端口80上听(我不想改变这一点)。 这是不可能的,还是我错了? 我对PHP /网页devise比networking方面知道的多一些,所以这对我来说是第一位的!

基本上,我希望它只能通过本机在本机上访问,而不是外部IP地址,或192.168.0.1。

我需要编辑httpd.conf并在每个testing平台上使用拒绝,还是有其他解决scheme?

例:

<Directory /www/vhosts/localhost/> Options All AllowOverride All order allow,deny allow from 127.0.0.1 deny from 192.168.0.1 deny from my-pc-name </Directory> 
  • 这是一个例子,但我不知道什么是对的或在这里!

我的操作系统是Windows 7旗舰版。

我确实看了看networking,但其中一些对我来说似乎有点技术性。

你会推荐什么?

最简单的方法是通过Listen指令。 默认情况下,我们的httpd.conf中有一行代码:

 Listen *:80 

这意味着它将在所有计算机的networking地址上响应端口80上的ro请求。 将其更改为:

 Listen 127.0.0.1:80 

会告诉Apache只响应本地适配器上的请求,从而忽略其他任何东西。

听的select可能是最好的,但只是作为参考,你可以使用允许/拒绝这样做

 <Directory /www/vhosts/localhost/> Options All AllowOverride All Order deny,allow Deny from all Allow from 127.0.0.1 </Directory> 

Order deny,allow告诉Apache“拒绝所有请求,除非特别允许”( Order allow,deny是相反的,IE允许所有请求,除非特别阻止)
Deny from all类似的事情, Order deny,allow它会阻止所有IP的请求,除非你明确地打开它们。 这似乎是一般的做法,同时使用Order deny,allowDeny from all但我不是100%确定为什么当他们都做同样的事情
Allow from 127.0.0.1说“允许来自127.0.0.1的所有请求”。 127.0.0.1将映射到本地主机,所以你可以使用http://127.0.0.1/或http&#xFF1A:// localhost / ,它将被允许

这将服务于403(禁止)错误的任何人谁请求本地不在本地

其他一些有用的东西;
Allow from 192.168.0. 将允许您的networking上的任何人的请求(提供您的networking是192.168.0.0-192.168.0.255)
允许/拒绝规则按顺序处理,所以

 Deny from 192.168.0.2 Allow from 192.168.0.2 

会允许请求和

 Allow from 192.168.0.2 Deny from 192.168.0.2 

会拒绝来自192.168.0.2的请求

所以

 Deny from 192.168.0.2 Allow from all 

即使它已被明确拒绝,也会允许来自192.168.0.2的请求。

您还可以在.htaccess文件中或在每个目录的基础上使用允许/拒绝规则

我对/ etc / apache2中的ports.conf进行了更改,以便每个侦听某个端口的引用只能侦听到本地主机。 没有其他文件似乎有监听命令英寸重新启动Apache后,这些变化似乎有希望的效果。

/etc/apache2/ports.conf

 NameVirtualHost *:80 ########################## Listen 80 Listen 127.0.0.1:80 <IfModule mod_ssl.c> # If you add NameVirtualHost *:443 here, you will also have to change # the VirtualHost statement in /etc/apache2/sites-available/default-ssl # to <VirtualHost *:443> # Server Name Indication for SSL named virtual hosts is currently not # supported by MSIE on Windows XP. ###############################Listen 443 Listen 127.0.0.1:443 </IfModule> <IfModule mod_gnutls.c> ##################################Listen 443 Listen 127.0.0.1:443 </IfModule>