zoukankan      html  css  js  c++  java
  • 使用Docker快速搭建Nginx+PHP-FPM环境

    实战

    1. 下载nginx官方镜像和php-fpm镜像
    docker pull nginx
    docker pull bitnami/php-fpm
     
     

    笔者未进行更改docker源,依然是官方源。
    当然,你可以使用中国源。

    1. 使用php-fpm镜像开启php-fpm应用容器
    docker run -d --name myFpm  -v /var/www/html:/usr/share/nginx/html bitnami/php-fpm

    -d : 该参数为后台运行之意
    -v : 指定宿主机与容器的映射关系。/var/www/html为宿主机的项目目录(自定义的),/usr/share/nginx/html为nginx服务器项目默认的路径。

    1. 使用nginx镜像开启nginx应用容器
    docker run -d --name myNginx -p 8080:80 -v /var/www/html:/usr/share/nginx/html nginx

    -p : 该参数设置端口对应的关系。所有访问宿主机8080端口的URL会转发到nginx容器的80端口。

    1. 查看对应的IP信息
      • 首先查看是否启动成功
    docker ps -a
     
     

    可以看到,上述在STATUS一栏中显示UP,其含义为正在运行。
    * 查看IP信息

    docker inspect myFpm | grep "IPAddress"
     
     
    这里查找的IPAddress就是 FPM容器的IP地址
    1. 修改nginx的相关配置
      在容器中是没有vim命令的,所以不能在容器中直接修改配置文件。所以我们必须通过变通的方式去解决这个问题,否则只能在每个容器中安装vim。
    • 首先登录到对应的容器中,查看配置信息路径,这在之后修改时会用到。
    docker exec -it myNginx /bin/bash
     
     

    -i : --interactive,交互模式。
    -t : --tty,开启一个伪终端。
    /bin/bash : 必须写,否则会报错。这是开始伪终端时,进入bash界面,也就是命令行界面。

    • 查看对应的配置文件位置
    /etc/nginx/conf.d/default.conf
     
     
    • 退出命令行,不要使用exit,因为exit会让容器停止。这里使用ctrl + p + q来退出容器。

    • 使用专用的复制命令将配置文件复制到宿主机,然后在宿主机进行编辑(这就是变通的方法)

    docker cp myNginx:/etc/nginx/conf.d/default.conf ./default.conf

    这里用到了上一步查询到的配置文件路径信息

    • 在宿主机修改配置文件的php部分,内容如下:
    location ~ .php$ {

         fastcgi_pass 172.17.0.2:9000;
         fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME
    /usr/share/nginx/html$fastcgi_script_name;
        fastcgi_param SCRIPT_NAME $fastcgi_script_name;
        include fastcgi_params;
    }
    • 再次使用复制命令将其复制到容器中,然后再次进入容器中,将nginx配置文件重新载入
    docker cp ./default.conf myNginx:/etc/nginx/conf.d/default.conf
    • 进入到nginx容器中重新载入配置文件
    docker exec -it myNginx /bin/bash
    service nginx reload

    成功了

    我看了一下,用到的模块还都有。

     
    图片.png
     
    图片.png
     
     
     
     



    作者:王宝花
    链接:https://www.jianshu.com/p/3384e342502b
    來源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

  • 相关阅读:
    ASP.NET Core – Web API Versioning
    ASP.NET Core – Handle Error on Web API
    ASP.NET Core – MVC vs Razor Page
    EF Core – Library use EF
    ASP.NET Core – Filter
    GeoServer地图开发解决方案
    参透人生的一道计算题
    iscroll4 精讲
    各种分割线Html代码
    iBatis入门教程
  • 原文地址:https://www.cnblogs.com/crystaltu/p/9305091.html
Copyright © 2011-2022 走看看