家庭ADSL搭建LAMP服务器建站(Ubuntu+花生壳DDNS+顶级域名)

本文目的:在家庭ADSL拨号的计算机上架设一台可供外部Internet访问的使用LAMP软件包的web服务器。

1,安装Ubuntu10.04 LTS server 版本。

Ubuntu 10.04是一个LTS长期维护版本,并且由于这里是要架设一个web服务器,所以选用了Server版本。这里可以下载安装光盘的镜像文件,注意选择10.04版本,以及你将要架设的计算机硬件所对应的32/64bit版本。

安装过程我就不赘述了,可以参考这篇文章的安装部分(主要是安装过程中注意选择LAMP server安装包以及OpenSSH安装包)。OpenSSH是为了将来远程SSH登录到这台Server上进行管理操作。

安装并启动后,要配置一下这台Server的网络。编辑“/etc/network/interfaces”文件,加入两行:

auto eth0
iface eth0 inet dhcp

这样服务器启动的时候就可以自动启动eth0接口的DHCP协商获取IP地址。当然记得确认你下你的计算机硬件连接ADSL的接口是eth0还是其他。

2,注册“花生壳”。

花生壳”是一家提供DDNS动态IP域名解析服务的公司,也有其他一些相关网络基础设施产品。因为本文介绍的是使用通过ADSL连接Internet的家庭计算机建站,而ADSL拨号从ISP获取的Internet IP地址是动态的(每次拨号得到的地址可能与上次不同)所以这里使用“花生壳”来将一个固定域名自动动态的映射到每次获取到的IP上,以后无论IP如何变化,都可以使用这个域名来访问这台计算机。

“花生壳”官方网站上的这篇Lu文章很清晰的介绍了在linux平台下的安装和使用方法,按照文章操作即可。注意,如果你是使用家庭网关拨号接入Internet,那么你的家庭网关可能会禁止外部Internet的计算机访问你的这台内网计算机,所以,必须在家庭网关上配置DMZ功能来允许你的这台计算机被外网访问(这涉及一些NAT的知识,有兴趣可以自行google一下或查书,就不赘述了)。

为什么同一内网的计算机无法通过该花生壳的域名访问这台计算机?

安装并启动“花生壳”服务后,你可以尝试使用其提供的二级域名(一般是xxx.eicp.net等形式)来访问你的这台计算机。这里要注意的是,如果你是使用这台Linux计算机直接拨号ISP接入Internet的,那没有问题,而如果是通过一台路由器等家庭网关拨号的,那么你会发现,本地网络局域网(该家庭网关内部网络)的计算机(可能)是无法通过这个域名访问该计算机的,而外部Internet的远程电脑(例如邻居或你公司)可以访问。这是由于,当一台电脑访问这个域名时,花生壳将此域名解析到你的家庭网关设备的外网IP地址(附加端口信息等),然后家庭网关将外部访问NAT转换后到达内网计算机。而目前的情况是,从家庭网关内部的计算机访问这个域名,访问的地址是家庭网关的IP(附加端口信息等),而家庭网关默认(当然跟此网关设备的内部设计实现有关,不是必然的)不给内网对网关自己IP的访问进行NAT转换,此报文可能就被网关丢弃了。

要解决这个问题,有两个办法,原理都是绕过上面介绍的这个访问流程。其实,内网主机本来就可以直接访问内部其他主机,根本不应该向外部DNS请求一个自己网关的IP地址。所以,方法一,设置计算机(发起请求的那台)的hosts文件,将域名直接映射到这台Linux计算机的内网IP。这样就是内网直接访问了,不会有任何问题。但是这样需要内网的每台计算机都做同样的hosts文件设置,麻烦。所以,方法二,在你的家庭网关上做DNSmasq之类的设置(我使用的是刷了tomato家庭路由器,支持dnsmasp的设置),直接将这个域名映射到该Linux的内网IP,这样所有内网访问该域名都会直接解析到该内网IP,它们就可以直接在内网通信了。

3, 安装phpmyadmin。PHP环境下Web broswer方式配置MySQL的工具。将来维护MySQL数据库就靠它。

4,安装一个PHP的CMS来搭建web站点。我使用Drupal,因为它功能强大、配置灵活,是对网站有高端功能设计需求人士的首选。这里简单介绍一下Drupal的Clean URL功能的配置,如果你不关心,可以跳过这节。因为Drupal的PHP框架设计,Drupal的默认页面地址都是“domain.com/?q=node/1″这样的形式,可读性和搜索引擎友好度都不佳,CleanURL就是用来将这个地址转换为”domain.com/node/1″这样较好的形式。

首先打开apache2的rewrite模块:

#sudo a2enmod rewrite

然后通过#apache2ctl -M可以看到这一行,就说明该模块已经安装好了:rewrite_module (share)

然后需要改一下apache2的配置文件(在我的主机上,这个文件位于/etc/apache2/apache2.config,有的机器上可能是httpd.conf文件),在<Directory /var/www>下面(当然,选哪个目录取决于你把Drupal放在了哪个目录):
把AllowOverride None改为AllowOverride All

修改后是这个样子(如果你的配置文件中没有这个“Directory”,就把这些全都加到配置文件中):


   AllowOverride All
   RewriteEngine on
   RewriteBase /
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

最后重启apache2,就可以进入Drupal的控制面板打开Clean URL功能了。

5,使用顶级域名绑定“花生壳”的动态IP解析服务

目前,我们已经可以使用花生壳的二级域名访问这台家里的计算机上的站点了。如果这个站点是个比较正式的网站,那我们想更进一步,使用顶级域名访问它。

但是花生壳是不提供这个服务的,只好另找出路。可以使用域名的CNAME功能,直接将顶级域名映射给这个花生壳的二级域名,这样,访问该顶级域名和访问花生壳的二级域名效果完全一样(并不会跳到二级域名)。你可以先拿免费的”.tk”顶级域名试试看。这里是一篇注册tk顶级域名,以及介绍其使用方法的文章,也介绍到了CNAME的设置,可以按照它的介绍逐步进行。

OK,That’ all!

One thought on “家庭ADSL搭建LAMP服务器建站(Ubuntu+花生壳DDNS+顶级域名)

  1. Pingback: Adreaman's Blog » 终于用上了群晖(Synology)的家庭NAS产品DS212j

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>