|
|
第1行: |
第1行: |
− | ==[http://wiki.linuxchina.net/index.php?title=Docker-compose%E6%95%99%E7%A8%8B#install Docker-Compose install]== | + | =start= |
| | | |
− | | + | =How To Install Linux, Nginx, MariaDB, PHP (LEMP stack) on Debian 10 debinalnmp = |
− | [[Docker nginx]]
| |
− | | |
− | [[Docker mysql]]
| |
− | | |
− | | |
− | [[How to Create a MySql Instance with Docker Compose]]
| |
− | | |
− | ==php==
| |
| <pre> | | <pre> |
− | mkdir docker4php && cd docker4php
| + | # for zabbix |
− | vi Dockerfile
| + | apt install php7.3-bcmath php7.3-mbstring php7.3-gd php7.3-xml libxml++2.6-dev |
− | FROM php:7.1-fpm-stretch
| |
− | #原来是这个 但是这个就不能apt 如果要和下面对应 要改一下
| |
− | #FROM php:7.1-fpm-alpine
| |
− | Run apt-get update \
| |
− | && apt install iputils-ping \
| |
− | && docker-php-ext-install mysqli && docker-php-ext-enable mysqli
| |
− | </pre>
| |
| | | |
− | == compose==
| + | #kali |
− | <pre>
| + | apt install php7.4-bcmath php7.4-mbstring php7.4-gd php7.4-xml libxml++2.6-dev #apt install php7.4-bcmath php7.4-mbstring php7.4-gd php7.4-xml libxml++2.6-dev |
− | mkdir npm4compose
| |
− | cd npm4compose
| |
− | mkdir conf.d php html
| |
− | cd conf.d && touch nginx.conf
| |
− | cd -
| |
− | cd html && touch index.php && echo "<?php phpinfo(); ?>" >index.php
| |
− | cd ..
| |
− | mv ~/docker4php/Dockerfile ./php/
| |
| | | |
− | [root@localhost npm4compose]# tree
| + | sudo apt update |
− | .
| + | sudo apt install nginx |
− | |-- conf.d
| |
− | | `-- nginx.conf
| |
− | |-- docker-compose.yml
| |
− | |-- html
| |
− | | `-- index.php
| |
− | `-- php
| |
− | `-- Dockerfile
| |
| | | |
| | | |
| + | sudo apt install mariadb-server |
| + | sudo mysql_secure_installation |
| | | |
− | vi docker-compose.yml
| + | sudo apt install php-fpm php-mysql |
| | | |
− | version: '3'
| + | sudo mkdir /var/www/your_domain |
− | services:
| |
− | nginx:
| |
− | image: nginx:latest
| |
− | ports:
| |
− | - "80:80"
| |
− | depends_on:
| |
− | - "php"
| |
− | volumes:
| |
− | - "${PWD}/conf.d:/etc/nginx/conf.d"
| |
− | - "${PWD}/html:/usr/share/nginx/html"
| |
− | networks:
| |
− | - d_net
| |
− | container_name: "compose-nginx"
| |
− | php:
| |
− | build: ./php #指定build Dockerfile生成镜像
| |
− | image: php:7.1-fpm-alpine
| |
− | ports:
| |
− | - "9000:9000"
| |
− | volumes:
| |
− | - "$PWD/html:/var/www/html"
| |
− | networks:
| |
− | - d_net
| |
− | container_name: "compose-php"
| |
− | mysql:
| |
− | image: mysql:5.7
| |
− | ports:
| |
− | - "3306:3306"
| |
− | environment:
| |
− | MYSQL_DATABASE: 'db'
| |
− | # So you don't have to use root, but you can if you like
| |
− | MYSQL_USER: 'evan'
| |
− | # You can use whatever password you like
| |
− | MYSQL_PASSWORD: '123456'
| |
− | # Password for root access
| |
− | MYSQL_ROOT_PASSWORD: '123456'
| |
− | expose:
| |
− | # Opens port 3306 on the container
| |
− | - '3306'
| |
| | | |
− | networks:
| + | sudo chown -R $USER:$USER /var/www/your_domain |
− | - d_net
| |
− | container_name: "compose-mysql"
| |
| | | |
− | networks:
| + | sudo vi /etc/nginx/sites-available/your_domain |
− | d_net:
| |
− | driver: bridge
| |
| | | |
| + | /etc/nginx/sites-available/your_domain |
| + | server { |
| + | listen 80; |
| + | listen [::]:80; |
| | | |
| + | root /var/www/your_domain; |
| + | index index.php index.html index.htm; |
| | | |
− | vi conf.d/nginx.conf
| + | server_name your_domain; |
| | | |
− | server{
| + | location / { |
− | listen 80;
| + | try_files $uri $uri/ =404; |
− | server_name a.com;
| |
− | #server_name localhost;
| |
− | location /{ | |
− | root /var/www/html;
| |
− | index index.php index.html index.htm;
| |
− | }
| |
− | error_page 500 502 503 504 /50x.html;
| |
− | location = /50x.html {
| |
− | root /var/www/html;
| |
| } | | } |
| + | |
| location ~ \.php$ { | | location ~ \.php$ { |
− | include fastcgi_params; | + | include snippets/fastcgi-php.conf; |
− | fastcgi_pass php:9000; | + | fastcgi_pass unix:/var/run/php/php7.3-fpm.sock; |
− | fastcgi_index index.php;
| |
− | fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;
| |
| } | | } |
− |
| |
| } | | } |
| | | |
| + | sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/ |
| | | |
− | docker-compose up -d
| + | nginx -t && systemctl reload nginx |
− | </pre>
| |
− | | |
− | =php连接mysql=
| |
− | | |
− | =测试检查=
| |
− | <pre>
| |
− | [root@work2 npm4compose]# docker-compose ps
| |
− | Name Command State Ports
| |
− | -----------------------------------------------------------------------------------------
| |
− | compose-mysql docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp, 33060/tcp
| |
− | compose-nginx nginx -g daemon off; Up 0.0.0.0:80->80/tcp
| |
− | compose-php docker-php-entrypoint php-fpm Up 0.0.0.0:9000->9000/tcp
| |
− | | |
− | | |
− | docker ps
| |
− | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
| |
− | 0e2e7b200b47 nginx:latest "nginx -g 'daemon of…" 5 minutes ago Up 5 minutes 0.0.0.0:80->80/tcp compose-nginx
| |
− | b0990f13ddd2 mysql:5.7 "docker-entrypoint.s…" 5 minutes ago Up 5 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp compose-mysql
| |
− | e0ff739663a9 php:7.1-fpm-alpine "docker-php-entrypoi…" 5 minutes ago Up 5 minutes 0.0.0.0:9000->9000/tcp compose-php
| |
− | | |
− | | |
− | | |
− | http://192.168.88.22/index.php
| |
− | | |
− | dns
| |
− | | |
− | cat /etc/hosts
| |
− | 192.168.88.22 a.com
| |
− | | |
− | </pre>
| |
− | | |
− | | |
− | ==mysql暂时不用这个==
| |
− | docker pull mysql:8.0
| |
− | | |
− | [[How to Create a MySql Instance with Docker Compose]]
| |
− | | |
− | =trouble=
| |
− | <pre> docker-compose up -d
| |
− | ERROR: The Compose file './docker-compose.yml' is invalid because:
| |
− | services.php.networks contains {"d_net": null}, which is an invalid type, it should be a string
| |
− | | |
− | networks:
| |
− | - d_net : :不能要
| |
− | | |
− | | |
− | | |
| | | |
− | [root@localhost npm4compose]# cat php/Dockerfile
| |
− | FROM php:7.1-fpm-alpine
| |
− | Run apt-get update \
| |
− | && apt install iputils-ping \
| |
− | && docker-php-ext-install mysqli && docker-php-ext-enable mysqli
| |
− | 这个alpine 他居然安装软件是apt 我去 这么搞笑
| |
| | | |
− | nginx:
| + | vi /var/www/your_domain/info.php |
− | image: nginx:lastest
| + | |
− | ports:
| |
− | 这些单词 拼写 我去 ,
| |
| | | |
| + | /var/www/your_domain/info.php |
| + | <?php |
| + | phpinfo(); |
| + | ?> |
| | | |
| + | http://your_domain/info.php |
| | | |
− | 定义网络叫app_net 写在应用又写了d_net
| |
| | | |
| | | |
− | container_name: "compose-php"
| |
− | mysql:
| |
− | image: mysql:8.0
| |
− | ports:
| |
− | - "3306:3306"
| |
− | environment:
| |
− | - MYSQL_ROOT_PASSWORD={your_passwd}
| |
− | networks:
| |
− | - d_net
| |
− | container_name: "compose-mysql"
| |
− | networks: #配置docker 网络
| |
− | app_net:
| |
− | driver: bridge
| |
| </pre> | | </pre> |
− |
| |
− | =2020年 11月 15日 星期日 13:34:00 CST给phper=
| |
− | https://github.com/evan886/docker-compose-lnmp
| |
− |
| |
− | 有空要结合我上面的 再搞好一些
| |
− |
| |
− | [https://www.jianshu.com/p/79c650b1918d docker-compose搭建lnmp运营环境]
| |
− |
| |
− | [https://learnku.com/articles/31344 避坑!用 Docker 搞定 PHP 开发环境搭建(Mac、Docker、Nginx、PHP-FPM、XDebug、PHPStorm、VSCode) ]
| |
− |
| |
− | [https://zhuanlan.zhihu.com/p/59863793 docker部署MySQL+PHP-FPM+Nginx服务]
| |
− |
| |
− | =see also=
| |
− |
| |
− | [https://blog.csdn.net/hanlicun/article/details/79049598 基于Dockerfile构建LNMP(good-php扩展php7+mysql+nginx]
| |
− |
| |
− |
| |
− |
| |
− | [https://github.com/Tinywan/dnmp docker-compose部署LNMP环境 Nginx(Openresty)、MySQL5.7、PHP7.2(5.6)、Redis5.0、PHPMyAdmin、Xdebug]
| |
− |
| |
− | [https://www.jyoryo.com/index.php/archives/96.html Nginx 1.15.X Linux Debian/Ubuntu 源码编译安装 LNMP之Nginx]
| |
− |
| |
− | [https://www.jyoryo.com/index.php/archives/1.html Linux安装优化配置LNMP LEMP]
| |
− |
| |
− | [https://www.jyoryo.com/index.php/archives/89.html MySQL 5.6 Linux Debian/Ubuntu源码编译安装 LNMP之MySQL]
| |
− |
| |
− |
| |
− | [https://blog.csdn.net/whw8007/article/details/8828613 在 Debian 上源码编译和安装 Nginx+PHP+FastCGI+MySQL]
| |
− |
| |
− | [https://www.jianshu.com/p/0561d3cfccda good_testmysql-docker-compose搭建nginx+php+mysql]
| |
− |
| |
− | [https://www.chadou.me/p/218 从零开始学习Docker - 搭建 nginx+mysql+php 环境]
| |
− |
| |
− | [https://kim1024.github.io/2018/10/30/lnmp-docker.html 使用Docker-Compose搭建nginx+php+mysql基础应用]
| |
− |
| |
− | https://github.com/kkmike999/docker-compose-php-nginx-mysql/blob/master/docker-compose.yml
| |
− |
| |
− | [https://blog.csdn.net/hellozhxy/article/details/80239697 dockerfile构建nginx并结合php]
| |
− |
| |
− | [https://blog.csdn.net/tang05709/article/details/77996246 compose install more PHP extensions]
| |
− |
| |
− | [https://my.oschina.net/yifanxiang/blog/3001902 使用docker-composer创建一个mysql容器,并创建一个database且指定其编码集为中文utf8]
| |
− |
| |
− | [https://blog.csdn.net/weixin_33786077/article/details/87560933 Docker docker-compose 配置Nginx+Php+Mysql开发环境]
| |
− |
| |
− | [https://blog.csdn.net/bbwangj/article/details/81352154 docker-compose搭建 Nginx+PHP+MySQL 环境]
| |
− |
| |
− |
| |
− |
| |
− |
| |
− | [https://www.jianshu.com/p/fcd0e542a6b2 Docker多容器部署LNMP环境]
| |
− |
| |
− | [https://www.chadou.me/p/218 从零开始学习Docker - 搭建 nginx+mysql+php 环境]
| |
− |
| |
− | [https://segmentfault.com/a/1190000012795525 从零构建一个基于Docker的Laravel应用]
| |
− |
| |
− |
| |
− | [https://blog.csdn.net/Gekkoou/article/details/80915694 docker-compose 部署 nginx + php-fpm + mysql + phpmyadmin]
| |
− |
| |
− |
| |
− | [https://github.com/kkmike999/docker-compose-php-nginx-mysql docker-compose php + nginx + mysql]
| |
| | | |
| | | |
− | [https://www.jianshu.com/p/3384e342502b 使用Docker快速搭建Nginx+PHP-FPM环境] | + | [https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mariadb-php-lemp-stack-on-debian-10 How To Install Linux, Nginx, MariaDB, PHP (LEMP stack) on Debian 10] |
| | | |
| + | =参考= |
| + | [http://www.wdlinux.cn/lanmp/install.html wdlinux phps.sh] |
| | | |
− | [[category:Container]] [[category:compose]] | + | [[category:ops]] [[category:linux]] [[category:shell]] |