要是说到用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的支持。
如果你对国内的建站程序没有兴趣,你可以试试国外的比较成熟的建站程序和面板,更多的一键建站脚本请查看专题:一键建站脚本工具专题。
提示”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端口都存在,并提示安装使用的时间。
执行:lnmp vhost add
,这里要输入要添加网站的主域名,设置网站的目录,开启日志等。
在添加网站时可以选择是否开启SSL证书,有四个选项,第一个是使用自己的证书,第2、3、4选项都是免费SSL证书。
如果遇到LNMP添加Letsencrypt等免费SSL证书失败的话,你可以先选择1选项,即使用自己的SSL证书,随便输入一个SSL证书路径,然后自己安装acme.sh,替换你刚刚设置的SSL路径即可:acme.sh支持免费SSL证书整理汇总-acme.sh安装和手动切换SSL CA方法。
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
关于crontab定时任务设置,请参考:Linux Crontab命令定时任务基本语法与操作教程。
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
LNMP一键安装包的备份脚本仅支持FTP远程备份,目前像腾讯云COS、阿里云OSS等都不支持FTP,如果你想要将文件存放在FTP云存储服务,目前可以试试又拍云:又拍云FTP。
当然,你也可以搭配Rsync、Rclone等VPS主机同步工具,快速将备份的文件同步到其他的网盘或者服务器里:
2023年,Oneinstack和LNMP.org一键包被爆出安全问题,相关的讨论见:
相关的网页截图见:https://do.wzfou.net/wzfou/lnmp/oneinstackma.png
文章出自:挖站否 https://wzfou.com/lnmp21/,版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。
文章更新于: %s = human-readable time difference 下午10:45
查看评论
2.1的下载后md5和官网的也不一致
那最好不要用了
不敢用了,但是又没得选,谁告诉我哪个还有安全的
好久不用面板了,起初用docker,现在都是k3s了
去年收购时有一次供应链藏木马,今年好像5月份左右的时候又有一次。最好的选择就是用 llm 辅助去手动用包管理构建环境,如果有这个一对一答疑的老师都不愿意学还是趁早放弃比较好。