如果您觉得这个教程有帮助,请在购买Linode VPS时填写如下的Referral Code(相当于鼓励Linode赞助我当前这个主机一个月的VPS费用):

90e830ad0f9cccf433cbae2b24228d6c544a5b18

为什么需要一个VPS?

购买一个VPS相当于给自己买一台电脑放在云端。可以为自己做很多事情,包括起码这么两件:

  • 存放自己的博客(像你现在看到的这个网站一样)
  • 给自己搭建一个VPN,保证网络访问自由

网上有很多VPS服务提供商。我个人使用的是Linode,也是朋友推荐的,用起来感觉不错。

如何选择Linode Plan?

对绝大多数用户来说,选择最便宜的那个Plan即可,每月19.95美元,相当于每年1500元人民币。系统配置为512M内存,20G存储空间,每月200G的流量。

lixiaolai.com的访问量不算小,可用linode512也跑得不错。如果仅用做VPN的话,Linode大约可供100个iPhone使用(很多人的iPhone流量不过是每月1G流量的套餐)。

选择哪一个操作系统?

我个人使用的是Ubuntu 10.04 LTS (32bit)。选择Ubuntu的原因倒也简单,因为它是最流行的Linux发行版之一。

Linode Ubuntu初始化安装

在Linode上选择一个Ubuntu版本之后,网页管理端会要求你设定一个root密码。很快,你的机器就可以启动了,而后,你就可以用这个密码ssh登录该“机器”的root账户了。

登录之后,即可将其当做一台正常的在线网络终端使用。由于你现在是root账户登录,所以可以直接运行以下命令:

apt-get upgrade
apt-get update

新系统可以使用以下命令修改主机名称:

echo "plato" > /etc/hostname
hostname -F /etc/hostname

以后想要修改主机名称,可以使用任何一款文本编辑器,比如nano:

nano /etc/hostname

使用Stackscript

Linode上有很多Stackscript可以使用。这些脚本文件使用来自动部署服务器环境的。比如,我为了方便大伙安装ipsec/l2tp的vpn服务,专门写了一个script,https://manager.linode.com/stackscripts/edit/2676。在新部署VPS的时候,使用这个stackscript,可以自动安装好 IPSEC/L2TP, lighttpd, mysql, php, WordPress…

如果你想单独安装基于ipsec/l2tp的vpn服务,请参见这篇文章

安装PhpMyAdmin

安装PhpMyAdmin倒是很容易:

sudo apt-get install phpmyadmin

但是很多人认为在服务器上安装这样的东西威胁安全。

我的方法是为phpmyadmin专门设置一个虚拟主机(virtual host),然后在本地将一个字符串解析为服务器地址——这样的话,只能由我自己访问phpmyadmin:

1. 修改/etc/lighttpd/lighttpd.conf,添加:

$HTTP["host"] =~ "anytext" {
    server.document-root="/usr/share/phpmyadmin"
}

2. 在本地用Hostmanager之类的软件修改hosts文件,添加(其中xxx.xxx.xxx.xxx是你的服务器IP地址):

anytext xxx.xxx.xxx.xxx

而后就可以在浏览器中,输入anytext/来访问服务器上的phpmyadmin了。

安装WordPress

安装WordPress很方便,参照官方网站上的安装说明即可。

不过,permalinks的设置,我还是花了一点时间折腾的。/etc/lighttpd/lighttpd.conf文件里的rewrite rule如下:

$HTTP["host"] =~ "(^www\.|^)yourdomain.com" {
url.rewrite-once = (
   "^/(.*)?/?files/$" => "index.php",
   "^/(.*)?/?files/(.*)" => "wp-content/blogs.php?file=$2",
   "^/(wp-.*)$" => "$1",
   "^/blogimg/(.*)$" => "blogimg/$1",
   "^/([_0-9a-zA-Z-]+/)?(wp-.*)" => "$2",
   "^/([_0-9a-zA-Z-]+/)?(.*\.php)$" => "$2",
   "(\?.*)$" => "index.php$1",
   "." => "index.php"
  )
 
    server.document-root="/var/www/yourdomain.com"
}

注意:同时还要去掉该文件中“mod_rewrite”,这一行行首的#符号。