Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

Docker-compose deployment LNMP

2025-01-15 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Servers >

Share

Shulou(Shulou.com)06/02 Report--

Prepare before the experiment:

Download:

[root@localhost] # curl-L https://github.com/docker/compose/releases/download/1.25.1-rc1/docker-compose-`uname-s-uname-m`-o / usr/local/bin/docker-compose

[root@localhost ~] # chmod + x / usr/local/bin/docker-compose

[root@localhost] # docker-compose-v

Docker-compose version 1.25.1-rc1, build d92e9bee

/ / Import the image

[root@localhost ~] # docker load

< nginx.tar && docker load < php.7.2-fpm.tar && docker load < mysql-5.7.tar //复制配置文件 [root@localhost ~]# mkdir -p compose-lnmp/docker/ [root@localhost ~]# cd compose-lnmp/ [root@localhost compose-lnmp]# mkdir wwwroot [root@localhost ~]# docker run -itd --name test nginx:latest [root@localhost ~]# docker cp test:/etc/nginx /root/compose-lnmp/docker/br/>

[root@localhost ~] # docker cp test:/etc/nginx / root/compose-lnmp/docker/

Br/ > [root@localhost ~] # vim / root/compose-lnmp/wwwroot/html/index.html

Hello LNMP!

/ / add php test interface [root@localhost ~] # vim / root/compose-lnmp/wwwroot/html/test.phpbr/ > [root@localhost ~] # vim / root/compose-lnmp/wwwroot/html/test.php

/ / set the number of spaces for the tab key [root@localhost ~] # vim .vimrcbr / > [root@localhost ~] # vim .vimrc

Br/ > [root@localhost ~] # cat .vimrc

/ / write docker-compose.yml file [root@localhost ~] # cd / root/compose-lnmp/br/ > [root@localhost ~] # cd / root/compose-lnmp/

Version: "3.1"

Services:

Nginx:

Container_name: nginx

Image: nginx

Networks:

Lnmp:

Ipv4_address: 172.16.10.10

Restart: always

Ports:

80:80

Volumes:/root/compose-lnmp/wwwroot/html:/usr/share/nginx/html/root/compose-lnmp/docker/nginx:/etc/nginx

Mysql:

Container_name: mysql

Image: mysql:5.7

Networks:

Lnmp:

Ipv4_address: 172.16.10.20

Restart: always

Ports:3306:3306

Environment:

MYSQL_ROOT_PASSWORD: 123.com

Php:

Container_name: phpfpm

Image: php:7.2-fpm

Networks:

Lnmp:

Ipv4_address: 172.16.10.30

Restart: always

Ports:9000:9000

Volumes:/root/compose-lnmp/wwwroot/html:/usr/share/nginx/html

Networks:

Lnmp:

Driver: bridge

Ipam:

Config:subnet: 172.16.10.0/24

[root@localhost ~] # echo net.ipv4.ip_forward = 1 > > / etc/sysctl.conf

[root@localhost ~] # systemctl restart network

[root@localhost compose-lnmp] # docker-compose up-d

/ / modify nginx configuration file, nginx and php connect [root@localhost compose-lnmp] # cd docker/nginx/conf.d/br/ > [root@localhost compose-lnmp] # cd docker/nginx/conf.d/

10 lines:

Location / {

Root / usr/share/nginx/html

Index index.html index.htm index.php; / / add php parsing

}

/ / Open this module and change the appropriate information:

30 lines:

Location ~ .php ${

Root / usr/share/nginx/html

Fastcgi_pass 172.16.10.30:9000

Fastcgi_index index.php

Fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name

Include fastcgi_params

}

/ / restart

[root@localhost conf.d] # docker-compose restart

/ / php and mysql connection [root@localhost compose-lnmp] # cd wwwroot/html/br/ > [root@localhost compose-lnmp] # cd wwwroot/html/

[root@localhost html] # mv phpMyAdmin-4.9.1-all-languages phpmyadmin

/ / change the nginx configuration file [root@localhost compose-lnmp] # cd docker/nginx/conf.d/br/ > [root@localhost compose-lnmp] # cd docker/nginx/conf.d/

/ / add on line 27

Location / phpmyadmin {

Root / usr/share/nginx/html

Index index.html index.htm index.php

}

/ / add on line 43

Location ~ / phpmyadmin/ (? (. *). (php | php5)? $) {

Root / usr/share/nginx/html

Fastcgi_pass 172.16.10.30:9000

Fastcgi_index index.php

Fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name

Include fastcgi_params

}

/ / restart

[root@localhost conf.d] # docker-compose restart

/ / you need to make changes to the php image. Write a Dockerfile for modules that add php and mysql connections.

[root@localhost ~] # vim Dockerfilebr/ > write a Dockerfile

[root@localhost ~] # vim Dockerfile

RUN apt-get update & & apt-get install-y\

Libfreetype6-dev\

Libjpeg62-turbo-dev\

Libpng-dev\

& & docker-php-ext-install-j$ (nproc) iconv\

& & docker-php-ext-configure gd-with-freetype-dir=/usr/include/-with-jpeg-dir=/usr/include/\

& & docker-php-ext-install-j$ (nproc) gd\

& & docker-php-ext-install mysqli pdo pdo_mysql

[root@localhost] # docker build-t phpmysql.

/ / Delete the container, change the docker-compose.yml file, and rerun [root@localhost compose-lnmp] # docker-compose stopbr/ > [root@localhost compose-lnmp] # docker-compose stop

Br/ > [root@localhost compose-lnmp] # vim docker-compose.yml

Image: phpmysql

[root@localhost compose-lnmp] # docker-compose up-d

/ / modify the configuration file of phpmyadmin, specify the IP to connect to the database, and then restart [root@localhost compose-lnmp] # cd wwwroot/html/phpmyadmin/br/ > [root@localhost compose-lnmp] # cd wwwroot/html/phpmyadmin/

Br/ > [root@localhost phpmyadmin] # vim config.inc.php

[root@localhost phpmyadmin] # cd-br/ > $cfg ['Servers'] [$] [' host'] = '172.16.10.20'

[root@localhost phpmyadmin] # cd-

[root@localhost compose-lnmp] # docker-compose restart

/ / visit again

User name: root

Password: 123.com

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Servers

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report