购买VPS,DigitalOcean
如果是在校学生可以通过申请 GitHub Student Developer Pack 得到 DigitalOcean 的 $50 折扣券,配合邀请注册链接的 $10 折扣券,等于免费一年。注意只能是新用户才能用 DigitalOcean 优惠券。
另外需要注意的是 DigitalOcean 使用必须先充值至少 $5。
这是我的邀请链接:https://m.do.co/c/8b75c3b931d0,通过这个链接注册可以获得 $10 优惠券。
VPS 挑选最便宜的 $5/month 主机即可,创建完成后有一个公网 ip 和默认 root 密码。这两个是我们远程操作的关键。
购买域名,NameSilo
域名推荐到 namesilo 购买,选择国外域名注册商的原因是避免国内需要备案等一系列麻烦事,而 namesilo 永久送免费 whois 保护(避免个人信息泄露),支持支付宝,并且相对价格也比较实惠。
购买后进行 DNS 解析,A 记录解析到 VPS 的公网 ip,Cname 记录将 www Cname 到你的域名。这样做的目的是直接使用 http://example.com
,而不是 http://www.example.com
。个人博客使用 www 区分 web 服务有些画蛇添足,直接使用裸域就好。
远程登录 VPS
Windows 使用 PuTTy: https://www.baidu.com/s?wd=putty 或者 git bash 中的 ssh:https://www.baidu.com/s?wd=ssh,Linux 直接使用 ssh 远程登录到 VPS 进行接下来的操作。
搭建 lnmp 环境
使用 lnmp一键安装包:https://lnmp.org/
下面开始部署:
- (可选)安装 screen,可以避免因为本地连接意外中断而导致的远程安装过程强制退出
1 | yum install screen |
如果网络断线,可以重新连接,并执行 screen -r lnmp
,即可看到 lnmp 安装进程。
- 下载并安装 lnmp
1 | wget -c http://soft.vpser.net/lnmp/lnmp1.4-full.tar.gz |
会有几个选项:
选择 MySQL 版本,默认
设置 MySQL root 密码
添加 InnoDB 引擎
选择 php 版本,默认
Memory Allocator: don’t
出现 Press any key to install…or Press Ctrl+c to cancel 后按回车开始安装
- (可选)安装扩展
1 | 安装PHP缓存加速类扩展 |
- 添加虚拟主机
1 | lnmp vhost add |
搭建 WordPress 个人博客
- 进入域名目录
1 | # lnmp vhost add 命令生成的域名目录默认是在 /home/wwwroot/域名/ |
- 下载 WordPress 程序压缩包
1 | wget https://cn.wordpress.org/wordpress-4.7.4-zh_CN.tar.gz |
- 解压
1 | tar zxvf wordpress* |
- 将解压出来的文件移动到当前域名下,并删除空文件夹
1 | mv wordpress/* . # 不要忘记最后的 . |
- 为避免因为权限问题导致安装出错,更改根目录权限
1 | chmod -R 755 /home/wwwroot |
- 开启 scandir 函数
1 | vim /usr/local/php/etc/php.ini |
- 重启 lnmp,打开博客网址(
http://xlui.me
)进行最后安装。
VPS 配置优化
- 修改PHP配置文件
1 | vim /usr/local/php/etc/php.ini #修改 |
- 添加 swap 交换分区
1 | cd /var |
- 设置 MySQL 不记录日志
1 | vim /etc/my.cnf |
- 修改 SSH 端口
1 | vim /etc/ssh/sshd_config |
- 禁止 ssh 密码登录,使用 ssh 公钥登录
参考:SSH 公钥验证远程登录
使用 letsencrypt 进行 https 加密
lnmp 一键安装包1.4+版本可以自动配置
全站跳转 https
配置全站 302 跳转 https 只需要在配置文件中添加一行即可。
1 | vim /usr/local/nginx/conf/vhost/xlui.me.conf |
重启 nginx 即可。