终于凑够了点钱可以买自己的空间和域名玩玩建站了,虽然在公司已经干了三年网站的活但是那时候服务器维护和域名都轮不到咱去碰,最多也就碰碰Linux还不怎么熟。所以建站对自己来说还是小有难度的,这事儿我基本属于看猪跑自己从来没跑过的级别,写出来主要是分享给各位“没跑过”的兄弟和女神,已经跑熟悉了的诸位可以考虑绕道了,这篇文章很入门没什么营养。
域名申请和空间申请
考虑到自己的一些因素,域名和空间我都选择了国外的服务商,这样还是有些好处的你懂得。成本的话会比选择国内的略高,总体话费控制在了3K以下。
先说说域名选择的是.com的,刚刚好没有人占用我看中的域名所以很轻松的搞定。选择的是大名鼎鼎的godday,购买了一年的域名和私有注册服务总共费用是21.6刀。很方便的一点是godday支持支付宝,所以付款上省了很多事。
CentOS用户和目录规划
目录:
我做人做得有点懒哈,系统分了96G就直接一个盘用上了(除了256M的交换空间),主要也是懂得太少,磁盘分区这一块后面研究研究再专门来一次。
Putty连接:
我是用的客户端是putty,连接的地址可以从Linode控制界面找到。选择Remote Access页签即可,SSH连接从略。
用户:
至于用户的话除了root,划分了一个codingfarmer的用户组和两个用户名,平时的话彼此都可以维护系统。已经再三声明我是没跑过的猪,这里添加用户还是费了点事儿,简单写下我的步骤:
添加用户组:
创建用户并添加到组:其中-g指明了所属的用户组、--system(或-r)创建系统用户、-m创建用户空间,第一次就没有-m导致/home/gangzz目录没有建立,当然也可以root自行建立一个再授权。
Apache httpd安装
不管怎样第一次玩这个的心情还是急切的,别的不管先跑个Apache,来个Hello world页面才是王道。所以我建完用户就直接开始安装apache了。CentOS安装还是很简单的直接yum了事:【均用root完成】
- 安装: yum install httpd 安装apache,果然是墙外的服务器瞬间就完成了。
- 设置开机启动:chkconfig --level 3 httpd on,设置在终端状态下自启动,这里只设置level3是觉得其它mode我用不到。
- 启动httpd服务:service httpd start。
- 输入IP效果如下:
- 默认情况下httpd的目录为/var/www/html,可以修改配置文件/etc/httpd/conf/httpd.conf指定。在DocumentRoot下建立了index.html页面后【4】中的页面不再出现。这里遇到的问题是在建立index.html后访问不到,显示403 Forbidden。这是由于目录权限导致的写在FAQ章节。
防火墙策略
因为选择的是虚拟服务器所以要保留22端口给ssh用,再者就是80端口开放为web端口,其它端口全部封闭。也就是filter表的INPUT、FORWARD、OUTPUT全部封闭。命令如下:
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --sport 22 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --sport 80 -j ACCEPT
#设置INPUT、OUTPUT和FORWARD的策略为DROP
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
域名与IP绑定
至此空间的初步配置已经完成,最后一步就是绑定域名了。直接登录到godaddy的控制台Product-->Domain-->Launch-->your domain name-->edit即可,由于我现在只有一个网站页面要建立所以就只修改@一行为Linode给出的PublicIP(即上面putty连接配图中的ip)。
修改完成后godaddy提示说一般在1小时后生效,但是生效时间最多可能延迟到48小时内,不过我的貌似是立即生效的,直接在地址栏输入域名zhirenguo.com后就出现Hello Paperman了,至此“建站处女行”完成。
FAQ
设定好后访问出现403 Forbidden的情况
具体现象时这样的在httpd的默认目录下放了一个index.html后访问域名仍然为httpd初始化时候的效果,在域名后添加index.html后出现403 Forbidden的情况。这个原因可能有两个:
1,httpd本身设置的原因,可以查看配置文件/etc/httpd/conf/httpd.conf,其中的
2,虽然使用root启动的httpd服务但是对于输入root的/www/html目录仍然没有权限访问,需要赋权(我也觉得很神奇,没搞明白)。我的情况属于第二个原因,在www目录下执行权限chmod -R 777 ./html后问题消除(-R是为了级联赋权,也就是html及其子目录全部赋权,777是任何人都可访问的权限)。