Docker——部署LNMP架构

打印 上一主题 下一主题

主题 1016|帖子 1016|积分 3048

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
目录

一、LNMP架构概述
1.项目环境
2.服务器环境
3.需求
二、搭建Linux体系基础镜像
三、部署Nginx
1.建立工作目录
2.编写Dockerfile脚本
3.准备Nginx.conf设置文件
4.天生镜像
5.创建自定义网络
6.启动镜像容器
7.验证Nginx
三、部署Mysql
1.建立工作目录
2.编写Dockerfile
3.准备my.cnf文件
4.天生镜像
5.启动镜像容器
6.验证Mysql
四、部署Php
1.建立工作目录
2.编写Dockerfile
3.准备php.ini、php-fpm.conf和www.conf设置文件
3.1编写php.ini设置文件
3.2编写php-fpm.conf设置文件
3.3编写www.conf设置文件
4.天生镜像
5.启动镜像容器
6.验证php
五、启动Wordpress服务
1.Mysql数据库授权
2.欣赏器访问测试

一、LNMP架构概述

L:Linux平台,操纵体系,别的桑组件的运行平台
N:nginx 提供前端页面
M:MySQL,开源关系的数据库,主要是用来生存用户账号信息。
P:PHP,开发一种动态页面的编程语言,解释解析动态页面,起到中间件的作用。(nginx和数据库的中间,沟通nginx和数据库,已哀求数据库上的信息)
lnmp:企业网站的应用模式之一。早期的论坛架构就是lnmp搭建的
1.项目环境

公司在现实的生产环境中,须要使用Docker技术在一台主机上创建LNMP服务并运行Wordpress网站平台,然后对此服务进行相关的性能调优和管理工作。
2.服务器环境

容器IP所在主要软件Nginx172.20.0.10Docker-NginxMysql172.20.0.20Docker-MysqlPHP172.20.0.30Docker-Php 3.需求



  • 使用Docker创建LNMP环境并运行Wordpress网站
  • 限定Nginx容器最多使用500MB的内存和1GB的Swap
  • 限定Mysql容器写/dev/sda的速率为10MB/s
  • 将所有容器进行,然后将Docker镜像
二、搭建Linux体系基础镜像

  1. [root@localhost ~]# systemctl stop firewalld.service
  2. [root@localhost ~]# setenforce 0
  3. setenforce: SELinux is disabled
  4. [root@localhost ~]# docker pull centos:7
  5. #从公有仓库中下载 centos7 作为系统基础镜像
  6. [root@localhost ~]#docker images
  7. REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
  8. centos       7         eeb6ee3f44bd   2 years ago   204MB
复制代码
三、部署Nginx

1.建立工作目录

  1. [root@localhost ~]# mkdir /opt/nginx
  2. [root@localhost ~]# cd /opt/nginx
  3. [root@localhost nginx]# rz -E
  4. rz waiting to receive.
  5. #上传 nginx 安装包 nginx-1.22.0.tar.gz
  6. [root@docker nginx]# rz -E
  7. rz waiting to receive.
  8. #上传 wordpress 服务包 wordpress-6.1.1-zh_CN.zip
复制代码
2.编写Dockerfile脚本

  1. [root@localhost nginx]# vim Dockerfile
  2. FROM centos:7
  3. #用户信息
  4. MAINTAINER this is nginx image <lnmp>
  5. #添加环境包
  6. RUN yum -y update
  7. RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make
  8. RUN useradd -M -s /sbin/nologin nginx
  9. #上传nginx软件压缩包,并解压
  10. ADD nginx-1.22.0.tar.gz /opt/
  11. #指定工作目录
  12. WORKDIR /opt/nginx-1.22.0
  13. RUN ./configure \
  14. --prefix=/usr/local/nginx \
  15. --user=nginx \
  16. --group=nginx \
  17. --with-http_stub_status_module && make && make install
  18. ENV PATH /usr/local/nginx/sbin:$PATH
  19. ADD nginx.conf /usr/local/nginx/conf/
  20. ADD wordpress-6.1.1-zh_CN.zip /usr/local/nginx/html
  21. RUN chmod 777 -R /usr/local/nginx/html/
  22. VOLUME [ "/usr/local/nginx/html/" ]
  23. #指定http和https端口
  24. EXPOSE 80
  25. EXPOSE 443
  26. RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf
  27. #关闭 nginx 在后台运行
  28. #添加宿主机中run.sh到容器中
  29. ADD run.sh /run.sh
  30. RUN chmod 755 /run.sh
  31. CMD ["/run.sh"]
  32. #CMD ["/usr/local/sbin/nginx", "-g", "daemon off;"]
