LNMP一键安装包-添加网站,SSL证书,日志管理,网站备份和安全问题

咔咔猪
2024-10-22 / 0 评论 / 135 阅读

1.jpg

要是说到用VPS主机建站,目前一般流行两种方式:一是直接在VPS主机上安装虚拟主机面板,例如宝塔面板,另一种就是直接安装Nginx、Mysql、PHP等组件。两种方式各有各的优缺点,使用虚拟主机面板简单但是容易有安全问题和资源占用过大的问题。

直接手动配置LNMP环境,则难度比较大,不利用新手入门,后期在建站过程当中遇到问题不容易自己解决。LNMP一键安装包常用的就是Oneinstack和LNMP.org一键包了,不过去年Oneinstack和LNMP.org一键包被爆出安全问题(见后文),现在看来也不一定完全让人放心了。

然而,现在最大的问题就是目前暂时没有更好的选择了,只能说大家在使用的过程中多多注意安全问题。这篇文章就来分享一下LNMP一键安装包,最新版本的LNMP一键安装包v2.1正式版增加了对PHP 8.3和MySQL 8.4的支持,同时Nginx增加了http3的支持。

一、LNMP一键包安装
网站:

https://lnmp.org/
登陆VPS主机后运行: screen -S lnmp ,如果提示screen: command not found 命令不存在可以执行: yum install screenapt-get install screen 安装。

安装LNMP稳定版(说明:每年LNMP都会有一个新的大版本发布,请及时到官网获取最新的安装命令),LNMP2.1命令如下:

wget https://soft.lnmp.com/lnmp/lnmp2.1.tar.gz -O lnmp2.1.tar.gz && tar zxf lnmp2.1.tar.gz && cd lnmp2.1 && ./install.sh lnmp

如需要安装LNMPA或LAMP,将 ./install.sh 后面的参数lnmp替换为lnmpa或lamp即可。同时也支持单独安装Nginx或数据库,命令为 ./install.sh nginx./install.sh db

运行上述LNMP安装命令后,会出现如下提示:
1.webp
目前提供了较多的MySQL、MariaDB版本和不安装数据库的选项,需要注意的是MySQL 5.6,5.7及MariaDB 10如果是编译安装必须在1G以上内存的更高配置上才能选择!如仅需安装数据库在lnmp安装包目录下执行:./install.sh db

根据提示选择PHP版本。
2.webp
提示” Press any key to install...or Press Ctrl+c to cancel “后,按回车键确认开始安装。LNMP脚本就会自动安装编译Nginx、MySQL、PHP、phpMyAdmin等软件及相关的组件。安装时间可能会几十分钟到几个小时不等,主要是机器的配置网速等原因会造成影响。

安装完成。如果显示Nginx: OK,MySQL: OK,PHP: OK,并且Nginx、MySQL、PHP都是running,80和3306端口都存在,并提示安装使用的时间。
3.webp
添加网站和SSL证书
执行:lnmp vhost add,这里要输入要添加网站的主域名,设置网站的目录,开启日志等。
4.webp
在添加网站时可以选择是否开启SSL证书,有四个选项,第一个是使用自己的证书,第2、3、4选项都是免费SSL证书。
5.webp
如果遇到LNMP添加Letsencrypt等免费SSL证书失败的话,你可以先选择1选项,即使用自己的SSL证书,随便输入一个SSL证书路径,然后自己安装acme.sh,替换你刚刚设置的SSL路径即可
三、LNMP日志管理
LNMP一键安装包的日志默认是切割的,也就是说日志文件会越来越大,这个非常占用资源。LNMP1.2/1.3+版本安装包目录下有一个tools目录,放有常用的备份脚本 backup.sh,nginx日志切割脚本 cut_nginx_logs.sh。

打开cut_nginx_logs.sh,修改以下参数:

#设置nginx日志文件目录路径
log_files_path="/home/wwwlogs/"
#日志文件将会存放到/home/wwwlogs/年/月/日志文件名_年月日.log
log_files_dir=${log_files_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")
#设置要切割的日志的名字,如果日志目录下面的日志文件名为vpser.net.log,则填写vpser.net,每个日志名用空格分隔
log_files_name=(access vpser.net licess)
#设置nginx文件的位置
nginx_sbin="/usr/local/nginx/sbin/nginx"
#设置日志保存的时间,天
save_days=30

然后给脚本添加执行权限。

chmod +x cut_nginx_logs.sh
先自己手动执行一下命令: /root/lnmp2.1/tools/cut_nginx_logs.sh ,如果运行一切正常的话,现在可以添加一个定时任务了。执行: crontab -e

添加以下命令保存,每天0点整开始切割脚本。

00 00 * * * /bin/bash /root/lnmp2.1/tools/cut_nginx_logs.sh

四、LNMP网站备份
LNMP一键安装包tools目录下有备份脚本 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为你指定的天数。

保存后,先添加执行权限:chmod +x /root/lnmp2.1/tools/backup.sh,然后再自己手动运行一下看看有没有错误: /root/lnmp2.1/tools/backup.sh

没有问题的话,直接添加定时任务:crontab -e,设置为每天0点开始备份。

00 00 * * * /bin/bash /root/lnmp2.1/tools/backup.sh

0

评论 (0)

取消