LNMP一键安装 · 2022年2月5日 0

LNMP一键建站脚本-自动配置SSL证书

一、添加网站

基本命令:

lnmp vhost {add|list|del}

先把你的域名解析到你的VPS主机的IP上,然后执行添加网站命令:lnmp vhost add,填写你的域名、设置网站的目录、伪静态、设置日志、数据库等。操作说明如下:

root@ecs-WYt6B:~/lnmp1.7# lnmp vhost add
+-------------------------------------------+
|    Manager for LNMP, Written by Licess    |
+-------------------------------------------+
|              https://lnmp.org             |
+-------------------------------------------+
Please enter domain(example: www.lnmp.org): lvps.wzfou.me
 Your domain: lvps.wzfou.me #绑定你的域名
Enter more domain name(example: lnmp.org *.lnmp.org): #是否有其它的域名,没有话直接回车
Please enter the directory for the domain: lvps.wzfou.me
Default directory: /home/wwwroot/lvps.wzfou.me: #网站根目录
Virtual Host Directory: /home/wwwroot/lvps.wzfou.me
Allow Rewrite rule? (y/n) y #是否添加重写规则
Please enter the rewrite of programme, 
wordpress,discuzx,typecho,thinkphp,laravel,codeigniter,yii2 rewrite was exist.
(Default rewrite: other): wordpress 
You choose rewrite: wordpress
Enable PHP Pathinfo? (y/n) n #一般是否
Disable pathinfo.
Allow access log? (y/n) y #是否开启网站日志
Enter access log filename(Default:lvps.wzfou.me.log): 
You access log filename: lvps.wzfou.me.log
Create database and MySQL user with same name (y/n) y #是否添加数据库
Enter current root password of Database (Password will not shown): 
OK, MySQL root password correct.
Enter database name: wzfou
Your will create a database and MySQL user with same name: wzfou
Please enter password for mysql user wzfou: wzfou.com
Your password: wzfou.com 
Add SSL Certificate (y/n) y
1: Use your own SSL Certificate and Key
2: Use Let's Encrypt to create SSL Certificate and Key
Enter 1 or 2: 2
It will be processed automatically.
Press any key to start create virtul host...

如下图,成功添加了网站,并且开启了SSL证书。

二、301跳转

LNMP一键建站工具没有设置301自动将Http跳转到Https,我们还需要进一步设置,找到你的域名的nginx配置文件,编辑添加以下代码,然后重启nginx生效。

return 301 https://server_namerequest_uri;

三、网站自动备份

LNMP1.2/1.3+版本安装包目录下有一个tools目录,放有常用的备份脚本 backup.sh,nginx日志切割脚本 cut_nginx_logs.sh,SSH防护安装脚本denyhosts.sh 和 fail2ban.sh,MySQL/MariaDB root密码重装工具 reset_mysql_root_password.sh及PHP函数辅助删除工具 remove_disable_function.sh。 这些工具可以在使用LNMP提供一些很有用的安全防护设置。

1、 本地备份

LNMP一键建站脚本只有本地备份,脚本为:backup.sh,备份脚本需要修改一下几个参数。

Backup_Home="/home/backup/" #####备份文件存放目录
MySQL_Dump="/usr/local/mysql/bin/mysqldump" ####mysqldump路径,如果是mariadb替换/usr/local/mysql为/usr/local/mariadb
######~Set Directory you want to backup~######
Backup_Dir=("/home/wwwroot/vpser.net" "/home/wwwroot/lnmp.org") ##########要备份的目录,目录用双引号括起来,多个目录空格隔开,如前面的例子
######~Set MySQL Database you want to backup~######
Backup_Database=("lnmp" "vpser") ########要备份的数据库,前面有例子
######~Set MySQL UserName and password~######
MYSQL_UserName='root' ####不用说了,MySQL root账号
MYSQL_PassWord='yourrootpassword' ##### MySQL root密码
######~Enable Ftp Backup~######
Enable_FTP=0 #####是否启用ftp备份,0 启用,非0 不启用
# 0: enable; 1: disable
######~Set FTP Information~###### ftp账号信息
FTP_Host='1.2.3.4'
FTP_Username='vpser.net'
FTP_Password='yourftppassword'
FTP_Dir="backup" #########ftp服务器上存放备份的目录
#Values Setting END!
默认备份文件保存3天,可以修改backup.sh里的-3day为你指定的天数。

2、定时备份

为了达到自动备份的效果,需要配合crontab使用,有关于Linux定时任务更多的设置说明请参考:Crontab命令定时任务操作指南

#添加定时脚本
crontab -e
#编辑定时脚本,然后添加:
0 1 * * * /root/lnmp1.7/tools/backup.sh
#设置每天凌晨1点执行一次,至此自动备份就成功了。

3、同步到网盘

这一步我们主要是利用了clone工具了,有关于clone的介绍与使用请参考:VPS挂载国内外网盘实现免费扩容工具:Rclone,COS-Fuse和OSSFS

在本地根目录下新建cmd目录,然后cd cmd,新建一个sh文件。

vim vpsback.sh

复制以下命令:

#!/bin/bash
/root/lnmp1.7/tools/backup.sh
/usr/bin/rclone copy --update --verbose --transfers 30 --checkers 8 --contimeout 60s --timeout 300s --retries 3 --low-level-retries 10 --stats 1s "/backup" "wzfoumi:wzfoumima"
echo "BACKUP DATE:" $(date +"%Y-%m-%d %H:%M:%S") >> /var/log/backup.log

说明:

第一句是执行LNMP备份。

第二句是利用rclone copy命令,将指定目录/backup下新增加的文件,同步到Google网盘中,”wzfoumi:wzfoumima”是指名称为wzfoumi的rclone,wzfoumima是谷歌网盘中的文件夹。

第三句是输出日志,即表示执行了一次备份命令。

赋予执行权限:

chmod +x vpsback.sh

先测试一下从是否可以正确运行,我们可以看到本地文件夹已经有打包过来的文件。同时,可以看到网盘中已经有了同步过来的文件了。

添加定时任务,让脚本每天执行一次。

0 2 * * * /cmd/vpsbackup.sh > /dev/null 2>&1 &