页面“Docker lnmp Docker-compose搭建nginx+php+mysql”与“Lnmp”之间的差异

来自linux中国网wiki
(页面间的差异)
跳到导航 跳到搜索
 
 
第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]]

2021年7月10日 (六) 13:17的版本

start

How To Install Linux, Nginx, MariaDB, PHP (LEMP stack) on Debian 10 debinalnmp

# for zabbix 
apt install php7.3-bcmath  php7.3-mbstring php7.3-gd  php7.3-xml   libxml++2.6-dev

#kali
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

sudo apt update
sudo apt install nginx


sudo apt install mariadb-server
sudo mysql_secure_installation

sudo apt install php-fpm php-mysql

sudo mkdir /var/www/your_domain

sudo chown -R $USER:$USER /var/www/your_domain

sudo vi /etc/nginx/sites-available/your_domain

/etc/nginx/sites-available/your_domain
server {
    listen 80;
    listen [::]:80;

    root /var/www/your_domain;
    index index.php index.html index.htm;

    server_name your_domain;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
    }
}

sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/

nginx -t && systemctl reload nginx


vi /var/www/your_domain/info.php
 

/var/www/your_domain/info.php
<?php
phpinfo();
?>

http://your_domain/info.php




How To Install Linux, Nginx, MariaDB, PHP (LEMP stack) on Debian 10

参考

wdlinux phps.sh