最近一直萌发一个组装一台NAS主机,提供网络存取以及web服务器功能。但是在打造之前,还是在本地测试一下远程访问的速度、稳定性等。
由于一直都有做web网站,一直都用的phpnow来构建apache、mysql、php环境,于是也打算以此为基础,让外网直接访问这里的apache服务器来获取服务。
首先要说明一下自己的所处环境:
4M ADSL(多人通过路由器共享)、台式机一枚(已经用phpnow搭好运行环境)、自己的域名(为了让大家通过域名访问本地服务器,不需要的同学可以跳过,直接使用AD的ip来访问就好)
基本步骤:
- 第一步:设定域名解析(不需要这一步的可以直接跳过)
在域名解析商中新建一个解析的子域名,使用A记录方法,指定ip为自己ADSL的ip(ADSL的ip可以在路由、猫中看到,也可以通过http://www.ip138.com/来获取),之后静待解析生效即可,继续弄其它东西。 - 第二步:在路由器上使用端口映射(没有用路由的可以跳过这步)
端口映射的原理其实很简单,比如你的adsl的ip为*.*.*.*,但是在路由器的局域网中,你的ip为192.1.1.103之类的。那么你可以做一次端口映射,把路由器的80端口映射到你的主机中。也就是说但你访问*.*.*.*的80端口,它会自动转到访问你的192.1.1.103的80端口中去。
如果你想使用80端口映射到某个用户,你最好修改路由器登陆页面的端口,否则你可以打192.168.1.1之类的就无法打开路由器页面了,而是直接解析到你本地(192.1.1.103)的80端口去了。
有一点你必须注意的,就是前面的域名解析中,如果你用了my.mywebsite.com的域名,那么你访问的默认是my.mywebsite.com的80端口,但是ADSL有可能把你对外的80端口给屏蔽掉了。所以最好改为其它端口,我这里使用了36端口。
如果你使用的是TP-link路由器,新建端口映射要在 转发规则–虚拟服务器 中去添加。
我的设置是:服务端口号:36, IP 地址:192.1.1.103其它默认就好。 - 第三步:phpnow添加虚拟主机,其中域名为你解析的那个(my.mywebsite.com)。指定其目录,其它都好办。
- 第四步:更改phpnow的apache服务器的端口为36,或者添加一个36端口让其监听。
更改端口很容易,里面的PnCp.cmd控制台就有。我为了不影响之前80端口的设置,选择的是增加一个36端口让其监听。
找到[安装路径]/apache/conf/httpd.conf中搜索Listen:80,在下面添加上想要设置的端口,我这里是Listen 36
编辑该目录下的extra/httpd-vhosts.conf文件,添加
<Directory “F:/web/my”>
Options -Indexes FollowSymLinks
Allow from all
AllowOverride AllServerAdmin admin@my.mywebsite.com
DocumentRoot “F:/web/my”
ServerName my.mywebsite.com:36
ServerAlias *.my.mywebsite.com
ErrorLog logs/my.mywebsite.com-error_log
php_admin_value open_basedir “F:\web\my;C:\Windows\Temp;”
每个人都不一样,根据自己的理解去添加吧,很简单的,主要是里多了个:36而已。 - 接下来就可以进行网站的访问了,直接输入my.mywebsite.com:36就可以直接进行访问了。