WordPress @ Docker | 用Docker安装WordPress
Docker 安装WordPress用到了两个容器php-fpm 和 mariadb, 采用Docker Compose链接两个容器.
php-fpm容器的安装
基于php-fpm容器, 在上面安装nginx并配置即可.
Dockerfile:
FROM php:fpm-alpine
RUN apk update&& apk add nginx && \
rm -f /etc/nginx/conf.d/default.conf && ln -s /nginx.conf /etc/nginx/conf.d/default.conf&&\
mkdir /run/nginx && \
docker-php-ext-install mysqli
COPY . /
WORKDIR /wordpress
EXPOSE 80
CMD ["/bin/sh","/entry.sh"]
其中涉及到的nginx链接php-fpm的配置文件如下
server {
listen 80 default_server;
listen [::]:80 default_server;
# for static
location / {
# 设置静态资源根目录
root /wordpress;
# 添加默认的首页
index index.php;
try_files $uri $uri/ /index.php?$args =404;
}
# for PHP
location ~ .php$ {
# WordPress根目录
root /wordpress;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# You may need this to prevent return 404 recursion.
location = /404.html {
internal;
}
}
对于server_name, ssl等其他配置请自由发挥.
这里主要注意不要忘记设置静态资源的根目录.
Docker Compose配置
要运行WordPress还需要数据库的支持, 这里采用mariadb, 用docker compose连接.
Docker Compose安装见此.
version: '3'
services:
db:
image: mariadb
environment:
- MYSQL_ROOT_PASSWORD=root_pwd
- MYSQL_DATABASE=wp_data
- MYSQL_USER=wp
- MYSQL_PASSWORD=insecure-pwd
wordpress:
build: wp
ports:
- 8080:80
涉及到的几个环境变量的作用:
| 环境变量 | 作用 |
|---|---|
| MYSQL_ROOT_PASSWORD | 设定数据库root的密码 |
| MYSQL_DATABASE | 设定新的数据库, 用于存储WordPress的数据 |
| MYSQL_USER | 设定新用户名, 用来个WordPress做连接的用户 |
| MYSQL_PASSWORD | 设定新用户密码 |
生产环境中请务必使用高强度的密码!
构建容器并初始化博客
构建容器:
docker-compose up
待其构建完成后, 在浏览器中输入http://localhost:8080(或者对应的服务器ip/域名)
按现在开始按照说明输入上面的填的数据库信息信息即可. 注意在数据库主机处填上db(即compose配置文件里面的数据库service名).
{% asset_img wordpress_install.png 安装效果 %}
完整代码
完整的docker-compose项目文档挂在了github上:wordpress_with_docker
See Also
Last modified on 2019-04-09