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

1、下载mysql、php-apache镜像

docker pull mysql

docker pull php:7.2-apache

创建自定义网络lamp

docker network create lamp

docker network ls

ab10f0657184bc4480185d3eba8535d2.png

2、创建生成mysql、httpd-php容器的脚本

vim docker_lamp.sh

#!/bin/bash

function mysql()

{

docker run --name mysql --net lamp -p 3306:3306 \

-v /data/docker/mysql/data:/var/lib/mysql \

-v /data/docker/mysql/conf:/etc/mysql/conf.d \

-v /data/docker/mysql/logs:/logs \

-e MYSQL_ROOT_PASSWORD=test123456 \ #设置mysql的root密码

-d mysql:latest --character-set-server=utf8 #使用utf8编码

}

function httpd_php()

{

docker run --name httpd-php --net lamp -p 80:80 \

-v /data/docker/httpd/conf:/etc/apache2/sites-enabled \

-v /data/docker/www:/var/www/html \

-v /data/docker/httpd/logs:/var/log/apache2 \

-d php:7.2-apache

}

$1

3、启动mysql、httpd-php容器

sh docker_lamp.sh mysql

sh docker_lamp.sh httpd_php

4、写一个php的首页文件来进行测试

echo "<?php phpinfo(); ?>" > /data/docker/www/index.php

通过浏览器访问http://192.168.2.226

9e6951e58dce9bd77cea4d5dac8d53bb.png

5、修改mysql的密码加密方式为mysql_native_password

vim /data/docker/mysql/conf/docker_mysql.cnf

[mysqld]

default-authentication-plugin=mysql_native_password

如果不修改加密方式的话,低版本的mysql客户端登陆时会报以下错误

cf56083b8fd6cc6609e1521afaced1f2.png

6、数据库操作

登陆mysql容器,创建、配置wordpress数据库

docker exec -it mysql /bin/bash

mysql -uroot -ptest123456

mysql> create database wordpress;

mysql> create user wps@localhost identified by '123456';

mysql> grant all privileges on wordpress.* to wps@localhost;

mysql> create user wps@172.18.0.1 identified by '123456';

mysql> grant all privileges on wordpress.* to wps@172.18.0.1;

mysql> alter user wps@172.18.0.1 identified with mysql_native_password by '123456';

mysql> exit

exit

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博客

浏览器访问http://192.168.2.226/wordpress

fe69b854eb7148c7b6a868a969e2b2d2.png

4a13f4fc0f0c60f3ec763374ea6496ac.png

提交后发现报500错误

8d5b22b2e1e5e4bcb884ba1e3212c87a.png

刷新页面后报错,提示:表前缀不能为空

09d1737a6bdc25e3cf671d9ee8033b0f.png

前面数据库的信息填写都正确,又试了一次还是报这个错。

即然如此,我们就直接修改wp-config-sample.php配置文件吧。

9、修改wp-config-sample.php配置

cd /data/docker/www/wordpress/

vim wp-config-sample.php #修改以下内容

/** WordPress数据库的名称 */

define('DB_NAME', 'wordpress');

/** MySQL数据库用户名 */

define('DB_USER', 'wps');

/** MySQL数据库密码 */

define('DB_PASSWORD', '123456');

/** MySQL主机 */

define('DB_HOST', 'mysql');

/** 创建数据表时默认的文字编码 */

define('DB_CHARSET', 'utf8');

/** 数据库整理类型。如不确定请勿更改 */

define('DB_COLLATE', '');

将文件名改为wp-config.php

mv wp-config-sample.php wp-config.php

再用浏览器访问http://192.168.2.226/wordpress

bf4719e1b881d68d1f1359f33354d5e9.png

查阅资料后发现,原来从PHP5.0开始就不推荐使用mysql_connect()函数了,而到了php7.0则直接废弃了该函数,替代的函数是mysqli_connect(),终于找到问题原因了。

10、Call to undefined function mysql_connect()问题解决方法

进入到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

编写一个测试连接mysql的php

vim /data/docker/www/test.php

echo "Hello PHP
";

$conn = mysqli_connect("mysql","wps","123456");

if(!$conn){

echo "连接数据库失败";

}else{

echo "连接数据库成功";

}

phpinfo();

?>

浏览器访问http://192.168.2.226/test.php

e194ac3cdb511af324c7ea05f6a28638.png

修改wp-db.php文件,将mysql_connect替换为mysqli_connect

cd /data/docker/www/wordpress/

sed -i "s/mysql_connect/mysqli_connect/g" wp-includes/wp-db.php

mv wp-config.php wp-config-sample.php

11、重新配置wordpress博客

浏览器访问http://192.168.2.226/wordpress

按前面的步骤填写完连接mysql的配置信息后,看到如下页面,表示mysql连接成功。

af926ad70e2530ad5326c9dc438e980a.png

需要手工创建wp-config.php文件,将以上信息贴入wp-config.php文件中

vim /data/docker/www/wordpress/wp-config.php

3936a8e610b73da1d064f4275dc952e5.png

然后点击“现在安装”,出现以下页面

d02422a0c525827297575879e3bfce4c.png

输入完以上信息后,点击“安装WordPress”

48374cfc2749a2049f9b5cda14172ab0.png

b6d91aea338250f129d3ad51c6d0d5d3.png

ba1afd5c635f1278fae942b08f0001ae.png

至此,wordpress博客系统就搭建完成了。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