搬家前

在使用了虚拟主机一年之后,我最终决定把博客搬走。考虑再三,阿里云太贵负担不起,而且毕竟在国内有众多不便(比如备案和网络安全),Linode和DigitalOcean都不错,而且这两家都在境外,毕竟不能总是闭门造车,有了一个外面的固定IP节点,总比一直被困在局域网中好。

最终的决定是选择了DigitalOcean。当然并不是选来选去再决定的,而是很多人告诉我,实际上这两家的差别并不是很大或者至少我个人水平较低感受不到。如果你也想选用DigitalOcean作为自己的通天门,我建议你直接走[传送门],一来避免了搜索引擎瞎搞搜到了钓鱼站,二来于你于我都有好处,毕竟优惠是赤果果的,好人一生平安。

VPS搭建

建立VPS

当然既然是歪果仁的服务,你首先需要意识到一个很严重的问题,那就是钱。RMB是不能用的!RMB是不能用的!RMB是不能用的!重要的话说三遍!支付宝是不能用的!支付宝是不能用的!支付宝是不能用的!重要的话说三遍!我们需要歪果仁,啊不,国际通用的方法。

免费注册一个paypal,绑定一张银行卡,然后保证银行卡有点余额。支付前注意,标价写的是USD,心中乘个6.4算下RMB的数值,保证银行卡玩得起,然后支付,就行了。

当然另外说一句,良心商家godaddy居然支持支付宝,想都不敢想。虽然最后也是把USD换算成RMB在加上税钱扣得。

吼了!准备好支付的工具之后,开始选:

操作系统?我只会Ubuntu啊,选!(Ubuntu 14.04 Server x64)

IPv6?不要钱!选!正好校园网有IPv6,为何不选!(以后可以开IPv6踩梯子去看油管)

私网IP?并不知道有什么用,但是免费啊!选!

至于配置,我选的是10刀每月的那个,1GB内存,单核CPU,30G SSD,2TB的流量(其实基本上相当于无限了,我又不是油管)。5刀的那个看上去比较便宜,但是硬件被砍太多了;20刀变成双核2G内存40G SSD 3TB流量,除了多了一个核心多了一倍内存似乎也没啥大改变,关键在于我个人也用不到。所以就这么简单粗暴的选了。

关于机房位置,这个需要注意。一般来讲,VPS在国外,最好选霓虹国(Tokyo),新加坡(Singapore),和三番(San Francisco)的节点,这几个相对来说延时低。我选的是DigitalOcean的Singapore节点,延时大概是200ms平均,有点大了,又来听说是因为Singapore的节点没有针对中国大陆的优化,所以可能导致了这个情况。但是San Francisco的节点我也没有,不了解情况。这点可能帮不上了。

准备就绪之后,点击生成,你的机器就准备就绪等待使用了。

搭建服务

远程连接

首先是需要连上自己的机器。

如果你是Mac OS的机器,打开终端输入

ssh root@<VPS的IP地址>

IP地址的话,v4v6都资瓷,就是请注意v6地址要加方括号!具体v6地址的知识随手就能找到,我也就不班门弄斧了。

如果你和我一样是Windows用户,也很简单,下载一个XShell 5的软件,安装,添加自己的服务器,连接即可。

至于密码,当VPS建好之后,服务提供商会给你发一个邮件,里面有初始密码,当然自己也要自行修改一下。

添加一个管理员

一开始我们登陆用的是最高级的root用户,这个好处就是随便瞎搞都没事,谁让你是root,但是坏处也有不少,具体的就不多说了,先加一个管理员账号的好。

useradd -s /bin/bash -mr <username>
adduser <username> sudo

两句话的意思是创建用户,然后加入sudo组中。

之后再设置密码

passwd <username>

如果有一天你忘记了自己的用户的密码,不要慌,我们可以登录到root上,再重设一下就行了。

设置好之后,重新以刚刚设置的用户登录。

ssh <username>@<IPAddress>