复制代码
  1. [root@localhost nginx]#vim run.sh
  2. [root@localhost nginx]#cat run.sh
  3. #!/bin/bash
  4. /usr/local/nginx/sbin/nginx
复制代码
3.准备Nginx.conf设置文件

  1. [root@localhost nginx]# vim nginx.conf
  2. worker_processes  1;
  3. events {
  4.     worker_connections  1024;
  5. }
  6. http {
  7.     include       mime.types;
  8.     default_type  application/octet-stream;
  9.     sendfile        on;
  10.     keepalive_timeout  65;
  11.     server {
  12.         listen       80;
  13.         server_name  localhost;
  14.         charset utf-8;
  15.         location / {
  16.             root   html;
  17.             index  index.html index.php;
  18.         }
  19.         error_page   500 502 503 504  /50x.html;
  20.         location = /50x.html {
  21.             root   html;
  22.         }
  23.         location ~ \.php$ {
  24.             root           html;
  25.             fastcgi_pass   172.20.0.30:9000;
  26.             fastcgi_index  index.php;
  27.             fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
  28.             include        fastcgi_params;
  29.         }
  30.     }
  31. }
复制代码
4.天生镜像

  1. [root@localhost nginx]# docker build -t nginx:lnmp .
  2. [root@localhost nginx]#docker images
  3. REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
  4. nginx        lnmp      c58b74b073a6   2 minutes ago   945MB
  5. centos       7         eeb6ee3f44bd   2 years ago     204MB
复制代码
5.创建自定义网络

  1. [root@localhost nginx]#docker network create --subnet=172.20.0.0/16 --opt "com.docker.network.bridge.name"="docker1" mynetwork
  2. b670bf7109003688dd5fa7c5d814527f842997d7f3dfdfcb04fc0894701e4057
  3. [root@localhost nginx]#docker network ls
  4. NETWORK ID     NAME        DRIVER    SCOPE
  5. e2cc5ac53bc5   bridge      bridge    local
  6. 675fa9e17777   host        host      local
  7. b670bf710900   mynetwork   bridge    local
  8. 280bac5f6c07   none        null      local
  9. [root@localhost nginx]#ifconfig
  10. docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
  11.         inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
  12.         inet6 fe80::42:d7ff:fe17:f6c7  prefixlen 64  scopeid 0x20<link>
  13.         ether 02:42:d7:17:f6:c7  txqueuelen 0  (Ethernet)
  14.         RX packets 39915  bytes 1611972 (1.5 MiB)
  15.         RX errors 0  dropped 0  overruns 0  frame 0
  16.         TX packets 73683  bytes 138871014 (132.4 MiB)
  17.         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  18. docker1: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
  19.         inet 172.20.0.1  netmask 255.255.0.0  broadcast 172.20.255.255
