我已经build立了我的Apache服务器,并且PHP / MySQL运作良好!
但问题是,我怎么保持这个私密的,因为它是一个只发展的服务器? 保持内容私密性的唯一原因是,如果脚本出错了,我不希望Apache错误出现,如果它成为一个面向公众的网站(事实上,其他人也共享相同的networking!),我更less可能会使用我的电脑作为虚拟主机 – 我更可能使用虚拟主机提供商的路线为实际的现场。
目前我可以通过三种方式访问它:
http:// localhost (或http://127.0.0.1 ,替代方式和本地主机的IP,但任何一种方式是可以接受的!)
http 192.168.0.1(我的路由器的IP)
http pc-name-here(我的电脑的名字,显然这在Windows PC之间有所不同!)
[注意,不能发布链接,所以对于其他两个,你必须插入冒号/正斜杠,如第一个]。
但是,我只想通过第一个访问它。 它正在端口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,allow
和Deny from all
但我不是100%确定为什么当他们都做同样的事情
Allow from 127.0.0.1
说“允许来自127.0.0.1的所有请求”。 127.0.0.1将映射到本地主机,所以你可以使用http://127.0.0.1/或http::// 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>