搭平台

回到重点,重点是博客搬家。我们需要一个平台,我选的是最简单方便的lnmp[传送门]。

而且好消息是,最新版本的lnmp 1.2已经很方便的在安装的同时帮你启用IPv6,而在以前可能需要自行重新编译。

wget -c http://soft.vpser.net/lnmp/lnmp1.2-full.tar.gz && tar zxf lnmp1.2-full.tar.gz && cd lnmp1.2-full && ./install.sh lnmp

然后就是慢慢选各个组件的版本,巴拉巴拉,选完之后就是等它自行安装好。。。不同的机器安装时间不尽相同。。。

安装好之后,你可以通过IP打开自己的网页(这里默认IPv4,因为IPv6需要后续自行设置),就可以找到诸如phpmyAdmin等非常简单却又危险的暴露在外面的组件,如果你还没更换过root的密码。。。

搭FTP

如果用XShell这样去搞,可能感觉上对大批量文件的工作非常吃力,所以一个FTP的必须的。

我这里选用的是PureFTPd[传送门],安装教程也非常的简单,就不在多说。

如果你觉得图形化界面太麻烦,完全可以自己从MySQL上去修改,这样方便很多,而且公开一个FTP接口也不能完全保证100%安全。

如果你照安装说明安装好了,但是打不开自己的所谓的ftp在线控制面板,可能是你忘记了设置一些东西,找到 /home/wwwroot/default/.user.ini 这个文件。这个文件直接修改是不可以的,需要先对其属性进行更改。

chattr -i /home/wwwroot/default/.user.ini

成功修改文件之后,再把属性改回去。。。

chattr +i /home/wwwroot/default/.user.ini

当然请务必记住!后面的任何类似的,只要扯到了这个文件,一定要记得修改属性!

加虚拟主机

本来是可以一个文件把所有虚拟主机同时设置的,不过考虑到健壮性,我担心一旦一个文件玩脱了,整个server就跪了,所以我选择了一个虚拟主机一个配置。

第一步是先把刚才的那个危险的暴露了phpmyAdmin和ftp的东西换到一个安全的地方。至于怎么样算作安全,这就看你的做法了。

当然还要注意,如果你准备完完全全把这两个东西抛弃?rm吧,我不拦着你。

删之前记得买后悔药。

然后因为我这里还要监听IPv6,所以设置上有点不同:

server #virtual home
    {
        listen 80 default_server;
        listen [::]:80;
        #ipv6only=on;
        server_name polossk.com;
        index index.html index.htm index.php;
        root  /home/wwwroot/polossk.com;

        #error_page   404   /404.html;
        #include enable-php.conf;

        location /nginx_status
        {
            stub_status on;
            access_log   off;
        }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log  /home/wwwlogs/access.log  access;
    }
include vhost/*.conf;
}

说明:

  • default_server 的意思就是字面意义上的默认主机。
  • 由于要监听IPv6,所以写上了listen [::]:80。如果只想监听IPv6的话,将下面那个ipv6only设置为on就行了。
  • server_name指的是监听的域名。
  • index就是主页的文件名,*.htm, *.php都可以。
  • root指的是自己的网页的根目录

其他要添加的网站类似操作就可以了。

加wordpress

其实这个事情就更为简单了。用FTP上传安装包,然后unzip一下,连接好数据库,就行了。

唯一的可能出现的问题有两个,第一个是文件权限和文件夹的所有人。如果你比较自信,完全可以chmod 777,然后一段乱干没有关系。也可以chown到www上然后在乱搞。只不过记得什么该改回来什么不用改回来就行了。另一个问题就是有可能你操作错误,想删除这个文件夹,这个时候记得刚才有个叫.user.ini的文件,记得修改掉他的属性才能更改整个文件夹。

最后

虽然VPS玩法很多,不过我现在只用到了最简单的玩法。如果以后玩到了更好的东西再推荐出来吧。

(效率低下,一篇博客写了3个小时。。。)