本文主要向您展示如何使用Docker和Traefik构建WordPress。内容简单易懂,条理清晰。希望能帮你解开疑惑。让边肖带领大家学习学习文章《如何使用Docker和Traefik构建WordPress》。
使用Docker、Compose和Traefik构建WordPress,完整的操作时间应该在十分钟以内。
为什么是WordPress?
每当我们谈到CMS软件和丰富的社区资源,我们都会情不自禁地想到一个“万金油”:WordPress,根据官方数据:
超过6000万人选择了WordPress来为他们称之为“家”的网站供电
成千上万的开发者、内容创作者和网站所有者聚集在全球436个城市的每月例会上。
WordPress支持33%的互联网。
很多人对它的印象还停留在博客系统上,执行缓慢,安全性差,代码臃肿。不过其实经过十几年的迭代,它的大版本已经来到了5.0(主流的PHP运行时也来到了7.0时代),性能也不再是问题。只要做好适当的防护,大部分安全问题都可以消除。
Emmm,代码真的很臃肿。
基于官方形象
提供了官方容器映像,可以直接使用以下命令下载映像:
docker pull wordpress
一个
但是,为了更好地配置和使用,我们使用compose将以下内容排列并保存为docker-compose.yml:
版本: '3 '
服务:
wp:
image: ${WP_IMAGE}
restart:始终
网络:
-崔菲克
环境:
WORDPRESS _ DB _ HOST : $ { DB _ HOST }
WORDPRESS _ TABLE _ PREFIX : $ { WP _ DB _ PREFIX }
WORDPRESS _ DB _ NAME : $ { DB _ NAME }
WORDPRESS _ DB _ USER : $ { DB _ USER }
WORDPRESS _ DB _ password : $ { DB _ PASS }
卷:
#如果您需要自定义上传的文件大小
# - ./config/PHP . conf . uploads . ini :/usr/local/etc/PHP/conf . d/uploads . ini
- ./wp-app:/var/www/html
标签:
-" traefik . enable=true "
-' traefik . frontend . rule=Host : $ { WP _ DOMANS } '
-' traefik . frontend . Entryppoints=https,http '
mariadb:
image: ${DB_IMAGE}
restart:始终
container_name: ${DB_HOST}
网络:
-崔菲克
环境:
MYSQL_DATABASE: ${DB_NAME}
MYSQL_USER: ${DB_USER}
不间断空格
; MYSQL_PASSWORD: ${DB_PASS}
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASS}
volumes:
- ./data:/var/lib/mysql
pma:
image: ${PMA_IMAGE}
restart: always
networks:
- traefik
environment:
MYSQL_USER: ${DB_USER}
MYSQL_PASSWORD: ${DB_PASS}
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASS}
PMA_HOST: ${DB_HOST}
labels:
- "traefik.enable=true"
- "traefik.frontend.rule=Host:${PMA_DOMAIN}"
networks:
traefik:
external: true
如果你还不会使用 Traefik ,可以翻看我之前的文章,这里不做过多赘述。
为了可维护性,我们将容器镜像版本信息,应用域名,数据库配置等抽象为单独的环境配置文件 .env,内容示例:
WP_IMAGE=wordpress:5.1.1-php7.3-apache
WP_DOMAINS=wp.lab.com,wp.lab.io
WP_DB_PREFIX=wp
DB_IMAGE=mariadb:10.3.8
DB_HOST=wp-db
DB_NAME=wordpress
DB_USER=wordpress
DB_PASS=wordpress
DB_ROOT_PASS=soulteary
PMA_IMAGE=phpmyadmin/phpmyadmin:4.8.2
PMA_DOMAIN=pma.wp.lab.com,pma.wp.lab.io
当两个文件都保存完毕之后,我们执行 docker-compose up 命令,你将会看到许多日志信息,当看到类似下面的信息时,WordPress 环境便准备就绪啦。
wp-db |
wp-db | MySQL init process done. Ready for start up.
wp-db |
wp-db | 2019-04-06 16:26:48 0 [Note] mysqld (mysqld 10.3.8-MariaDB-1:10.3.8+maria~jessie) starting as process 1 ...
wp-db | 2019-04-06 16:26:48 0 [Note] InnoDB: Using Linux native AIO
wp-db | 2019-04-06 16:26:48 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
wp-db | 2019-04-06 16:26:48 0 [Note] InnoDB: Uses event mutexes
wp-db | 2019-04-06 16:26:48 0 [Note] InnoDB: Compressed tables use zlib 1.2.8
wp-db | 2019-04-06 16:26:48 0 [Note] InnoDB: Number of pools: 1
wp-db | 2019-04-06 16:26:48 0 [Note] InnoDB: Using SSE2 crc32 instructions
wp-db | 2019-04-06 16:26:48 0 [Note] InnoDB: Initializing buffer pool, total size = 256M, instances = 1, chunk size = 128M
wp-db | 2019-04-06 16:26:48 0 [Note] InnoDB: Completed initialization of buffer pool
wp-db | 2019-04-06 16:26:48 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
wp-db | 2019-04-06 16:26:48 0 [Note] InnoDB: 128 out of 128 rollback segments are active.
wp-db | 2019-04-06 16:26:48 0 [Note] InnoDB: Creating shared tablespace for temporary tables
wp-db | 2019-04-06 16:26:48 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
wp-db | 2019-04-06 16:26:48 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
wp-db | 2019-04-06 16:26:48 0 [Note] InnoDB: 10.3.8 started; log sequence number 1630833; transaction id 21
wp-db | 2019-04-06 16:26:48 0 [Note] Plugin 'FEEDBACK' is disabled.
wp-db | 2019-04-06 16:26:48 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
wp-db | 2019-04-06 16:26:48 0 [Note] Server socket created on IP: '::'.
wp-db | 2019-04-06 16:26:48 0 [Note] InnoDB: Buffer pool(s) load completed at 190406 16:26:48
wp-db | 2019-04-06 16:26:48 0 [Warning] 'proxies_priv' entry '@% root@e97787886b74' ignored in --skip-name-resolve mode.
wp-db | 2019-04-06 16:26:48 0 [Note] Reading of all Master_info entries succeded
wp-db | 2019-04-06 16:26:48 0 [Note] Added new Master_info '' to hash table
wp-db | 2019-04-06 16:26:48 0 [Note] mysqld: ready for connections.
wp-db | Version: '10.3.8-MariaDB-1:10.3.8+maria~jessie' socket: '/var/run/mysqld/mysqld.sock' port: 3306 mariadb.org binary distribution
wp_1 | AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.23.0.8. Set the 'ServerName' directive globally to suppress this message
此时启动浏览器,打开我们配置文件中配置好的域名(WP_DOMAIN),便可以开始著名的“三分钟”安装了。
填写适当信息,一路 Next ,WordPress 就安装成功了。
后续便是具体的应用配置,以及性能、安全方面的优化啦。
其他
如果你有操作数据库的需求,又不想下载数据库工具或者使用命令行进行操作,可以使用 **PHPMyAdmin ** ,同样的,在浏览器中打开之前配置文件中的 PMA 域名地址(PMA_DOMAIN),就可以进行操作了。
不过需要注意的是,需要使用 root 和 root password 进行登录,因为默认情况下,Mariadb 未对其他用户账号进行远程访问授权。
以上是“如何使用Docker和Traefik搭建WordPress”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/104211.html