VPS建站

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

要是说到用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的支持。

如果你对国内的建站程序没有兴趣,你可以试试国外的比较成熟的建站程序和面板,更多的一键建站脚本请查看专题:一键建站脚本工具专题

  1. 国内外流行的VPS主机和服务器控制面板-让VPS像虚拟主机一样轻松建站
  2. OpenLiteSpeed安装与使用-开源轻量高性能的建站面板-免费SSL,多PHP,LSCache
  3. 提示”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端口都存在,并提示安装使用的时间。

    二、添加网站和SSL证书

    执行: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日志管理

    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网站备份

    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主机同步工具,快速将备份的文件同步到其他的网盘或者服务器里:

    1. 三个命令工具Rsync,SCP,Tar-快速解决VPS远程网站搬家与数据同步
    2. 一个命令让Linux定时打包备份指定目录文件夹并同步备份到各大网盘

    五、LNMP安全问题

    2023年,Oneinstack和LNMP.org一键包被爆出安全问题,相关的讨论见:

    1. https://github.com/oneinstack/oneinstack/issues/511
    2. https://github.com/oneinstack/oneinstack/issues/487
    3. https://www.v2ex.com/t/979226

    相关的网页截图见:https://do.wzfou.net/wzfou/lnmp/oneinstackma.png

    文章出自:挖站否 https://wzfou.com/lnmp21/,版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。

文章更新于: 2024年8月16日 下午10:45

Qi

关于站长(Qi),2008年开始混迹于免费资源圈中,有幸结识了不少的草根站长。之后自己摸爬滚打潜心学习Web服务器、VPS、域名等,兴趣广泛,杂而不精,但愿将自己经验与心得分享出来与大家共勉。

查看评论

  • 去年收购时有一次供应链藏木马,今年好像5月份左右的时候又有一次。最好的选择就是用 llm 辅助去手动用包管理构建环境,如果有这个一对一答疑的老师都不愿意学还是趁早放弃比较好。