• 首页
  • 搜索
  • 夜间模式
    ©2012-2025  Feng's Blog Theme by OneBlog
    搜索
    标签
    # 随笔 # 维修 # Wordpress # 阿里云 # 服务器 # typecho # Ghost # iphone # 网站 # word
  • 首页>
  • IT网络>
  • 正文
  • 博客的再一次折腾

    2024年03月19日 365 阅读 8 评论 5070 字

    博客之前一直都是用的军哥的LNMP(Linux+Nginx+MySQL+PHP)一键安装脚本搭建WordPress网站,中间偶尔也用过宝塔、1pancel等,但用的最久的还是LNMP,但从2023年下半年,随着作者军哥用爱发电很多年后将网站卖给某公司,有大神发现LNMP.COM网站的代码里被恶意植入了后门代码,而该公司同时收购了oneinstack,同时期出现了恶意代码,LNMP和oneinstack一键网站环境安装包被广泛弃用。

    当然替代方案还是有很多的,但还是想借此机会折腾一下新的,那就尝试一下秋水在佬的LCMP(Linux + Caddy + MariaDB + PHP)脚本(Github地址)。Caddy 2是一款现代、轻量级的开源Web服务器,以其简单的配置语法、内置自动HTTPS支持、动态配置和服务发现、现代的HTTP/2和HTTP/3支持、插件系统以及易于部署和管理而脱颖而出。当然论功能、生态、性能等,目前还是Nginx更强。

    下面就来介绍如何用秋水大佬的LCMP一键脚本搭建WordPress。

    目前支持的系统

    • Enterprise Linux 7 (CentOS 7, RHEL 7)
    • Enterprise Linux 8 (CentOS Stream 8, RHEL 8, Rocky Linux 8, AlmaLinux 8, Oracle Linux 8)
    • Enterprise Linux 9 (CentOS Stream 9, RHEL 9, Rocky Linux 9, AlmaLinux 9, Oracle Linux 9)
    • Debian 10
    • Debian 11
    • Debian 12
    • Ubuntu 20.04
    • Ubuntu 22.04

    目前支持的软件

    • Caddy 2
    • MariaDB 10.11
    • PHP-7.4, PHP-8.0, PHP-8.1, PHP-8.2, PHP-8.3

    开搞之前先把依赖安装一下

    apt update && apt -y upgrade
    apt install wget -y
    apt install socat -y
    apt install git -y

    开始安装LCMP

    • 如果是Debian 10+ / Ubuntu 20.04+:
      apt-get -y install wget git
      git clone https://github.com/teddysun/lcmp.git
      cd lcmp
      chmod 755 *.sh
      ./lcmp.sh 2>&1 | tee lcmp.log
    • 如果是Enterprise Linux 7 / 8 / 9:
      yum -y install wget git
      git clone https://github.com/teddysun/lcmp.git
      cd lcmp
      chmod 755 *.sh
      ./lcmp.sh 2>&1 | tee lcmp.log

      等出现如下实样就代表LCMP安装好了

      LCMP (Linux + Caddy + MariaDB + PHP) installation complete

      个人感觉LCMP的操作命令和LNMP有点相似,因为它的添加虚拟主机的方式如下:

      lcmp vhost add

      是不是有点眼熟,无非是C和N的区别,具体命令及使用方式参考秋水大佬的Github
      至于Wordpress的建站过程就不啰嗦了,这应该都不是事。不过我在使用Wordpress上传照片或下载插件时碰到了权限问题需要注意一下(可能是我的个例),以往都是赋予网站目录为www用户的权限,使用Caddy后这样操作还是会出现在后台无法访问的问题,后来翻了很多网站,发现需要将网站目录赋予caddy用户权限即可解决,具体操作为(假设网站目录为/data/www/下)

      chown -R caddy:caddy /data/www/*

      既然网站搭好了,必要的备份措施还是要的,秋水大佬的一键脚本里目前没有备份脚本,这里从军哥的Github里提取了backup.sh魔改一番就可以了,除了本地备份外还将备份文件上传到阿里云的OSS中,这样形成双备份以免意外发生,下面是大概的过程及代码:


      配置阿里云的ossutil

    • 安装ossutil(参考官方教程https://help.aliyun.com/zh/oss/developer-reference/install-ossutil?spm=a2c4g.11186623.0.0.5ed75436NQwjIE)
      sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo bash
    • 配置ossutil
      ossutil config

      根据提示分别设置Endpoint、AccessKey ID、AccessKey Secret和STSToken参数,对应的值怎么获取阿里云上都有,唯独需要注意的是stsToken这个值官方讲的我一直没怎么明白,浪费了很多时间,后来才知道可以直接回车留空即可,唉!


      魔改备份脚本


      # 设置网站备份路径
      Backup_Home="/data/www/backup/"
      # 设置数据库路径
      MySQL_Dump="/usr/bin/mysqldump"
      # 设置需要备份的网站路径
      Backup_Dir=("/data/www/a.com" "/data/wwww/b.com")
      # 设置需要备份的数据库名称,不同的数据表以空格间隔
      Backup_Database=("wordpress_" "typecho_")
      # 设置Mysql的用户名和密码
      MYSQL_UserName='root'
      MYSQL_PassWord='123456'
      TodayWWWBackup=www-*-$(date +"%Y%m%d").tar.gz
      TodayDBBackup=db-*-$(date +"%Y%m%d").sql
      OldWWWBackup=www-*-$(date -d -3day +"%Y%m%d").tar.gz
      OldDBBackup=db-*-$(date -d -3day +"%Y%m%d").sql
      Backup_Dir()
      {
      Backup_Path=$1
      Dir_Name=`echo ${Backup_Path##*/}`
      Pre_Dir=`echo ${Backup_Path}|sed 's/'${Dir_Name}'//g'`
      tar zcf ${Backup_Home}www-${Dir_Name}-$(date +"%Y%m%d").tar.gz -C ${Pre_Dir} ${Dir_Name}
      }
      Backup_Sql()
      {
      ${MySQL_Dump} -u$MYSQL_UserName -p$MYSQL_PassWord $1 > ${Backup_Home}db-$1-$(date +"%Y%m%d").sql
      }
      if [ ! -f ${MySQL_Dump} ]; then  
      echo "mysqldump command not found.please check your setting."
      exit 1
      fi
      if [ ! -d ${Backup_Home} ]; then  
      mkdir -p ${Backup_Home}
      fi
      echo "Backup website files..."
      for dd in ${Backup_Dir[@]};do
      Backup_Dir ${dd}
      done
      echo "Backup Databases..."
      for db in ${Backup_Database[@]};do
      Backup_Sql ${db}
      done
      echo "Delete old backup files..."
      rm -f ${Backup_Home}${OldWWWBackup}
      rm -f ${Backup_Home}${OldDBBackup}
      # 将备份的数据库上传到阿里云,将Bucket-name改为对应名称
      ossutil cp -r -f /data/www/backup/$TodayDBBackup oss://Bucket-name/
      ossutil cp -r -f /data/www/backup/$TodayWWWBackup oss://Bucket-name/

      测试一下,备份目录下有相应的文件,然后再到阿里云OSS中查看,都有说明就成功了,这里只将数据库文件上传到阿里云的OSS。最后记得添加一条计划任务,具体可参考如下:

      [root@localhost ~]# crontab -e
      选项:
      -e:    编辑crontab定时任务
      -l:    查询crontab任务
      -r:    删除当前用户所有的crontab任务

      0 14 * * * /bin/bash /data/www/backup/backup.sh

      终于折腾完了,可以看会剧去了。

    本文著作权归作者 [ Feng ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。
    Wordpress网站
    — END —

    读者留言8

    1. 刘郎 Lv.1
      2024-05-17 10:11

      也是一个爱折腾的?,不错(⊙o⊙)哇?

      1. Feng 博主
        2024-05-17 12:27
        @刘郎

        是啊,更新不咋的,竟折腾了

    2. 1900 Lv.2
      2024-03-22 11:50

      我记得前几天不还是静态么,怎么又回wordpress了。

      1. Feng 博主
        2024-03-22 13:06
        @1900

        没有啊,wordpress用了段时间了,不过是有点想折腾静态,还没找到门路

    3. koobai Lv.2
      2024-03-19 21:29

      你这太专业了,完全不懂

      1. Feng 博主
        2024-03-20 09:35
        @koobai

        大佬过谦了,我的静态博客都还没捣鼓好呢

    4. 老麦 Lv.2
      2024-03-19 21:15

      我每天直接用群晖的套件进行备份,也很方便,保留十个版本,方便回滚。

      1. Feng 博主
        2024-03-20 09:37
        @老麦

        群晖的套件保留Windows下确实方便,我自己也在用,Linux下倒是不知道有没有客户端可以实现

    加载更多评论
    加载中...
    — 已加载全部评论 —
    首页
    Copyright©2012-2025  All Rights Reserved.  Load:0.036 s
    Theme by OneBlog V3.6.3
    夜间模式

    开源不易,请尊重作者版权,保留基本的版权信息。