对于部署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
详细文档可查看:
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,以避免误操作而导致插件关闭
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 许可协议。转载需注明出处!
玩玩就用 SQLite 就行,真長期用 WordPress 還是 MySQL
可以
你这安装方式确实有点难度,新手还是用面板安装好
我感觉我又行了
哇,终于来到熟悉的技术环节了
就凭这篇文章我也得把你博客加个收藏
熟悉的感觉!
@Testcharon #1
目前wordpress不做修改的情况下也只支持MySQL和MariaDB,能兼容SQLite至少对小型网站有好处
SQLite模块后续可能会合并至主线,而且目前的SQLite插件来自于Wordpress官方,兼容性相对以前的第三方组件好很多
Wordpress官方原文地址
该文章中也说明了切换到SQLite对于WordPress好处是相当明显的,且指出SQLite几乎是完美的选择
你似乎对SQLite抱有一些稳定性的偏见,SQLite在设计之初就是为了高稳定性,而且SQLite是全球使用最广泛的数据库,且SQLite是一个跨平台数据库,在各种设备内都可以找到SQLite的身影。
SQLite 一开始就诞生在工业界巨头公司的夹缝里面,从最开始它就是一个对运行质量要求极高的工业软件。它看起来像一个精致的小软件,但绝不是一个小玩具
@涂山 #3
目前来说安装难度确实比较大,如果后续SQLite合并至主线应该就不存在安装复杂的问题了
支持。
支持技术探索
但实际应用上
256内存我会选debian9 博客我会选typecho