一、用docker搭建一个lnmp 环境,安装wordpress
0.系统环境
[root@docker_test ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [root@docker_test ~]# uname -a Linux docker_test 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
1、安装mysql客户端
#mysql5.7源
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
#安装源
rpm -ivh mysql57-community-release-el7-10.noarch.rpm
#安装mysql客户端,用于连接docker里面的mysql。
yum install mysql -y
#登录用docker创建的mysql
[root@ansible-server ~]# mysql -h59.47.71.229 -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.16 MySQL Community Server - GPL
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys | |
| wp |
+--------------------+
6 rows in set (0.01 sec)
mysql> exit
备注:在同一个网络中,他们可以通过容器名称进行通信
2 、自定义网络
docker network create lnmp
3 、创建 Mysql 数据库容器
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:5.6 --character-set-server=utf8
4、创建 所需 数据库
docker exec lnmp_mysql sh \
-c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD" -e"create database wp"'
#查看数据库
docker exec lnmp_mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD" -e"show databases"'
5、创建 PHP 环境容器
#创建目录
mkdir -p /app/wwwroot
#安装nginx+php-fpm
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
6 、 以 wordpress 博客为例测试
wget https://cn.wordpress.org/wordpress-4.7.4-zh_CN.tar.gz
tar zxf wordpress-4.7.4-zh_CN.tar.gz -C /app/wwwroot
容器的访问:
iptables -I INPUT -s 0.0.0.0 -j ACCEPT
iptables -I INPUT -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT
# 浏览器测试访问
http://IP:88/wordpress/
把上面内容复制在vi /app/wwwroot/wordpress/wp-config.php
<?php /** * WordPress基础配置文件。 * * 这个文件被安装程序用于自动生成wp-config.php配置文件, * 您可以不使用网站,您需要手动复制这个文件, * 并重命名为“wp-config.php”,然后填入相关信息。 * * 本文件包含以下配置选项: * * * MySQL设置 * * 密钥 * * 数据库表名前缀 * * ABSPATH * * @link https://codex.wordpress.org/zh-cn:%E7%BC%96%E8%BE%91_wp-config.php * * @package WordPress */ // ** MySQL 设置 - 具体信息来自您正在使用的主机 ** // /** WordPress数据库的名称 */ define('DB_NAME', 'wp'); /** MySQL数据库用户名 */ define('DB_USER', 'root'); /** MySQL数据库密码 */ define('DB_PASSWORD', '123456'); /** MySQL主机 */ define('DB_HOST', 'lnmp_mysql'); /** 创建数据表时默认的文字编码 */ define('DB_CHARSET', 'utf8mb4'); /** 数据库整理类型。如不确定请勿更改 */ define('DB_COLLATE', ''); /**#@+ * 身份认证密钥与盐。 * * 修改为任意独一无二的字串! * 或者直接访问{@link https://api.wordpress.org/secret-key/1.1/salt/ * WordPress.org密钥生成服务} * 任何修改都会导致所有cookies失效,所有用户将必须重新登录。 * * @since 2.6.0 */ define('AUTH_KEY', '} }u^AgJu[jE]Iu)pr(4PzQ:+| ii{?Qv!x;ej_FxjG{sIRisLu&x<iF$71JM.r^'); define('SECURE_AUTH_KEY', 'U]Ro$V/S*q,Du9ViTQto TwM)x_1j,lL;-;Askr=EyzQ4Bus1h/fRsEe,kdtt5z4'); define('LOGGED_IN_KEY', 'u02wNJ$H]=fp=[H{{UN5ol%Jz-J+qncgBT!f8R0{v6.<_ n^XBdK;c#9Q=vY?/!!'); define('NONCE_KEY', 'Q>Qu%j|tq`_m>+obv&!h4P-%Q-;k~{F[^~%tJQx4(SNX.ct7o$AM6Vas&f:_sqOh'); define('AUTH_SALT', '4WB`5>#R#i&|1 NDMh/cE][LAqE.RU#A=+-h1ra};C:-*4&o^wmbA/[P&++rf]9N'); define('SECURE_AUTH_SALT', 'y`sZ!fR_J !<?R %K(t6!=3uu%@EvWqX5m{gp5O+NlBSd[gf%1nleLhyu&(edQnN'); define('LOGGED_IN_SALT', '#Mn/t,2Oa+ChH+(tuL*q~(KlU)bDV+jnoEa;_/-ER~O~D #,M0U/`jB@JxQu@SK0'); define('NONCE_SALT', '[q!HV?b84eB4:k.-W4Nu]EO)Nr)yMEyB_v]/>V~&{&JE%b9kcxKwWtG`09*cvc@]'); /**#@-*/ /** * WordPress数据表前缀。 * * 如果您有在同一数据库内安装多个WordPress的需求,请为每个WordPress设置 * 不同的数据表前缀。前缀名只能为数字、字母加下划线。 */ $table_prefix = 'wp_'; /** * 开发者专用:WordPress调试模式。 * * 将这个值改为true,WordPress将显示所有用于开发的提示。 * 强烈建议插件开发者在开发环境中启用WP_DEBUG。 * * 要获取其他能用于调试的信息,请访问Codex。 * * @link https://codex.wordpress.org/Debugging_in_WordPress */ define('WP_DEBUG', false); /** * zh_CN本地化设置:启用ICP备案号显示 * * 可在设置→常规中修改。 * 如需禁用,请移除或注释掉本行。 */ define('WP_ZH_CN_ICP_NUM', true); /* 好了!请不要再继续编辑。请保存本文件。使用愉快! */ /** WordPress目录的绝对路径。 */ if ( !defined('ABSPATH') ) define('ABSPATH', dirname(__FILE__) . '/'); /** 设置WordPress变量和包含文件。 */ require_once(ABSPATH . 'wp-settings.php');
#下一步
http://192.168.56.60:88/wordpress/wp-admin/install.php?language=zh_CN
进行登录界面
输入上面设置的用户名和密码,点登录。