docker学習---Docker LAMP環境の構築

5260 ワード

1、環境
システムバージョン:CentOS Linux release 7.4.1708
 
dockerバージョン:docker-ce-18.09
 
ホストIP:192.168.121.121
 
2、MySQLとPHPミラーをロードする
$ docker pull mysql

$ docker pull php:7.2-apache

 
3、ネットワークの作成
$ docker network create lamp
6549dbc105bba9e51d4d0b13df7ae17916c3628f5a07c81551203fb63c15892e

 
ネットワークの表示
$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
be6ab252106a        bridge              bridge              local
3f26bc9f85e3        host                host                local
6549dbc105bb        lamp                bridge              local
7f2db0f13ffc        none                null                local

 
4、mysqlとphpコンテナを生成するスクリプトを作成する
$ vi 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容器を起動する
$ sh docker_lamp.sh mysql
9c2362b5e32f24bd9e21ae13f8accb6d35c359621dc5b5e36a273d1e64424920

$ sh docker_lamp.sh httpd_php
d466d5de8d133343d3e591b598c4f5b5958618e47f841ebfeaa81cae56ad6139

 
コンテナの表示
$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
d466d5de8d13        php:7.2-apache      "docker-php-entrypoi…"   3 seconds ago       Up 1 second         0.0.0.0:80->80/tcp                  httpd-php
9c2362b5e32f        mysql:latest        "docker-entrypoint.s…"   24 seconds ago      Up 22 seconds       0.0.0.0:3306->3306/tcp, 33060/tcp   mysql

 
6、テストページを書いてテストする
ディレクトリに権限を付与
# chown -R dkuser:dkuser /data

 
テストページの書き込み
$ echo "" > /data/docker/www/index.php

 
ブラウザアクセスアドレス192.168.121.121、PHPのページが出たらOKと説明します.
 
7、mysqlパスワードの暗号化方式をmysql_に変更するnative_password
$ vi /data/docker/mysql/conf/docker_mysql.conf
[mysqld]
default-authentication-plugin=mysql_native_password

 
8、データベース操作
mysqlコンテナにログインしwordpressデータベースを作成、構成する
$ docker exec -it mysql /bin/bash
root@9c2362b5e32f:/# chown -R mysql:mysql /var/lib/mysql
root@9c2362b5e32f:/# 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 [email protected] identified by '123456';
mysql> grant all privileges on wordpress.* to [email protected];
mysql> alter user [email protected] identified with mysql_native_password by '123456';

 
9、wordpressブログシステムの配置
 
9.1、wordpressパッケージをダウンロードして解凍する
$ wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz

$ tar -zxf wordpress-4.9.4-zh_CN.tar.gz -C /data/docker/www

 
9.2、wordpress構成の修正
$ cd /data/docker/www/wordpress/
$ vi wp-config-sample.php

 
/** WordPress       */
define('DB_NAME', 'wordpress');

/** MySQL       */
define('DB_USER', 'wps');

/** MySQL      */
define('DB_PASSWORD', '123456');

/** MySQL   */
define('DB_HOST', '192.168.121.121');

/**               */
define('DB_CHARSET', 'utf8');

/**        。         */
define('DB_COLLATE', '');
$ mv wp-config-sample.php wp-config.php

 
9.3、問題の修復
PHP 5から.0開始mysqlの使用は推奨されません接続()関数、PHP 7から.0からこの関数を破棄し、代わりの関数はmysqli_です.connect()は、次の解決策です.
phpコンテナに入りmysqli拡張子をインストール
$ docker exec -it httpd-php /bin/bash
root@d466d5de8d13:/var/www/html# apt-get update
root@d466d5de8d13:/var/www/html# apt-get install libpng-dev
root@d466d5de8d13:/var/www/html# cd /usr/local/bin/ 
root@d466d5de8d13:/usr/local/bin# ./docker-php-ext-install gd mysqli
root@d466d5de8d13:/usr/local/bin# ./docker-php-ext-enable gd mysql

 
コンテナを終了し、コンテナを再起動
$ docker restart httpd-php

 
置換方法
$ cd /data/docker/www/wordpress
$ sed -i "s/mysql_connect/mysqli_connect/g" wp-includes/wp-db.php

 
9.4、wordpressページを開いて配置する
 
ページを開くhttp://192.168.121.121/wordpress----->表示されたページで「今すぐ」をクリック----->次のデータベース情報を記入します.
データベース名wordpressユーザー名wpsパスワード123456データベースホスト192.168.121.121表接頭辞wp_
---->「WordPressをインストールする」---->「ログインする」--->アカウントとパスワードを使用してブログにログインし、その後ブログページにアクセスし、ブログを管理することができます.
 
参照先:
https://blog.51cto.com/andyxu/2177116