====== Wordpress ======
===== 安装 =====
==== wordpress 配置 ====
创建项目文件夹 ''mkdir -p ~/services/bits && cd ~/services/bits''
创建配置文件 ''nano .env''
内容为
MYSQL_DATABASE=wordpress
MYSQL_USER=wordpress
MYSQL_PASSWORD=数据库密码
MYSQL_ROOT_PASSWORD=数据库root密码
创建 [[docker]] ''copmose.yml'' 文件,包含 wordpress 容器 ''bits-wordpress'' 和数据库容器 ''bits-db''
services:
wordpress:
image: wordpress:latest
container_name: bits-wordpress
restart: unless-stopped
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: ${MYSQL_DATABASE}
WORDPRESS_DB_USER: ${MYSQL_USER}
WORDPRESS_DB_PASSWORD: ${MYSQL_PASSWORD}
volumes:
- ./wordpress:/var/www/html
networks:
- web
- bits-net-int
db:
image: mariadb:11
container_name: bits-db
restart: unless-stopped
environment:
MARIADB_DATABASE: ${MYSQL_DATABASE}
MARIADB_USER: ${MYSQL_USER}
MARIADB_PASSWORD: ${MYSQL_PASSWORD}
MARIADB_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
volumes:
- ./db:/var/lib/mysql
networks:
- bits-net-int
networks:
web:
external: true
bits-net-int:
internal: true
运行
''docker compose up -d''
==== caddy 配置 ====
''nano ~/services/caddy/Caddyfile''
在文件中添加
bits.xiaobenmao.win {
reverse_proxy bits-wordpress:80
}
重启 caddy
''cd ~/services/caddy && docker compose restart''
大功告成
可以进入网页配置默认账号了
==== 连接 Authentik ====
搜索安装 OpenID Connect Generic Client 插件并启用。
在 Authentik 管理页面中添加 provider 和 application
在 WordPress 设置 - OpenID Connect Client 里对应配置 login type、client ID、client secret、openID scope、login endpoint、userinfo endpoint、token validation endpoint、end session endpoint、JKWS URI、issuer、identity key、nickname key、email formatting。也可以通过 discovery URL 自动填入,只需将 Authentik provider 的 OpenID Configuration URL 粘贴进 Discovery URL 一栏即可。
===== 插件 =====
==== OpenID Connect Generic ====
用于连接 OpenID 认证服务。
欲想直接透过 OpenID 认证登录而不使用 WordPress 内置登录方式,可设置登录方式为 ''Auto Login - SSO''。此时 WordPress 内置登录方式将完全被禁用,原生账号(含 admin)无法登录。
{{pasted:20260707-123914.png?600}}
亦可在 WPCode Lite 中添加如下代码片段(务必将上方设置恢复为默认)以便使用 ''/wp-login.php?local_login=1'' 链接访问 WordPress 内置登录页面。
add_action('login_init', function () {
if (isset($_GET['local_login']) && $_GET['local_login'] === '1') {
return;
}
if (isset($_GET['force_redirect'])) {
return;
}
if (
isset($_GET['code']) ||
isset($_GET['state']) ||
isset($_GET['login-error']) ||
isset($_GET['message'])
) {
return;
}
$action = $_REQUEST['action'] ?? 'login';
if (in_array($action, ['logout', 'lostpassword', 'retrievepassword', 'rp', 'resetpass', 'postpass'], true)) {
return;
}
if ($action !== 'login') {
return;
}
wp_safe_redirect(add_query_arg('force_redirect', '1', wp_login_url()));
exit;
});
==== W3 Total Cache ====
通过缓存提高网页性能。推荐配置页面缓存及延迟加载。除非数据库支持 Redis 或 Memcached,否则不建议配置数据库缓存。
==== WP Statistics ====
窥视每一位来访者。
记得勾选“绕过广告拦截器”~
==== WPCode Lite ====
可在任意地方执行任意代码。
==== Media File Renamer: Rename for better SEO (AI-Powered) ====
方便地重命名已上传的文件。