使用Docker来安装mysql和WordPress

2018-10-14 74 0

由于服务器上已经安装了MySQL作为主要的服务使用,为了不影响线上服务,准备另起一个MySQL来给WordPress使用。

MySQL单独配置还挺麻烦的,这个最适合使用Docker来部署。

  1. docker run --name mysql -p 3308:3306 -v /DATA/public/www/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

具体解释参考 Docker实例:部署mysql

wordpress也可以通过docker安装,自带了php,nginx和wordpress,由于服务器上已经安装了php和nginx,就没有直接使用docker,于是手动安装wordpress。

需要注意的是,安装wordpress时需要实现在mysql中create database,否则会报错说mysql无法连接。

安装完成后是英文的,需要下载简体中文语言包,在wp-config.php中加入下面几行:

  1. define('WPLANG', 'zh_CN');
  2. define("FS_METHOD","direct");
  3. define("FS_CHMOD_DIR", 0777);
  4. define("FS_CHMOD_FILE", 0777);

需要将wordpress目录下所有文件的所有者改为php运行用户nobody。

一键安装

先建立一个文件 ~/wodpress/docker-compose.yml

  1. version: '3.3'
  2. services:
  3. db:
  4. image: mysql:5.7
  5. volumes:
  6. - db_data:/home/ubuntu/wordpress/mysql
  7. restart: always
  8. environment:
  9. MYSQL_ROOT_PASSWORD: qwert54321
  10. MYSQL_DATABASE: wordpress
  11. MYSQL_USER: wordpress
  12. MYSQL_PASSWORD: wordpress
  13. wordpress:
  14. depends_on:
  15. - db
  16. image: wordpress:latest
  17. ports:
  18. - "9090:80"
  19. restart: always
  20. environment:
  21. WORDPRESS_DB_HOST: db:3306
  22. WORDPRESS_DB_USER: wordpress
  23. WORDPRESS_DB_PASSWORD: wordpress
  24. volumes:
  25. - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
  26. volumes:
  27. db_data:

php默认上传大小为2M,会导致很多插件之类的上传不成功,于是新建一个uploads.ini更改上传大小:

  1. file_uploads = On
  2. memory_limit = 500M
  3. upload_max_filesize = 64M
  4. post_max_size = 64M
  5. max_execution_time = 600

然后启动

  1. docker-compose up -d

重启:

  1. docker-compose down
  2. docker-compose up -d

放弃容器中的所有修改

  1. docker-compose up -d --force-recreate