LAMP是目前比较流行的web框架,即Linux+Apache+Mysql+PHP的网站架构方案。docker是目前非常流行的虚拟化应用容器,可以为任何应用创建一个轻量级、可移植的容器。现在我们就来通过docker来部署LAMP环境,并且搭建wordpress博客系统来测试。
系统环境
操作系统版本:Centos 7.5 64位
Docker版本:18.06.1-ce(社区版)
ip地址:192.168.2.226
lamp网络ip地址:172.18.0.1
前提条件:
关闭selinux
已经安装好docker
1、下载mysql、php-apache镜像
docker pull mysql docker pull php:7.2-apache创建自定义网络lamp
docker network create lamp docker network ls![Centos 7使用docker部署LAMP搭建wordpress博客系统](Centos 7使用docker部署LAMP搭建wordpress博客系统.assets/787a595ef77002c873db3d3a70a8c220.png)
2、创建生成mysql、httpd-php容器的脚本
vim docker_lamp.sh
3、启动mysql、httpd-php容器
bash docker_lamp.sh mysql bash docker_lamp.sh httpd_php4、写一个php的首页文件来进行测试
echo "<?php phpinfo(); ?>" > /data/docker/www/index.php通过浏览器访问
5、修改mysql的密码加密方式为mysql_native_password
vim /data/docker/mysql/conf/docker_mysql.cnf [mysqld] default-authentication-plugin=mysql_native_password6、数据库操作
登陆mysql容器,创建、配置wordpress数据库
7、下载wordpress博客系统
wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz tar -zxvf wordpress-4.9.4-zh_CN.tar.gz -C /data/docker/www/8、配置wordpress博客
修改wp-config-sample.php配置
cd /data/docker/www/wordpress/ mv wp-config-sample.php wp-config.php vim wp-config.php #修改以下内容 / WordPress数据库的名称 */ define(\'DB_NAME\', \'wordpress\'); / MySQL数据库用户名 */ define(\'DB_USER\', \'wps\'); / MySQL数据库密码 */ define(\'DB_PASSWORD\', \'123456\'); / MySQL主机 */ define(\'DB_HOST\', \'172.18.0.1\'); / 创建数据表时默认的文字编码 */ define(\'DB_CHARSET\', \'utf8\'); / 数据库整理类型。如不确定请勿更改 */ define(\'DB_COLLATE\', \'\');mysql容器里安装mysqli扩展
docker exec -it httpd-php /bin/bash apt-get update apt-get install libpng-dev cd /usr/local/bin/ ./docker-php-ext-install gd mysqli ./docker-php-ext-enable gd mysqli exit docker restart httpd-php修改wp-db.php文件,将mysql_connect替换为mysqli_connect
cd /data/docker/www/wordpress/ sed -i "s/mysql_connect/mysqli_connect/g" wp-includes/wp-db.php11、重新配置wordpress博客
浏览器访问
按前面的步骤填写完连接mysql的配置信息后,看到如下页面,表示mysql连接成功。
需要手工创建wp-config.php文件,将以上信息贴入wp-config.php文件中
vim /data/docker/www/wordpress/wp-config.php
然后点击“现在安装”,出现以下页面
输入完以上信息后,点击“安装WordPress”
至此,wordpress博客系统就搭建完成了。