一、创建配置文件目录并上传wordpress的zip包
1、创建配置文件目录
[root@docker02 ~]# mkdir /app/docker/compose/04_lnmp/{conf,code} -p
[root@docker02 ~]# cd /app/docker/compose/04_lnmp/
[root@docker02 /app/docker/compose/04_lnmp]# ls
code conf
2、上传wordpress的zip包到code并解压
[root@docker02 /app/docker/compose/04_lnmp/code]# unzip wordpress-6.1.1-zh_CN.zip
[root@docker02 /app/docker/compose/04_lnmp/code]# ls
wordpress wordpress-6.1.1-zh_CN.zip
[root@docker02 /app/docker/compose/04_lnmp/code]# mv wordpress/* ./
[root@docker02 /app/docker/compose/04_lnmp/code]# ls
index.php wordpress wp-admin wp-config-sample.php wp-includes wp-login.php wp-signup.php
license.txt wordpress-6.1.1-zh_CN.zip wp-blog-header.php wp-content wp-links-opml.php wp-mail.php wp-trackback.php
readme.html wp-activate.php wp-comments-post.php wp-cron.php wp-load.php wp-settings.php xmlrpc.php
[root@docker02 /app/docker/compose/04_lnmp/code]# rm -rf wordpress wordpress-6.1.1-zh_CN.zip
[root@docker02 /app/docker/compose/04_lnmp/code]# ls
index.php readme.html wp-admin wp-comments-post.php wp-content wp-includes wp-load.php wp-mail.php wp-signup.php xmlrpc.php
license.txt wp-activate.php wp-blog-header.php wp-config-sample.php wp-cron.php wp-links-opml.php wp-login.php wp-settings.php wp-trackback.php
[root@docker02 /app/docker/compose/04_lnmp/code]#
3、书写配置文件
3.1、书写mysql的配置文件:my.cnf
[root@docker02 /app/docker/compose/04_lnmp/conf]# vim my.cnf
[root@docker02 /app/docker/compose/04_lnmp/conf]# cat my.cnf
[client]
port = 3306
socket = /usr/local/mysql/mysql.sock
[mysql]
port = 3306
socket = /usr/local/mysql/mysql.sock
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
3.2、书写nginx的配置文件:nginx.conf
[root@docker02 /app/docker/compose/04_lnmp/conf]# vim nginx.conf
[root@docker02 /app/docker/compose/04_lnmp/conf]# cat nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
3.3、书写wordpress的配置文件:wordpress.conf
[root@docker02 /app/docker/compose/04_lnmp/conf]# vim wordpress.conf
[root@docker02 /app/docker/compose/04_lnmp/conf]# cat wordpress.conf
server {
listen 80;
server_name docker.wordpress.cn;
root /app/code/wordpress;
location / {
index index.php;
}
location ~* \.php$ {
fastcgi_pass 172.18.0.20:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
3.4、书写php的配置文件:www.conf
[root@docker02 /app/docker/compose/04_lnmp/conf]# vim www.conf
[root@docker02 /app/docker/compose/04_lnmp/conf]# cat www.conf
[www]
user = www-data
group = www-data
listen = 127.0.0.1:9000
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
二、编写docker-compose配置文件
[root@docker02 /app/docker/compose/04_lnmp]# vim docker-compose.yml
[root@docker02 /app/docker/compose/04_lnmp]# cat docker-compose.yml
version: "3.3"
services:
lnmp_nginx:
image: "nginx:latest"
volumes:
- "./conf/nginx.conf:/etc/nginx/nginx.conf"
- "./conf/wordpress.conf:/etc/nginx/conf.d/wordpress.conf"
- "./code:/app/code/wordpress"
ports:
- "81:80"
depends_on:
- "lnmp_php"
networks:
lnmp:
ipv4_address: 172.18.0.10
lnmp_php:
image: "php:7-fpm-alpine"
volumes:
- "./conf/www.conf:/usr/local/etc/php-fpm.d/www.conf"
- "./code:/app/code/wordpress"
ports:
- "9000:9000"
depends_on:
- "lnmp_mysql"
networks:
lnmp:
ipv4_address: 172.18.0.20
lnmp_mysql:
image: "mysql:latest"
ports:
- "3306:3306"
volumes:
- "./conf/my.conf:/etc/my.cnf"
networks:
lnmp:
ipv4_address: 172.18.0.30
environment:
MYSQL_ROOT_PASSWORD: 123456
networks:
lnmp:
driver: bridge
ipam:
config:
- subnet: 172.18.0.0/16
三、启动docker-compose
[root@docker02 /app/docker/compose/04_lnmp]# docker-compose up -d
Starting 04lnmp_lnmp_mysql_1 ... done
Starting 04lnmp_lnmp_php_1 ... done
Starting 04lnmp_lnmp_nginx_1 ... done
[root@docker02 /app/docker/compose/04_lnmp]#
[root@docker02 /app/docker/compose/04_lnmp]#
[root@docker02 /app/docker/compose/04_lnmp]# docker-compose ps
Name Command State Ports
------------------------------------------------------------------------------------------------------------------
04lnmp_lnmp_mysql_1 docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp,:::3306->3306/tcp, 33060/tcp
04lnmp_lnmp_nginx_1 /docker-entrypoint.sh ngin ... Up 0.0.0.0:81->80/tcp,:::81->80/tcp
04lnmp_lnmp_php_1 docker-php-entrypoint php-fpm Up 0.0.0.0:9000->9000/tcp,:::9000->9000/tcp
[root@docker02 /app/docker/compose/04_lnmp]#
[root@docker02 /app/docker/compose/04_lnmp]#
[root@docker02 /app/docker/compose/04_lnmp]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fc9dc2a6257b nginx:latest "/docker-entrypoint.…" 12 hours ago Up 7 seconds 0.0.0.0:81->80/tcp, :::81->80/tcp 04lnmp_lnmp_nginx_1
27ee95cea350 php:7-fpm-alpine "docker-php-entrypoi…" 12 hours ago Up 7 seconds 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp 04lnmp_lnmp_php_1
954dd58a4f9b mysql:latest "docker-entrypoint.s…" 12 hours ago Up 8 seconds 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp 04lnmp_lnmp_mysql_1