复制代码
6.启动镜像容器

  1. [root@localhost nginx]#docker run -d --name nginx -p 80:80 -m 500m --memory-swap 1g --net mynetwork --ip 172.20.0.10 nginx:lnmp
  2. e0dbb5d14e798e1fa315ad2d58aeb530bd9dce52ed85d53e06b4ff57d5b2343c
  3. [root@localhost nginx]#docker ps
  4. CONTAINER ID   IMAGE        COMMAND     CREATED          STATUS          PORTS                                        NAMES
  5. e0dbb5d14e79   lnmp:nginx   "/run.sh"   15 seconds ago   Up 14 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp, 443/tcp   nginx
  6. ······
  7. [root@localhost nginx]# docker inspect nginx
  8. "Networks": {
  9.                 "mynetwork": {
  10.                     "IPAMConfig": {
  11.                         "IPv4Address": "172.20.0.10"
复制代码
7.验证Nginx

  1. [root@localhost nginx]#curl 172.20.0.10
  2. <!DOCTYPE html>
  3. <html>
  4. <head>
  5. <title>Welcome to nginx!</title>
  6. <style>
  7. html { color-scheme: light dark; }
  8. body { width: 35em; margin: 0 auto;
  9. font-family: Tahoma, Verdana, Arial, sans-serif; }
  10. </style>
  11. </head>
  12. <body>
  13. <h1>Welcome to nginx!</h1>
  14. <p>If you see this page, the nginx web server is successfully installed and
  15. working. Further configuration is required.</p>
  16. <p>For online documentation and support please refer to
  17. <a href="http://nginx.org/">nginx.org</a>.<br/>
  18. Commercial support is available at
  19. <a href="http://nginx.com/">nginx.com</a>.</p>
  20. <p><em>Thank you for using nginx.</em></p>
  21. </body>
  22. </html>
复制代码
三、部署Mysql

1.建立工作目录

  1. [root@localhost nginx]# mkdir /opt/mysql
  2. [root@localhost nginx]# cd /opt/mysql/
  3. [root@localhost mysql]# rz -E
  4. rz waiting to receive.
  5. #传入mysql安装包mysql-boost-5.7.20.tar.gz
复制代码
2.编写Dockerfile

  1. [root@localhost mysql]# vim Dockerfile
  2. FROM centos:7
  3. MAINTAINER this is mysql image <lnmp>
  4. RUN yum -y install ncurses ncurses-devel bison cmake pcre-devel zlib-devel gcc gcc-c++ make;useradd -M -s /sbin/nologin mysql
  5. ADD mysql-boost-5.7.20.tar.gz /usr/local/src/
  6. WORKDIR /usr/local/src/mysql-5.7.20/
  7. RUN cmake \
  8. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
  9. -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
  10. -DSYSCONFDIR=/etc \
  11. -DSYSTEMD_PID_DIR=/usr/local/mysql \
  12. -DDEFAULT_CHARSET=utf8  \
  13. -DDEFAULT_COLLATION=utf8_general_ci \
  14. -DWITH_EXTRA_CHARSETS=all \
  15. -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  16. -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
  17. -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
  18. -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
  19. -DMYSQL_DATADIR=/usr/local/mysql/data \
  20. -DWITH_BOOST=boost \
  21. -DWITH_SYSTEMD=1;make -j4;make install
  22. ADD my.cnf /etc/my.cnf
  23. EXPOSE 3306
  24. RUN chown -R mysql:mysql /usr/local/mysql/;chown mysql:mysql /etc/my.cnf
  25. WORKDIR /usr/local/mysql/bin/
  26. RUN ./mysqld \
  27. --initialize-insecure \
  28. --user=mysql \
  29. --basedir=/usr/local/mysql \
  30. --datadir=/usr/local/mysql/data;cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/;systemctl enable mysqld
  31. ENV PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
  32. VOLUME [ "/usr/local/mysql" ]
  33. CMD ["/usr/sbin/init"]
复制代码
3.准备my.cnf文件

  1. [root@localhost mysql]# vim my.cnf
  2. [client]
  3. port = 3306
  4. socket=/usr/local/mysql/mysql.sock
  5. [mysqld]
  6. user = mysql
  7. basedir=/usr/local/mysql
  8. datadir=/usr/local/mysql/data
  9. port = 3306
  10. character-set-server=utf8
  11. pid-file = /usr/local/mysql/mysqld.pid
  12. socket=/usr/local/mysql/mysql.sock
  13. bind-address = 0.0.0.0
  14. skip-name-resolve
  15. max_connections=2048
  16. default-storage-engine=INNODB
  17. max_allowed_packet=16M
  18. server-id = 1
  19. 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
复制代码
4.天生镜像

  1. [root@docker mysql]# docker build -t mysql:lnmp .
  2. [root@localhost mysql]#docker images
  3. REPOSITORY   TAG       IMAGE ID       CREATED              SIZE
  4. mysql        lnmp      e27bd3614a1d   About a minute ago   10.1GB
  5. lnmp         nginx     a5c5710e1bf1   About an hour ago    895MB
  6. centos       7         eeb6ee3f44bd   2 years ago          204MB
复制代码
5.启动镜像容器

  1. [root@localhost mysql]# docker run --name=mysql -d --privileged --device-write-bps /dev/sda:10M -v /usr/local/mysql --net mynetwork --ip 172.20.0.20 mysql:lnmp
  2. d18533a527b17c3a1aacf0eb72f264c77acbe0ceb20ab23be88c7dcabe4bc52c
  3. [root@localhost mysql]#docker ps -a
  4. CONTAINER ID   IMAGE        COMMAND            CREATED          STATUS          PORTS                                        NAMES
  5. d18533a527b1   mysql:lnmp   "/usr/sbin/init"   48 seconds ago   Up 32 seconds   3306/tcp                                     mysql
  6. e0dbb5d14e79   lnmp:nginx   "/run.sh"          59 minutes ago   Up 59 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp, 443/tcp   nginx
复制代码
6.验证Mysql

  1. [root@localhost mysql]#docker exec -it mysql bash
  2. [root@d18533a527b1 bin]#  systemctl status mysqld
  3. [root@d18533a527b1 bin]# systemctl status mysqld
  4. ● mysqld.service - MySQL Server
  5.    Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
  6.    Active: activating (start) since Sun 2024-04-28 01:23:41 UTC; 1min 6s ago
  7.      Docs: man:mysqld(8)
  8.            http://dev.mysql.com/doc/refman/en/using-systemd.html
  9.   Process: 79 ExecStart=/usr/local/mysql/bin/mysqld --daemonize --pid-file=/usr/local/mysql/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
  10.   Process: 48 ExecStartPre=/usr/local/mysql/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
  11.    CGroup: /docker/d18533a527b17c3a1aacf0eb72f264c77acbe0ceb20ab23be88c7dcabe4bc52c/system.slice/mysqld.service
  12.            └─83 /usr/local/mysql/bin/mysqld --daemonize --pid-file=/usr/l...
  13. Apr 28 01:23:44 d18533a527b1 mysqld[79]: 2024-04-28T01:23:44.992564Z 0 [....
  14. Apr 28 01:23:44 d18533a527b1 mysqld[79]: 2024-04-28T01:23:44.993599Z 0 [....
  15. Apr 28 01:23:44 d18533a527b1 mysqld[79]: 2024-04-28T01:23:44.993627Z 0 [....
  16. Apr 28 01:23:44 d18533a527b1 mysqld[79]: 2024-04-28T01:23:44.997795Z 0 [...s
  17. Apr 28 01:23:44 d18533a527b1 mysqld[79]: 2024-04-28T01:23:44.997971Z 0 [....
  18. Apr 28 01:23:44 d18533a527b1 mysqld[79]: Version: '5.7.20'  socket: '/us...n
  19. Apr 28 01:23:44 d18533a527b1 mysqld[79]: 2024-04-28T01:23:44.997977Z 0 [....
  20. Apr 28 01:23:44 d18533a527b1 mysqld[79]: 2024-04-28T01:23:44.997979Z 0 [...s
  21. Apr 28 01:23:45 d18533a527b1 systemd[1]: New main PID 83 does not belong....
  22. Apr 28 01:23:45 d18533a527b1 systemd[1]: New main PID 83 does not belong....
  23. Hint: Some lines were ellipsized, use -l to show in full.
复制代码
四、部署Php

1.建立工作目录

  1. [root@localhost  mysql]# mkdir ../php
  2. [root@localhost  mysql]# cd ../php/
  3. [root@localhost  php]# rz -E
  4. rz waiting to receive.
  5. #传入php安装包php-7.1.10.tar.bz2
复制代码
2.编写Dockerfile

  1. [root@localhost php]# vim Dockerfile
  2. FROM centos:7
  3. MAINTAINER this is php image <lnmp>
  4. RUN yum install -y gd \
  5. libjpeg libjpeg-devel \
  6. libpng libpng-devel \
  7. freetype freetype-devel \
  8. libxml2 libxml2-devel \
  9. zlib zlib-devel \
  10. curl curl-devel \
  11. openssl openssl-devel \
  12. gcc gcc-c++ make pcre-devel;useradd -M -s /sbin/nologin nginx
  13. ADD php-7.1.10.tar.bz2 /usr/local/src/
  14. WORKDIR /usr/local/src/php-7.1.10
  15. RUN ./configure \
  16. --prefix=/usr/local/php \
  17. --with-mysql-sock=/usr/local/mysql/mysql.sock \
  18. --with-mysqli \
  19. --with-zlib \
  20. --with-curl \
  21. --with-gd \
  22. --with-jpeg-dir \
  23. --with-png-dir \
  24. --with-freetype-dir \
  25. --with-openssl \
  26. --enable-fpm \
  27. --enable-mbstring \
  28. --enable-xml \
  29. --enable-session \
  30. --enable-ftp \
  31. --enable-pdo \
  32. --enable-tokenizer \
  33. --enable-zip ; make -j 4 ; make install
  34. ENV PATH /usr/local/php/bin:/usr/local/php/sbin:$PATH
  35. ADD php.ini     /usr/local/php/lib/
  36. ADD php-fpm.conf /usr/local/php/etc/
  37. ADD www.conf /usr/local/php/etc/php-fpm.d/
  38. EXPOSE 9000
  39. CMD /usr/local/php/sbin/php-fpm -F
复制代码
3.准备php.ini、php-fpm.conf和www.conf设置文件

3.1编写php.ini设置文件

  1. 该配置文件模板位于安装目录的 php-7.1.10/php.ini-development 位置
  2. [root@localhost php]# vim php.ini
  3. #939行,取消注释,修改
  4. date.timezone = Asia/Shanghai
  5. #1170行,修改
  6. mysqli.default_socket = /usr/local/mysql/mysql.sock
  7. [root@localhost php]# egrep -v "^;" php.ini | egrep -v "^$"
  8. [PHP]
  9. engine = On
  10. short_open_tag = Off
  11. precision = 14
  12. output_buffering = 4096
  13. zlib.output_compression = Off
  14. implicit_flush = Off
  15. unserialize_callback_func =
  16. serialize_precision = -1
  17. disable_functions =
  18. disable_classes =
  19. zend.enable_gc = On
  20. expose_php = On
  21. max_execution_time = 30
  22. max_input_time = 60
  23. memory_limit = 128M
  24. error_reporting = E_ALL
  25. display_errors = On
  26. display_startup_errors = On
  27. log_errors = On
  28. log_errors_max_len = 1024
  29. ignore_repeated_errors = Off
  30. ignore_repeated_source = Off
  31. report_memleaks = On
  32. track_errors = On
  33. html_errors = On
  34. variables_order = "GPCS"
  35. request_order = "GP"
  36. register_argc_argv = Off
  37. auto_globals_jit = On
  38. post_max_size = 8M
  39. auto_prepend_file =
  40. auto_append_file =
  41. default_mimetype = "text/html"
  42. default_charset = "UTF-8"
  43. doc_root =
  44. user_dir =
  45. enable_dl = Off
  46. file_uploads = On
  47. upload_max_filesize = 2M
  48. max_file_uploads = 20
  49. allow_url_fopen = On
  50. allow_url_include = Off
  51. default_socket_timeout = 60
  52. [CLI Server]
  53. cli_server.color = On
  54. [Date]
  55. date.timezone = Asia/Shanghai
  56. [filter]
  57. [iconv]
  58. [intl]
  59. [sqlite3]
  60. [Pcre]
  61. [Pdo]
  62. [Pdo_mysql]
  63. pdo_mysql.cache_size = 2000
  64. pdo_mysql.default_socket=
  65. [Phar]
  66. [mail function]
  67. SMTP = localhost
  68. smtp_port = 25
  69. mail.add_x_header = On
  70. [SQL]
  71. sql.safe_mode = Off
  72. [ODBC]
  73. odbc.allow_persistent = On
  74. odbc.check_persistent = On
  75. odbc.max_persistent = -1
  76. odbc.max_links = -1
  77. odbc.defaultlrl = 4096
  78. odbc.defaultbinmode = 1
  79. [Interbase]
  80. ibase.allow_persistent = 1
  81. ibase.max_persistent = -1
  82. ibase.max_links = -1
  83. ibase.timestampformat = "%Y-%m-%d %H:%M:%S"
  84. ibase.dateformat = "%Y-%m-%d"
  85. ibase.timeformat = "%H:%M:%S"
  86. [MySQLi]
  87. mysqli.max_persistent = -1
  88. mysqli.allow_persistent = On
  89. mysqli.max_links = -1
  90. mysqli.cache_size = 2000
  91. mysqli.default_port = 3306
  92. mysqli.default_socket = /usr/local/mysql/mysql.sock
  93. mysqli.default_host =
  94. mysqli.default_user =
  95. mysqli.default_pw =
  96. mysqli.reconnect = Off
  97. [mysqlnd]
  98. mysqlnd.collect_statistics = On
  99. mysqlnd.collect_memory_statistics = On
  100. [OCI8]
  101. [PostgreSQL]
  102. pgsql.allow_persistent = On
  103. pgsql.auto_reset_persistent = Off
  104. pgsql.max_persistent = -1
  105. pgsql.max_links = -1
  106. pgsql.ignore_notice = 0
  107. pgsql.log_notice = 0
  108. [bcmath]
  109. bcmath.scale = 0
  110. [browscap]
  111. [Session]
  112. session.save_handler = files
  113. session.use_strict_mode = 0
  114. session.use_cookies = 1
  115. session.use_only_cookies = 1
  116. session.name = PHPSESSID
  117. session.auto_start = 0
  118. session.cookie_lifetime = 0
  119. session.cookie_path = /
  120. session.cookie_domain =
  121. session.cookie_httponly =
  122. session.serialize_handler = php
  123. session.gc_probability = 1
  124. session.gc_divisor = 1000
  125. session.gc_maxlifetime = 1440
  126. session.referer_check =
  127. session.cache_limiter = nocache
  128. session.cache_expire = 180
  129. session.use_trans_sid = 0
  130. session.sid_length = 26
  131. session.trans_sid_tags = "a=href,area=href,frame=src,form="
  132. session.sid_bits_per_character = 5
  133. [Assertion]
  134. zend.assertions = 1
  135. [COM]
  136. [mbstring]
  137. [gd]
  138. [exif]
  139. [Tidy]
  140. tidy.clean_output = Off
  141. [soap]
  142. soap.wsdl_cache_enabled=1
  143. soap.wsdl_cache_dir="/tmp"
  144. soap.wsdl_cache_ttl=86400
  145. soap.wsdl_cache_limit = 5
  146. [sysvshm]
  147. [ldap]
  148. ldap.max_links = -1
  149. [mcrypt]
  150. [dba]
  151. [opcache]
  152. [curl]
  153. [openssl]
复制代码
3.2编写php-fpm.conf设置文件

  1. 该配置文件位于 /usr/local/php/etc/php-fpm.conf.default
  2. [root@localhost php]# vim php-fpm.conf
  3. #17行,删除注释符号“;”
  4. pid = run/php-fpm.pid
  5. [root@localhost php]# egrep -v "^;" php-fpm.conf | egrep -v "^$"
  6. [global]
  7. pid = run/php-fpm.pid
  8. include=/usr/local/php/etc/php-fpm.d/*.conf
复制代码
3.3编写www.conf设置文件

  1. 该配置文件位于 usr/local/php/etc/php-fpm.d/www.conf.default
  2. [root@localhost php]# vim www.conf
  3. #23、24行,修改用户和组
  4. user = nginx
  5. group = nginx
  6. #36行,修改监听IP和端口为容器IP:9000端口
  7. listen = 172.20.0.30:9000
  8. [root@localhost php]# egrep -v "^;" www.conf | egrep -v "^$"
  9. [www]
  10. user = nginx
  11. group = nginx
  12. listen = 172.20.0.30:9000
  13. pm = dynamic
  14. pm.max_children = 5
  15. pm.start_servers = 2
  16. pm.min_spare_servers = 1
  17. pm.max_spare_servers = 3
复制代码
4.天生镜像

  1. [root@localhost  php]# docker build -t php:lnmp .
  2. [root@localhost php]#docker images
  3. REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
  4. php          lnmp      145c2632ddf3   3 minutes ago    1.4GB
  5. mysql        lnmp      e27bd3614a1d   22 minutes ago   10.1GB
  6. lnmp         nginx     a5c5710e1bf1   2 hours ago      895MB
  7. centos       7         eeb6ee3f44bd   2 years ago      204MB
复制代码
5.启动镜像容器

  1. [root@localhost php]# docker run -itd --name php --net mynetwork --ip 172.20.0.30 -p 9000:9000 --volumes-from nginx --volumes-from mysql php:lnmp
  2. 02254fedc4e6976998b5a60083c28af6040cdfcd3d16b2cc3a6c5dc40b0c5972
  3. [root@localhost php]#docker ps
  4. CONTAINER ID   IMAGE        COMMAND                   CREATED             STATUS             PORTS                                        NAMES
  5. 02254fedc4e6   php:lnmp     "/bin/sh -c '/usr/lo…"   12 seconds ago      Up 11 seconds      0.0.0.0:9000->9000/tcp, :::9000->9000/tcp    php
  6. d18533a527b1   mysql:lnmp   "/usr/sbin/init"          20 minutes ago      Up 20 minutes      3306/tcp                                     mysql
  7. e0dbb5d14e79   lnmp:nginx   "/run.sh"                 About an hour ago   Up About an hour   0.0.0.0:80->80/tcp, :::80->80/tcp, 443/tcp   nginx
复制代码
6.验证php

  1. [root@localhost php]# docker exec -it php bash
  2. [root@localhost php]#docker exec -it php bash
  3. [root@02254fedc4e6 php-7.1.10]# ps -aux
  4. USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
  5. root          1  0.0  0.4 113028  7520 pts/0    Ss+  01:43   0:00 php-fpm: m
  6. nginx         7  0.0  0.2 113028  3772 pts/0    S+   01:43   0:00 php-fpm: p
  7. nginx         8  0.0  0.2 113028  3772 pts/0    S+   01:43   0:00 php-fpm: p
  8. root          9  0.1  0.1  11828  1888 pts/1    Ss   01:44   0:00 bash
  9. root         23  0.0  0.0  51732  1728 pts/1    R+   01:44   0:00 ps -aux
复制代码
五、启动Wordpress服务

1.Mysql数据库授权

  1. [root@localhost nginx]# docker exec -it mysql bash
  2. [root@0a4ad94e00e8 bin]# mysql -u root -p
  3. Enter password:
  4. #初始密码为空
  5. mysql> create database wordpress;
  6. Query OK, 1 row affected (0.00 sec)
  7. mysql> grant all privileges on wordpress.* to 'wordpress'@'%' identified by '123456';
  8. Query OK, 0 rows affected, 1 warning (0.00 sec)
  9. mysql> grant all privileges on *.* to 'root'@'%' identified by '123456';
  10. Query OK, 0 rows affected, 1 warning (0.00 sec)
  11. mysql> flush privileges;
  12. Query OK, 0 rows affected (0.00 sec)
复制代码
2.欣赏器访问测试

访问http://192.168.241.11/wordpress/index.php




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

天津储鑫盛钢材现货供应商

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表