wordpress 架站过程

安装 docker

docker 常用操作

docker run xxxx -d 名称 # 后台运行一个容器
docker run xxxx -it sh # 前台运行一个容器
docker rmi -f xxxx 强制删除镜像
docker start xxxx
docker restart xxxx 
docker stop xxxx 停止窗口
docker rm  xxxx 删除停止的容器
docker exec -it nginx sh # 挂载入容器, 使用 exit 退出
docker logs nginx # 看日志 
docker logs --tail 10 nginx # 看最后几条目录
docker cp uploads.ini wordpress:/usr/local/etc/php/conf.d/ # 复制文件进容器或反向
docker ps -sa 列出所有容器
docker inspect nginx # 查看容器的配置 

常用 linux 操作

mv 移动文件
cp 复制文件
mkdir -p 创建文件夹

设置网络

docker network create -d bridge xWeb

创建一个 network 给 wordpress 与 mariadb 一起使用

安装 mariabd

docker run --name mariadb \ # 容器名称
    --network xWeb \ # 容器使用的网络, 这时准备与 wordpress 使用同一个网络
    -v /home/docker/mariadb/var/lib/mysql:/var/lib/mysql \ # 将容器中数据的目录保存至外部目录。
    -e MYSQL_ROOT_PASSWORD=xxxx \ root r 密码
    -e MYSQL_DATABASE=wordpress \ 自动创建一个库
    -e MYSQL_USER=wordpress \ 自动创建一位用户
    -e MYSQL_PASSWORD=xxxx \ 自动创建用户的密码
    -d mariadb
  • 因为只准备为 wordpress 使用,所以就不将 mysql 端口暴露出来了
  • 使用 -v 参数时发生的一个问题。使用 -e MYSQL_DATABASE=wordpress 启动容器时会自动创建库,但是设置 -v 后会无法创建库, 使用 -e MYSQL_USER 会自动创建用户,但是设置 -v 后也会无法创建用户
  • 原来准备将数据保存到外部目录的。 有需要的话,在容器中 dump 出来然后 docker cp 出来
  • 使用自动创建用户,启动容器后,wordpress 访问会有问题,需要进行如下操作
    docker exec -it mariadb sh # 进入容器
    mysql -u root -p xxxx # 登录 mysql 
    ALTER USER 'wordpress'@'%' IDENTIFIED BY 'xxxx'; 重新设置一次密码
    

安装 wordpress

docker run --name wordpress -p 8081:80 --network xWeb -d wordpress

# 也可以不暴露端口,可以与 nginx 使用同一个 network, 然后在 nginx 中暴露端口。 不过考虑到 nginx 也要中转其它应用的端口数据。 所以 wordpress 开放一个外部端口至内部的 80 , 当然也可以使用  localip:8081:80 。 现在 8081 也会暴露到公网中了

# 设置 wordpress 时,如果设置首页地址时,页面挂了, 可以要进入 docker 数据库手工设置首页
update wp_options set option_value = 'http://www.abc.com' where option_name = 'siteurl' or option_name = 'home';

# 首页设置 http://www.abc.com, 如果 nginx 中使用了 ssl , 然后将数据转到 wordpress:80 ,那么访问地址可以是 https://www.abc.com, 但是页面内容中引用还是 http://www.abc.com/xxx.css 之类的, 浏览器提示混合内容。 这时安装 Really Simple SSL 插件可以将页面中的链接都格式化为 https://www.abc.com/xxx.css

设置上传文件大小限制

vim uploads.ini

file_uploads = On
memory_limit = 64M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 600

docker cp uploads.ini wordpress:/usr/local/etc/php/conf.d/ # 将上传配置复制到 dcoker 中
docker restart wordpress

安装 nginx

mkdir -p /home/docker/nginx # 创建目录,准备用来挂载到 docker 中,用来保存自定义的配置文件 
docker pull nginx:latest

# docker run --name nginx \
    -p 80:80 -p 443:443 \
    -v /docker/nginx/conf.d:/etc/nginx/conf.d \ # 将外部的 conf.d 目录挂载入容器
    -d nginx 

docker exec -it nginx bash

# 因为 nginx 容器的 nginx.conf 会载入 conf.d 下的所有 conf 配置 , 所以在外部配置一个目录并挂入容器, 用来存放工作配置会方便一些。
在 conf.d 下修改配置后,然后 docker restart nginx 就可以了


其它

...

上一篇
下一篇