侧边栏壁纸
博主头像
进一步,海阔天空 博主等级

进一步,海阔天空

  • 累计撰写 140 篇文章
  • 累计创建 19 个标签
  • 累计收到 7 条评论

目 录CONTENT

文章目录

Docker搭建WordPress站点

海阔天空
2022-05-28 / 0 评论 / 0 点赞 / 223 阅读 / 0 字

通过Docker快速搭建workpress站点和开发环境。

快速搭建WordPress站点

  • 安装docker和docker-compose
  • 编写docker-compose.yaml文件,内容如下:
version: "3.1"
services:
   mysql_youpudao:
     image: mysql:8.0.18
     restart: always
     command: ['mysqld','--character-set-server=utf8','--default-authentication-plugin=mysql_native_password']
     environment:
       MYSQL_ROOT_PASSWORD: root_password #设置mysqlroot用户的密码
     volumes:
       - /var/lib/mysql_youpudao:/var/lib/mysql
     ports:
       - "3308:3306"
   web_youpudao:
      image: wordpress:latest
      restart: always
      depends_on:
         - mysql_youpudao
      environment:
        WORDPRESS_DB_HOST: mysql_youpudao
        WORDPRESS_DB_PASSWORD: root_password #设置mysqlroot用户的密码,之所以要用root密码,是因为WordPress需要用root用户来创建WordPress数据库。
      ports:
         - "8110:80"
      working_dir: /var/www/html
      volumes:
         #测试环境可以这样设置
         - "./:/var/www/html/"
         #生产环境可以这样设置
         - "/var/www/test.fitit100.com:/var/www/html/"

在docker-compose.yaml文件所在目录运行以下命令安装服务即可。

docker-compose up -d

要删除服务,运行以下命令:

docker-compose down #不删除volumes
docker-compose down --volumes #删除volumes,注意备份!!!

访问http://localhost:8110即可进入WordPress设置界面了。

设置WordPress

首次访问需要设置管理员的用户名和密码等,设置一下即可。通过以下命令,查看docker volume的实际路径,进入该目录就可以看到WordPress站点的所有源文件了。如果要对网站进行定制开发,则可以把网站内容发布到这里即可。

docker inspect docker-youpudao_volume_youpudao_web

修改PHP配置

默认情况下,php的文件上传大小限制为2M,所以一些大的主题文件就无法上传了,主要进入docker修改php.ini配置即可。

$ docker exec -it docker-youpudao_web_youpudao_1 /bin/bash
$ cd /usr/local/etc/php
$ cp php.ini-production php.ini
$ vi php.ini

把upload_max_filesize=2M改大一点,然后重启容器即可。

更好的配置方式

上面的配置方式中,我们需要进docker容器去修改php的配置文件,这样非常不方便,更好的方式是通过docker volume的方式加载配置文件到容器中。在项目的根目录下,新建一个uploads.ini文件,输入如下内容:

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

然后修改docker-compose.yaml文件,把配置文件加载到容器中即可。

#省略...
    volumes:
      - "./:/var/www/html/"
      - "./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini"

另外,如果我们的域名是通过nginx来做转发的,还需要修改/etc/nginx/nginx.conf文件,添加client_max_body_size配置


user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;
    
    client_max_body_size 128m; 
    include /etc/nginx/conf.d/*.conf;
}

0

评论区