VPS 搭建 LNMP 环境和 WordPress 个人博客

购买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
2
3
yum install screen
# 创建 screen 会话
screen -S lnmp

如果网络断线,可以重新连接,并执行 screen -r lnmp,即可看到 lnmp 安装进程。

  • 下载并安装 lnmp
1
2
3
4
wget -c http://soft.vpser.net/lnmp/lnmp1.4-full.tar.gz
tar vzxf lnmp1.4-full.tar.gz
cd lnmp1.4-full
./install.sh lnmp

会有几个选项:

选择 MySQL 版本,默认

设置 MySQL root 密码

添加 InnoDB 引擎

选择 php 版本,默认

Memory Allocator: don’t

出现 Press any key to install…or Press Ctrl+c to cancel 后按回车开始安装

  • (可选)安装扩展
1
2
3
安装PHP缓存加速类扩展
./addons.sh install opcache
./addons.sh install memcached # 选2 回车
  • 添加虚拟主机
1
2
3
lnmp vhost add
# 输入域名 xlui.me
# 如果要添加SSL加密,可以选择免费的 Let's Encrypt 证书

搭建 WordPress 个人博客

  • 进入域名目录
1
2
# lnmp vhost add 命令生成的域名目录默认是在 /home/wwwroot/域名/
cd /home/wwwroot/xlui.me
  • 下载 WordPress 程序压缩包
1
wget https://cn.wordpress.org/wordpress-4.7.4-zh_CN.tar.gz
  • 解压
1
tar zxvf wordpress*
  • 将解压出来的文件移动到当前域名下,并删除空文件夹
1
2
mv wordpress/* . # 不要忘记最后的 .
rmdir wordpress
  • 为避免因为权限问题导致安装出错,更改根目录权限
1
2
chmod -R 755 /home/wwwroot
chown -R www /home/wwwroot
  • 开启 scandir 函数
1
2
vim /usr/local/php/etc/php.ini
# 搜索,并去掉 scandir
  • 重启 lnmp,打开博客网址(http://xlui.me)进行最后安装。

VPS 配置优化

  • 修改PHP配置文件
1
2
3
vim /usr/local/php/etc/php.ini #修改
> max_execution_time=90
> memory_limit=64M
  • 添加 swap 交换分区
1
2
3
4
5
6
7
cd /var
dd if=/dev/zero of=swapfile bs=1M count=1024
mkswap swapfile
swapon swapfile
chmod 0644 swapfile
echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab
free -m
  • 设置 MySQL 不记录日志
1
2
3
4
vim /etc/my.cnf
# 注释掉下面两行
> log-bin=mysql-bin
> binlog_format=mixed
  • 修改 SSH 端口
1
2
3
vim /etc/ssh/sshd_config
# Port 的值为任意你想设置的端口号,最好是难猜的
> Port 12345
  • 禁止 ssh 密码登录,使用 ssh 公钥登录

参考:SSH 公钥验证远程登录

使用 letsencrypt 进行 https 加密

lnmp 一键安装包1.4+版本可以自动配置

全站跳转 https

配置全站 302 跳转 https 只需要在配置文件中添加一行即可。

1
2
3
vim /usr/local/nginx/conf/vhost/xlui.me.conf
# 修改 80 端口对应的配置文件,在最后加上
> rewrite ^/(.*)$ https://xlui.me/ permanent;

重启 nginx 即可。

-------------本文结束感谢阅读-------------
  • 本文标题:VPS 搭建 LNMP 环境和 WordPress 个人博客
  • 本文作者:xlui
  • 发布时间:2017年07月20日 - 18:07
  • 最后更新:2018年04月10日 - 18:04
  • 本文链接: https://xlui.me/t/vps-lnmp-wordpress/
  • 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明出处!