Docker 部署 WordPress
1. Docker 创建容器
确保已经安装 Docker,如果没有安装请搜索在你的系统上安装 Docker,当前测试系统是 Debian 11.5。
# 安装 MySQL 5.7
docker container run \
-d \
--name wordpressdb \
--env MYSQL_ROOT_PASSWORD=123456 \
--env MYSQL_DATABASE=wordpress \
mysql:5.7
# 安装 WordPress,把文件保存在当前路径的 ./wordpress 路径下
# 将 8081 可以改为你需要暴露的端口
docker container run \
-d \
-p 8081:80 \
--name wordpress \
--env WORDPRESS_DB_PASSWORD=123456 \
--link wordpressdb:mysql \
--volume "$PWD/wordpress":/var/www/html \
wordpress
然后编辑 ./wordpress/wp-config.php
文件中的用户名和密码:
define( 'DB_NAME', getenv_docker('WORDPRESS_DB_NAME', 'wordpress') );
define( 'DB_USER', getenv_docker('WORDPRESS_DB_USER', 'root') );
define( 'DB_PASSWORD', getenv_docker('WORDPRESS_DB_PASSWORD', '123456') );
打开地址即可即可使用 WordPress。
2. 修改最大上传限制
修改的 PHP 配置,进入容器:
docker exec -it wordpress /bin/bash
下面的命令执行在 Docker 容器内:
cd /usr/local/etc/php/
# 查看默认最大限制
cat php.ini-production | grep upload_max_filesize
cat php.ini-production | grep post_max_size
cat php.ini-production | grep memory_limit
# 生成 php.ini
cp php.ini-production php.ini
sed -i "s/upload_max_filesize = 2M/upload_max_filesize = 128M/g" php.ini
sed -i "s/post_max_size = 8M/post_max_size = 256M/g" php.ini
sed -i "s/memory_limit = 128M/memory_limit = 512M/g" php.ini
exit
然后重启 WordPress 镜像:
docker restart wordpress
现在已经配置完成了,打开地址即可访问,上传限制也可以该为你设定的其他值。
3. WordPress 容器内安装软件
进入容器:
docker exec -it wordpress /bin/bash
下面的操作都在容器中进行。
先修改软件镜像源,可以使用下面的命令修改为清华源(当前最新的 WordPress 是基于 Debian 11,其他版本参考其他镜像地址):
mv /etc/apt/sources.list /etc/apt/sources.list-bak
echo '
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
' > /etc/apt/sources.list
测试安装 vim
:
apt install -y vim