前言:

(友情提示,想看步骤的话,下面的前言可以跳过不看)

为什么我现在要买阿里云的 VPS (Virtual Private Server) 搞博客系统呢?我也说不上为什么,不过可以讲一下事情的经过。

2016年刚开始工作那会儿,从王译锋那里知道了租 VPS、搭建某 socks、nginx 驱动 hexo 博客这样一套东西。当时觉得很新鲜,立马也买了搬瓦工的 VPS,然后一同瞎搞,算是搞成了一个 hexo 静态博客系统了,不过有点尴尬的小插曲,我把 hexo 安装在了 VPS 上面 ,然后把 Markdown 文件推到 VPS 上面,然后再 VPS 再用 hexo 生成静态页面的文件。。。 实际上更合适的是把 hexo 安装在本地,然后本地生成的页面文件推到 nginx 的 web root 目录中去。

后来嘛,搬瓦工,Vultr,Linode 阿里云我都试了个遍,发现除了阿里云意外,虽然都不贵,但是网速稳定性真的很捉急,有时候在终端 ssh 到服务器上面时,输入命令真的是一卡一卡的,这样的网速带来的科学上网体验只能用「能用」两个字来形容。直觉告诉我,可能部署在香港的 VPS 网速会比较快,因为香港离大陆近。我就开始找香港的 VPS 了,一番找呀找,中间也交了些学费,最后找到了一个叫枫叶主机的,速度挺不错,轻松达到 500 KB/S,就是贵了点,我就和某同事一起平摊费用了。这个枫叶主机我一口气买了一年的,不过中间依然因为某些原因而出现网速不稳定的情况。等到枫叶主机过期后,因为穷,我忽然想试试老早就听别人推荐的一个叫云梯的 VPN。这个云梯我曾经使用过,但是的速度确实还不错,哪想到我一口气买了一年的 VPN 后,发现用不了,整个云梯团队都跑路了!!!就留下个网站还在运行,不断的吸钱,真他们坑!吃了大亏的我,开始蹭大学同学的 VPS 的某 socks 服务,挺长时间都没再买过 VPS了,期间,我把静态博客放到了 github.io 页面。然而,自始至终,我其实没写几篇博客,真为自己的懒惰感到惭愧。

直到最近,再次看到珂神和王译锋的博客、掘金搞得风生水起,感叹自己没有能拿的出手的东西,所以就买阿里云 VPS → 注册域名 → 搭博客系统了,期待自己能多写一些有价值的东西,加油!

正文:

租阿里云 VPS

在阿里云官网,这个叫做「云服务器 ECS」,这个其实很简单了,花几百块钱就能租一年,我是 290 几块钱租的 1GB 内存、1Mbps 带宽、40GB 非 SSD 的香港 VPS。其实,对我们而言最敏感的性能指标就是内存和带宽了,硬盘一般是不会用光的,CPU 性能也没多大影响。这里解释一下,为什么选阿里云。有鉴于前面试用了一大波 VPS 服务,我发现只有阿里云算是最稳定的,虽然带宽只有 1Mbps (指从我们个人电脑访问 VPS 的网速,而在 VPS 上面安软件时,下载软件包的速度其实是很快的,因为用的是阿里云的镜像,所以相当于内网传输数据),但是胜在稳,终端输入命令基本不会有任何延迟。

租完 VPS,ssh 连接到它,然后就是搭建某 socks 服务了,网上资料非常多。需要注意的是,阿里云服务器需要配置安全组规则的,不然无法提供服务。假设某 socks 使用 23333 号端口来提供服务,那么需要下图那样配置一条入方向的规则:

入方向表示数据流向 VPS 的,协议类型选 TCP,对绝大部分服务来说,都是 TCP 协议,端口范围就是 VPS 上面提供的服务所使用的端口了。如果没有这个配置,那么我们个人电脑将无法向 23333 号端口发起请求。另外出方向默认全开了,所以不需配置。

注册域名

我挑了个很便宜的,36块钱 3 年,域名就是 tao93.top,也算是和我的名字和出生年份有些关联吧。

域名绑定 IP

