菜鸟使用Linode VPS 搭建LNMP + WordPress + SSL + CloudFlare
2023年补充
本人原来所用的Centos系统已经不再有效更新,并且前几天LNMP被金华市矜贵网络科技有限公司收购后就惊现安全事件,闹的沸沸扬扬。干脆重新写了一篇攻略,方便自己和他人,请移步:
菜鸟使用Linode VPS安装LNMP,配合CloudFlare建立具有云解析和SSL证书的WordPress站点
2022年补充
前几天写了一篇WordPress的系统要求以及VPS配置选择,然后就发现自己的2台5美元一个月的LINODE Nanode Plan已经无法符合WordPress的最新系统要求了。于是干脆乘这几天都在家办公的空隙,把2台Linode VPS都升级到了10美元一个月的Linode 2G内存套餐,然后重新安装了LNMP,部署了站点。本文根据此次安装碰到的问题,做了一些修正。
前言
昨天收到CPANEL的邮件说我原来账户里面的信用卡过期了,造成续费失败,然后附带了一个发票,结果我一看年费改成按月收费了,一打听才知道原来200刀一年的VPS虚拟主机管理license要变成月收的license了,我原来的CPANEL上的站点其实也不多一共才8个站点,结果最适合我的是可以跑30个站点的PRO,一个月就要30刀,怎么想都觉太贵了。
遂决定,于其每个月在CPANEL上多费钱,不如把这些费用节省下来,弄多几个LINODE的主机,我的几个站点都是产品站点,小流量, 一个LINODE 的 Nanode Plan 才5刀一个月,300刀我可以一年跑5台了,一台机器跑10个小流量的WordPress站点是很轻松的事情。
当时唯一担心的是邮箱的问题,咨询了LINODE的人员以后,因为我的账号是2019年11月5号前就建立了,因此可以不受端口屏蔽,就是说我的账号下购买的VPS,不管老的还是新的都可以自己搭建邮件服务器,并且推荐了 Mail-in-a-Box 这个系统。
邮件服务器搭建先不弄,毕竟我的LINUX只是仅限于代码的复制粘贴,万一把网站搞崩溃了就发财了,所以先弄网站。
备注:CPANEL还是很不错的,虽然我的信用卡过期了,但是还是给我7天的使用时间。但是我也不想发这种财,老老实实的更新了新卡,把2月余下的几天费用支付了,5天一共5刀,有点肉疼,又够一台 LINODE 的 Nanode Plan 一个月费用了。
参考文献
如标题所属,本人是LINUX的菜鸟,只知道代码的复制粘贴,因此搭建的过程参考了前辈的经验。
- https://www.vpser.net/manage/screen.html
- https://www.vpser.net/manage/run-screen-lnmp.html
- https://www.vpser.net/manage/centos-rhel-linux-third-party-source-epel.html
- https://www.cnblogs.com/medsonk/p/8888558.html
- https://cloud.tencent.com/developer/article/1141282
所需软件
- SSH客户端。比如Putty
- SFTP工具。比如SSH Secure File Transfer Client
操作步骤
1:购买Linode VPS
到Linode的官网操作即可,过程非常简单,需要有信用卡,以后续费可以使用PAYPAL充值。选用10美元一个月的Linode 2G套餐。现在新注册的用户还可以有100美元的试用金奖励,3个月后作废。
Linode在全世界有很多数据中心,可以在官网上查询,我比较喜欢使用Fremont这个数据中心。不过由于太多国人使用,做的网站又是奇奇怪怪的网站,造成这个数据中心的很多IP已经被墙。没法,还是呼吁文明做站吧。
系统我选用的是 Centos Steam 8。目前Lnmp的正式版最新的是Lnmp 1.8,还不支持Centos Steam 9。
2:修改SSH端口
第一步:备份原sshd配置文件
指令:
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup
第二步:编辑sshd配置文件
下文内容均假设你希望新端口为3322,把下面所有指令中的3322替换为你需要设置的端口即可。
备注:新端口建议10000以上,至少我使用了2次10000以内的端口都不成功,另外端口不能超过65535。
指令:
vi /etc/ssh/sshd_config
- 按 i 进入编辑状态
- 使用方向键控制光标,到 #Port 22 这一行,删除前面的#
- 那么在 Port 22 下面添加一行 Port 3322
- 按ESC键,退出编辑状态
- 按 :w 保存修改
- 按 :q 退出
第三步:重启SSH服务器
指令:
systemctl restart sshd
第四步:查看当前端口状态
指令:
ss -ntl
这个时候应该可以看见修改过的端口和原来的22端口。
第五步:iptables添加SSH新端口规则
指令:
iptables -A INPUT -p tcp --dport 3322 -j ACCEPT #3322替换为新的端口#
第六步:firewalld添加SSH新端口规则
指令:
firewall-cmd --permanent --zone=public --add-port=3322/tcp #3322替换为新的端口#
firewall-cmd --reload #重载firewalld#
第七步:SSH软件连接测试
使用SSH客户端软件连接测试一下新端口
第八步:删除22端口
必须要先做好新端口的连接测试,只有测试成功后才能删除22端口。
参考上面第二步的介绍,删除 Port 22 这行内容,保存后退出。重复上面的第三步和第四步,在第四步的现实结果中应该已经没有了22端口的显示,只有你的自定义端口显示。
3:安装必要软件
使用SSH客户端连接上刚购买的Linode VPS, 在VPS上安装必要软件
安装EPEL源,指令:
yum install epel-release
安装screen,指令:
yum install screen
安装wget,指令:
yum install wget
安装tar,指令:
yum install tar
4:搭建配置LNMP系统
建议参考LNMP官网的安装步骤介绍:https://www.lnmp.com/install.html
第一步:运行screen
指令:
screen -S lnmp
强烈建议第一步运行这个screen,这样如果安装中途ssh断开,还是可以随时重新登陆查看安装进度,否则就只好从头全新安装了。如果网络掉线,可以重新连接SSH,再执行 screen -r lnmp 就会看到你的lnmp安装进程。有时候screen异常退出可能会提示状态为Attached,可以执行:screen -D -r lnmp 进行恢复。
第二步:下载并安装LNMP一键安装包
指令:
wget http://soft.vpser.net/lnmp/lnmp1.8.tar.gz -cO lnmp1.8.tar.gz && tar zxf lnmp1.8.tar.gz && cd lnmp1.8 && ./install.sh lnmp
根据提示输入需要安装的MySql,PHP等。安装前请注意WordPress官网上发布的当前WordPress的系统要求。比如当前的系统要求是:
- PHP7.4或更高版本。
- MySQL5.7或更高版本 MariaDB 10.2或更高版本。
根据提示完成安装即可。
第三步:修改PhpMyAdmin的访问路径
使用SFTP客户端链接上Linode VPS,完成LNMP安装了以后,第一时间修改 /home/wwwroot/default下的phpmyadmin目录名, 把这个目录修改成只有自己知道的目录名称,比如123654,那么你以后就可以用http://你的VPSIP/123654 这个地址管理你的数据库了。
记得删除/home/wwwroot/default目录下的其他文件,只保留改过名的phpmyadmin文件夹。
第四步:网站添加
根据 https://lnmp.org/faq/lnmp-vhost-add-howto.html 提示操作即可,复制保存出现的站点开通结果。
5:安装WordPress程序
使用SSH客户端,进入刚才创建的网站目录,指令:
cd 网站目录 #网站目录为网站添加了以后Home Directory:后面显示的内容#
下载完毕最新的WordPress压缩包,指令:
wget https://wordpress.org/latest.tar.gz
解压刚下载的WordPress压缩包,指令:
tar -zxf latest.tar.gz
移动解压后的WorPress内容到工作目录,指令:
cp -r ./wordpress/* ./
把文件的所属都修改为www组的www用户,指令:
chown -R www:www ./
删除wordpress的解压目录,指令:
rm -rf wordpress
删除刚下载的WordPress压缩包,指令:
rm latest.tar.gz #需要按Y确认删除#
如果使用SFTP软件上传了任何文件到网站目录下, 千万记得一定要在使用SSH客户端连接上VPS服务器,并使用 chown -R www:www 网站目录 指令把网站的文件所属修改成www组的www用户
6:CloudFlare设置
把站点指向到VPS的IP
7:完成WordPress的最终配置
打开浏览器,访问网站,根据提示完成WordPress的配置。