本文最后更新于 489 天前,其中的信息可能已经有所发展或是发生改变。
之前我利用打包好的LAMP Docker镜像搭建过一次WordPress博客平台,但是之后使用中每次服务器重启后,网站不知为何经常遇到起不来的情况,这次利用Docker-compose重新搭建一遍。
准备工作
搭建环境如下:
- CentOS 7.9
安装Docker:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
安装最新版本Docker-compose(目前为2.9.0):
curl -L "https://github.com/docker/compose/releases/download/v2.9.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
利用Docker-compose建立容器
建立工作目录并进入:
mkdir ~/webapp && cd ~/webapp
编写 docker-compose.yml
:
version: '3.3'
services:
db:
image: mysql:latest
volumes:
- "./mysql_data:/var/lib/mysql"
- "./mysql_conf:/etc/mysql/conf.d"
- "./mysql_log:/var/log/mysql"
restart: always
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: your-root-password
MYSQL_DATABASE: WordPress
MYSQL_USER: wordpress
MYSQL_PASSWORD: your-password
wordpress:
depends_on:
- db
links:
- db
image: webdevops/php-apache:8.0-alpine
ports:
- "8000:80"
- "4430:443"
volumes:
- "./wordpress:/app"
restart: always
配置WordPress
下载WordPress并解压修改权限:
wget -c https://cn.wordpress.org/latest-zh_CN.tar.gz -O - | tar -xz && chmod -R 777 wordpress
进入wordpress文件夹,将 wp-config-sample.php
复制一份,命名为 wp-config.php
,修改其中参数:
cd wordpress
cp wp-config-sample.php wp-config.php
vi wp-config.php
找到这段代码,修改配置如下:
// ** Database settings - You can get this info from your web host ** //
/** WordPress使用的数据库名称 */
define( 'DB_NAME', 'WordPress' );
/** 数据库用户名 */
define( 'DB_USER', 'wordpress' );
/** 数据库密码 */
define( 'DB_PASSWORD', 'your-password' );
/** 数据库主机名 */
define( 'DB_HOST', 'db' );
/** 用于创建数据库表的数据库字符集 */
define( 'DB_CHARSET', 'utf8' );
/** 数据库排序规则,不修改 */
define( 'DB_COLLATE', '' );
启动容器并访问测试
执行以下代码启动容器:
docker-compose -f "docker-compose.yml" up -d
浏览器访问服务器IP:8000端口测试,按步骤配置WordPress
配置持久对象缓存
修改 wp-config.php
添加如下内容并保存:
define('WP_REDIS_HOST', 'redis');
define('FS_METHOD','direct');
进入网站后台,左侧插件功能安装插件,搜索“Redis Object Cache”并安装。
如图所示,选择“Enable Object Cache”启用持久对象缓存:
疑难解答
-
MySQL 容器启动后提示:
[Warning] [MY-013360] [Server] Plugin sha256_password reported: ''sha256_password' is deprecated and will be removed in a future release. Please use caching_sha2_password instead'
在
docker-compose.yml
中,db容器下加一行如下代码:command: --default-authentication-plugin=mysql_native_password