这个还是要提一下的。在阿里云注册的域名,需要实名认证 (上传单面身份证照片) 才行,一开始我不知道,傻乎乎的总等,一边等,一边 ping 和 nslook 我的域名,好在实名认证很快,基本上提交认证后,1小时内就有人处理。我认证时有点搞笑,我传了一张 jpeg 后缀的图片,然后审核者回复说,需要 jpg 或 bmp 后缀的图片。我有点吃鲸,然后把同一张图片后缀改成了 jpg,上传,然后认证就成功了。。。认证结束后,就可以设置解析规则了:

只需要上面红框中的一条规则就可以把 tao93.top 解析了,mail 的那条规则,我现在还用不上。添加规则的时候,如果拿不准,可以在下图中只在记录值填公网 IP 地址即可:

我当时也是有点傻,觉得香港的 VPS 算是境外,就在解析线路选了境外,然后傻等了好久,后面换成默认后,基本几分钟就可以解析了。

搭博客系统

先说下为什么我没用 hexo 静态博客,因为静态博客无法评论,我觉得评论还是挺有必要的,虽然可以嵌入第三方评论服务,但是这种需要评论者用社交账号登录,麻烦,另外评论的数据全在别人手里,我觉得不好。所以我就要自己搭一个有后台的博客了。珂神使用的 zblog 是一个,国产的,看起来不那么华丽;WordPress 是另一个。我两个都装了,先装了 zblog,觉得有点点简单粗糙,然后就删的一干二净,装了 WordPress,然后发现 WordPress 复杂的让我有点迷失,我就想简单的写写东西,不想要那么多东西。然后我就在保留 WordPress 的基础上,又装了 zblog。

zblog 有个 php 版本,和 WordPress 的技术组合一模一样,就是 php + 数据库 + nginx 等 web server,其中 zblog 的数据库还可以用 sqlite,虽然我没成功过。我第一次装 zblog 时,手动安装了 MySQL,php,nginx,然后摸索着各种配置,搞了蛮久才搞定的。而 WordPress 的安装就很简单了,网上有 LNMP (Linux Nginx MySQL PHP) 组合包,等于一键就能装好环境,剩下的就是搞个 WordPress,并且替换掉 LNMP 原有的 web root 目录,就好了。

所以,无论 WordPress 还是 zblog,最简单的方式是,先装 LNMP 环境,然后就快了。需要记住一点的是,LNMP 环境会新建一个 www:www 用户(组) 来用于驱动 web 服务。务必需要让此 www 用户对于 web root 有 rwx 权限。比如 LNMP 默认的 web root 是 /home/wwwroot/default,那么一句 sudo chown -R www:www /home/wwwroot/default 即可。

直接安装 z_blog 的过程

此过程配置比较麻烦,所以只是记录一下,不建议使用此方式。

装 nginx,设置开机自启,运行起来,然后别急着进浏览器验证,先到阿里云网站增加一下 80 号端口的安全规则,然后验证 nginx 是否可用。

建议更改一下 nginx 配置文件中的 root,即更改 web root 的位置,比如改为自己 home 中的某个目录,这样的话 chown web root 时不会有烦人的警告。

注意,nginx 需要重新加载配置文件,才能让配置文件的修改生效,方法是 sudo nginx -s reload 即可。

安装 Mysql,记得别忘记了 root 密码。

安装 Php,然后就是在 Php.ini 配置文件中,把各种 extension=php_mysql.dll 之类的语句解除注释,意思是 php 需要和 MySQL 数据库连接。但是这样的配置还不够,还需要 sudo apt-get install php7.0-mysql

这时候,可以下载 zblog 的压缩包,解压到 web root 中,然后浏览器打开 https://tao93.top,就可以开始安装 zblog 了,安装好后就是各种 GUI 配置方式了。再次强调一下,需要 nginx 对应的 Linux 用户对于 web root 目录递归的有 rwx 权限。我第一次装 zblog 就是没设置权限,然后在后台首页中,「清空缓存并重新编译模板」一直转圈圈。

配置主题,样式自定义,然后开始写博客。