logo NodeSeekbeta

使用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
mv db.sqlite .ht.sqlite
3.导入官方SQLite插件

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

官方SQLite插件GitHub地址

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 "/var/www/html/wordpress/wp-content/database/.ht.sqlite" <<EOF
UPDATE wp_options SET option_value = '站点地址' WHERE option_name = 'siteurl';
.quit
EOF

sqlite3 "/var/www/html/wordpress/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监听地址

博客详细教程

版权声明:WJQserver-Studio所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载需注明出处!

12
  • 玩玩就用 SQLite 就行,真長期用 WordPress 還是 MySQL

  • 可以

  • 你这安装方式确实有点难度,新手还是用面板安装好 ac43

  • 我感觉我又行了 ac01

  • 哇,终于来到熟悉的技术环节了
    就凭这篇文章我也得把你博客加个收藏

  • 熟悉的感觉!

  • @Testcharon #1
    目前wordpress不做修改的情况下也只支持MySQL和MariaDB,能兼容SQLite至少对小型网站有好处
    SQLite模块后续可能会合并至主线,而且目前的SQLite插件来自于Wordpress官方,兼容性相对以前的第三方组件好很多
    Wordpress官方原文地址
    该文章中也说明了切换到SQLite对于WordPress好处是相当明显的,且指出SQLite几乎是完美的选择
    你似乎对SQLite抱有一些稳定性的偏见,SQLite在设计之初就是为了高稳定性,而且SQLite是全球使用最广泛的数据库,且SQLite是一个跨平台数据库,在各种设备内都可以找到SQLite的身影。
    SQLite 一开始就诞生在工业界巨头公司的夹缝里面,从最开始它就是一个对运行质量要求极高的工业软件。它看起来像一个精致的小软件,但绝不是一个小玩具

  • @涂山 #3
    目前来说安装难度确实比较大,如果后续SQLite合并至主线应该就不存在安装复杂的问题了

  • 支持。

  • 支持技术探索
    但实际应用上
    256内存我会选debian9 博客我会选typecho

12

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有72267位seeker

🎉欢迎新用户🎉