稷然如此

  • 首页
  • 文章分类
    • AI
    • Android
    • Java
    • Shell
    • Vue
    • C#
    • Python
    • 数据库
    • 组件
    • 其他
    • Game
  • 常用命令
    • Docker
    • Git
    • Linux
  • 操作系统
    • CentOS
    • Ubuntu
    • Windows
    • Kylin
  • 工具
    • IntelliJ IDEA
    • Visual Studio Code
稷然如此
不积跬步,无以至千里
  1. 首页
  2. 常用命令
  3. Docker
  4. 正文

CentOS 部署 Docker + WordPress

2023年7月10日 1152点热度 0人点赞

一、安装Docker

参考文章:CentOS 安装 Docker

 

二、安装WordPress

1.拉取wordpress镜像
docker pull wordpress
2.拉取mysql镜像,以5.6版本为例
docker pull mysql:5.6 # 如果需要获取最新版本,命令为:docker pull mysql:latest
3.查看镜像是否拉取成功
docker images
4.检查mysql的3306端口是否被占用
netstat -antp |  grep  "3306" | grep -v "grep"
5.启动mysql
docker run -d --name wpdb -p 3306:3306 --restart=always -e MYSQL_ROOT_PASSWORD=abc_123 mysql:5.6
# -d:docker后台运行mysql:5.6容器
# --name:为容器取名
# -e MYSQL_ROOT_PASSWORD=abc_123:为容器mysql设置root环境变量,即设置密码
# -p 3306:3306:将本机3306端口映射到容器中的3306端口,如果本机上安装有mysql且已经运行,为避免端口占用,请将第一个3306替换为其他端口。
# --restart=always:自启动
6.启动wordpress
docker run -d --name AkimBoxWeb --link wpdb:mysql -p 80:80 --restart=always wordpress
# -d:docker后台运行
# --name:为容器取名
# --link:可以用来链接2个容器,使得源容器(被链接的容器)和接收容器(主动去链接的容器)之间可以互相通信,并且接收容器可以获取源容器的一些数据,如源容器的环境变量
# wpdb:mysql:上面创建mysql容器名称
# 80:80:将本机80端口映射到容器中的80端口,可自行更改访问地址,替换第一个80为其他端口即可
# wordpress:wordpress镜像名称
# --restart=always:自启动
7.查看容器是否已运行
docker ps
8.配置数据库及放开mysql的root账户为可远程
进入容器mysql
docker exec -it AkimBoxWeb mysql -u root -p
# AkimBoxWeb:创建的wordpress容器
输入mysql密码,密码为第5步创建容器时的密码
创建数据库
create database akim-box-web-db;
使用mysql数据库,修改root账户为可远程
use mysql;
设置root账户为可远程
update user set Host='%' where User='root';
# 会报错【ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'】,不予理会,继续执行下面一句sql
flush privileges;
exit;
9.进入wordpress容器
docker exec -it wordpress /bin/bash
10.升级软件包
apt upgrade
11.安装vim
apt-get install vim
# 如果报错E: Unable to locate package vim,需要先更新同步/etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,执行命令:apt-get update,然后再执行安装vim命令
12.修改wordpress默认数据库为第8步创建的数据库
vim wp-config-docker.php
将数据库名改为akim-box-web-db
define( 'DB_NAME', getenv_docker('WORDPRESS_DB_NAME', 'akim-box-web-db') );
将数据库账号修改为root
define( 'DB_USER', getenv_docker('WORDPRESS_DB_USER', 'root') );
将密码修改为第5步创建myql容器时设置的密码
define( 'DB_PASSWORD', getenv_docker('WORDPRESS_DB_PASSWORD', 'abc_123') );
保存
esc + :wq
退出容器
exit
13.重启docker容器
docker restart(wordpress容器ID)
14.打开访问地址,创建数据库,有可能localhost创建不成功,把连接地址改为IP地址试试
docker inspect 容器ID | grep "IPAddress"
15.修改wordpress文件上传大小限制
1.进入wordpress容器
docker exec -it 容器id /bin/bash
2.查找php.ini文件所在配置位置(Configuration File (php.ini) Path)和加载位置(Loaded Configuration File:)一般加载位置 都是  none
php --ini
3.复制配置文件,以便php.ini配置生效
cp /usr/local/etc/php/php.ini-production /usr/local/etc/php/php.ini
4.修改刚才复制的php.ini
vim /usr/local/etc/php/php.ini
找到以下关键字,修改值
upload_max_filesize = 20M   #文件大小限制
post_max_size = 20M             #post大小限制
5.重启容器
docker restart 容器id
16.设置SSL,做域名解析的时候,也需要添加对应SSL域名的A记录。
1.进入wordpress容器
docker exec -it 容器id /bin/bash
2.编辑wp-config.php文件(该文件在初始化数据库连接完成后自动生成,也就是wordpress首次运行配置语言、数据库连接完成后生成),新增如下内容:
$_SERVER['HTTPS'] = 'on';
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);
3.重启容器
docker restart 容器id
4.Nginx配置参考
server {
        listen          80;
        server_name     www.xxx.com xxx.com;
        return 301 https://$server_name$request_uri;
    }    

    server {
        listen                          443 ssl;
        server_name                     www.xxx.com xxx.com;
        ssl_certificate                 ../cert/web-server.pem;
        ssl_certificate_key             ../cert/web-server.key;
        ssl_session_timeout             5m;
        ssl_protocols                   TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers                      ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DHE;
        ssl_prefer_server_ciphers       on;

        #charset koi8-r;
        #access_log logs/host.access.log main;
        #
        location / {
            proxy_set_header    Host                    $host;
            proxy_set_header    X-Real-IP               $remote_addr;
            proxy_set_header    X-Forwarded-For         $proxy_add_x_forwarded_for;
            proxy_set_header    X-Forwarded-Proto       $scheme;
            proxy_pass          http://127.0.0.1:8080;
        }
    }

 

标签: CentOS Docker WordPress
最后更新:2024年7月27日

Akim

犇 骉 Java、C#、Python、Go、Android、MiniProgram、Bootstrap、Vue2

点赞
下一篇 >
文章目录
  • 一、安装Docker
  • 二、安装WordPress

Copyright © 2025 aianran.com All Rights Reserved.

免责申明 | 隐私政策 | 服务条款 | 关于我们

黔ICP备2023008200号-1

贵公网安备 52010202003594号