使用Docker搭建LAMP環境,上線wordpress

1,環境
系統版本:CentOS Linux release 7.5.1804
docker版本:Docker version 1.13.1

主機IP地址:192.168.116.128
前提條件:
關閉selinux
已經安裝好docker

2,拉取mysql和PHP鏡像

[root@localhost ~]# docker pull mysql
[root@localhost ~]#  docker pull php:7.2-apache

3,創建網絡

[root@localhost ~]# docker network create lamp
2126534bba917d449091c868584d71528b16f3c60d91088af8d82b3fc0c9ac6c

查看網絡

[root@localhost ~]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
dc97fa388a53        bridge              bridge              local
1e70fdb4b1ca        host                host                local
2126534bba91        lamp                bridge              local
c40bc4ba2760        none                null                local

4,創建生產mysql和php容器的腳本

[root@localhost ~]# 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=Test1234 \
    -d mysql:latest --character-set-server=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

5,啓動mysql和PHP容器

[root@localhost ~]# bash docker_lamp.sh mysql
cd91996a5842a82a3368598f8d38f76e4a8879bb93c2ed77bfa8e7fd3085c377
[root@localhost ~]# bash docker_lamp.sh httpd_php
c456a5114903bd20cbc3484d4232ca58e57af4c92ea0464df01f2b49f869946c
[root@localhost ~]# 

查看容器

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                               NAMES
6e459971afa0        php:7.2-apache      "docker-php-entryp..."   3 seconds ago        Up 2 seconds        0.0.0.0:80->80/tcp                  httpd-php
7ba5e9464247        mysql:latest        "docker-entrypoint..."   About a minute ago   Up About a minute   0.0.0.0:3306->3306/tcp, 33060/tcp   mysql

6,寫一個php的首頁文件來進行測試

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

通過瀏覽器訪問http://192.168.116.128
在這裏插入圖片描述
7,修改mysql的密碼加密方式爲mysql_native_password

[root@localhost ~]# vim /data/docker/mysql/conf/docker_mysql.cnf
[mysqld]
default-authentication-plugin=mysql_native_password

8,數據庫的操作
登錄數據庫容器,創建、配置wordpress數據庫

[root@localhost ~]# docker exec -it mysql /bin/bash
root@7ba5e9464247:/# mysql -uroot -pTest1234
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> flush privileges;
mysql> exit
root@7ba5e9464247:/# exit

9,下載wordpress博客

[root@localhost ~]# wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
[root@localhost ~]# tar -xzvf wordpress-4.9.4-zh_CN.tar.gz -C /data/docker/www/

10,配置wordpress博客
1,修改wp-config-sample.php配置

[root@localhost ~]# cd /data/docker/www/wordpress/
[root@localhost wordpress]# mv wp-config-sample.php wp-config.php 
[root@localhost wordpress]# 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', '');

2,mysql容器裏安裝mysqli擴展

[root@localhost ~]# docker exec -it httpd-php /bin/bash
root@6e459971afa0:/var/www/html# apt-get update
root@6e459971afa0:/var/www/html# apt-get install libpng-dev
root@6e459971afa0:/var/www/html# cd /usr/local/bin/
root@6e459971afa0:/usr/local/bin# ./docker-php-ext-install gd mysqli
root@6e459971afa0:/usr/local/bin# ./docker-php-ext-enable gd mysqli
root@6e459971afa0:/usr/local/bin# exit
[root@localhost ~]# docker restart httpd-php

3,修改wp-db.php文件,將mysql_connect替換爲mysqli_connect

[root@localhost ~]# cd /data/docker/www/wordpress/
[root@localhost wordpress]# sed -i "s/mysql_connect/mysqli_connect/g" wp-includes/wp-db.php

11,網頁配置wordpress
關閉防火牆
瀏覽器訪問http://192.168.116.128/wordpress
按前面的步驟填寫完連接mysql的配置信息後,看到如下頁面,表示mysql連接成功。

需要手工創建wp-config.php文件,將以上信息貼入wp-config.php文件中
vim /data/docker/www/wordpress/wp-config.php

然後點擊“現在安裝”,出現以下頁面

輸入完以上信息後,點擊“安裝WordPress”

至此,docker搭建lamp上線wordpress博客系統就搭建完成了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章