使用SQLite3和Caddy2搭建WordPress,轻量化搭建博客

使用SQLite轻量化部署Wordpress

使用SQLite3和Caddy2搭建WordPress,轻量化搭建博客

前言

对于部署WordPress来说,需要使用MySQL一直以来都是个大问题。MySQL相对过于臃肿了,SQLite3的性能完全足以承载绝大部网站的正常负载,绝大部分网站并没有头部网站的巨大访问量,却需要部署MySQL这种占用资源较大的数据库。

引入

本文将会使用SQLite3代替WordPress所需的MySQL数据库以减少大量不必要的资源占用,同时将使用Caddy2作为站点的WEB服务器,对于个人来说Caddy2在轻量化的同时更利于管理,自动化的HTTPS配置可以减少大量工作量。大幅度轻量化后,256mb内存也足以搭建WordPress。

部署LCSP环境

下文均以Debian12作为基本环境搭建LCSP(Linux+Caddy2+SQLite3+PHP)环境

1.安装PHP及相关依赖

apt update

apt install php php-cgi php-fpm php-curl php-gd php-mbstring php-xml php-sqlite3 sqlite3 php-mysqli unzip sed wget curl vim git sudo tar zstd -y

2.安装Caddy2

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy

详细文档可查看:

  • Caddy2官方文档
  • Caddy2中文文档

3.开始安装WordPress-SQLite

1.拉取官方WordPress包

mkdir -p /var/www/html/wordpress
cd /var/www/html/wordpress 
wget -q https://cn.wordpress.org/latest-zh_CN.zip
unzip -qq latest-zh_CN.zip
mv wordpress/* .
rm -rf latest-zh_CN.zip
rm -rf wordpress

2.拉取配置

由于目前WordPress对SQLite的支持尚不完善,需要拉取预先配置完成的 wp-config.php.ht.sqlite

wget https://raw.githubusercontent.com/WJQSERVER/tools-stable/main/web/wordpress/wp-config.php
mkdir -p /var/www/html/wordpress/wp-content/database
cd /var/www/html/wordpress/wp-content/database 
wget https://raw.githubusercontent.com/WJQSERVER/tools-stable/main/web/wordpress/db.sqlite

3.导入官方SQLite插件

通过将SQLite插件放入mu-plugins,以避免误操作而导致插件关闭

cd /var/www/html/wordpress/wp-content
mkdir -p mu-plugins
cd mu-plugins
wget https://downloads.wordpress.org/plugin/sqlite-database-integration.zip
unzip -qq sqlite-database-integration.zip
rm -rf sqlite-database-integration.zip
cp /var/www/html/wordpress/wp-content/mu-plugins/sqlite-database-integration/db.copy /var/www/html/wordpress/wp-content/db.php
sed -i "s#{SQLITE_IMPLEMENTATION_FOLDER_PATH}#/var/www/html/wordpress/wp-content/mu-plugins#" /var/www/html/wordpress/wp-content/db.php
sed -i 's#{SQLITE_PLUGIN}#sqlite-database-integration/load.php#' /var/www/html/wordpress/wp-content/db.php

4.对SQLite数据库进行修改

需要修改数据库内容以保证站点地址正确,否则将会出现问题

sqlite3 "$ROOT/wp-content/database/.ht.sqlite" <<EOF
UPDATE wp_options SET option_value = '站点地址' WHERE option_name = 'siteurl';
.quit
EOF

sqlite3 "$ROOT/wp-content/database/.ht.sqlite" <<EOF
UPDATE wp_options SET option_value = '站点地址' WHERE option_name = 'home';
.quit
EOF

5.设置权限

chmod 755 -R /var/www/html/wordpress
chmod 640 /var/www/html/wordpress/wp-content/database/.ht.sqlite
chown www-data:www-data -R /var/www/html/wordpress

4.配置Caddy2

编辑/etc/caddy/Caddyfile

站点地址 {
	root * /var/www/html/wordpress
	file_server
	encode zstd gzip
	php_fastcgi unix//run/php/php8.2-fpm.sock 
}

重启Caddy2

systemctl restart caddy

结语

以上配置在Debian12内测试可行,系统环境不一致的情况下可能需要修改php监听地址