基于docker搭建wordpress博客网站平台
WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把 WordPress当作一个内容管理系统(CMS)来使用。
WordPress是一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用PHP语言和MySQL数据库开发的。用户可以在支持 PHP 和 MySQL数据库的服务器上使用自己的博客。
WordPress有许多第三方开发的免费模板,安装方式简单易用。不过要做一个自己的模板,则需要你有一定的专业知识。比如你至少要懂的标准通用标记语言下的一个应用HTML代码、CSS、PHP等相关知识。
WordPress官方支持中文版,同时有爱好者开发的第三方中文语言包,如wopus中文语言包。WordPress拥有成千上万个各式插件和不计其数的主题模板样式。
基于docker构建wordpress博客网站平台
- 自定义网络
[root@docker ~]# docker network create lnmp
2b4217d39d5e438f1012c39a892053460c8cddf4d2f59e8e24161617fd3834b1
[root@docker ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
e954af0a31d1 bridge bridge local
8ec99c72fcb1 host host local
2b4217d39d5e lnmp bridge local
a35525e0158b none null local
2.创建mysql数据库容器
[root@docker ~]# docker run -itd --name lnmp_mysql --net lnmp -p 3306:3306 --mount src=mysql-vol,dst=/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql --character-set-server=utf8
62a0bccd72a303f4c375a36f5523b6383aeb0c6a76c358c59410bf022622c5f5
刚才由于设置指定了数据卷,可以查看到MySQL的数据卷
[root@docker ~]# docker volume ls
DRIVER VOLUME NAME
local mysql-vol
mysql的数据都放在这个数据卷目录下
[root@docker ~]# ls /var/lib/docker/volumes/mysql-vol /_data/
查看mysql的日志
[root@docker _data]# docker logs lnmp_mysql
查看mysql的进程
[root@docker _data]# docker top lnmp_mysql
3.创建所需的数据库
[root@docker mysql]# docker exec lnmp_mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD" -e"create database wp"'
[root@docker mysql]# yum install mysql
[root@docker ~]# mysql -h192.168.30.22 -uroot -p
Enter password:
出现报错:
ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory
原因应该是mysql版本问题
解决方案
[root@docker ~]# docker exec -it lnmp_mysql bash
root@63259bee4195:/# mysql -uroot -p123456
mysql> alter user 'root'@'%' identified with mysql_native_password by 'root';
Query OK, 0 rows affected (0.04 sec)
[root@docker ~]# mysql -h192.168.30.22 -uroot -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 22
Server version: 8.0.16 MySQL Community Server - GPL
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| wp |
+--------------------+
5 rows in set (0.02 sec)
4.创建PHP环境容器
[root@docker ~]# docker run -itd --name lnmp_web --net lnmp -p 88:80 --mount type=bind,src=/app/wwwroot,dst=/var/www/html richarvey/nginx-php-fpm
[root@docker ~]# ls /app/wwwroot/
- html index.html
5.以wordpress博客为例测试
[root@docker ~]# wget https://cn.wordpress.org/wordpress-4.7.4-zh_CN.tar.gz
[root@docker ~]# tar zxvf wordpress-4.7.4-zh_CN.tar.gz -C /app/wwwroot/
[root@docker ~]# ls /app/wwwroot/
- html index.html wordpress
[root@docker ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
64639d9f9ec7 richarvey/nginx-php-fpm "docker-php-entrypoi…" 5 minutes ago Up 5 minutes 443/tcp, 9000/tcp, 0.0.0.0:88->80/tcp lnmp_web
http://IP:88/wordpress
把php的页面修改数据库密码更改一下
[root@docker ~]# cp /app/wwwroot/wordpress/wp-config-sample.php /app/wwwroot/wordpress/wp-config.php
cp:是否覆盖"/app/wwwroot/wordpress/wp-config.php"? y
[root@docker ~]# vim /app/wwwroot/wordpress/wp-config.php
输入wp\admin进入后台