美文网首页
Docker搭建Nginx+PHP

Docker搭建Nginx+PHP

作者: 山哥的哥 | 来源:发表于2021-01-09 17:48 被阅读0次

    PHP安装

    1. 拉取官方镜像
    ### 拉取php5.6 fpm的镜像
    docker pull php:5.6-fpm
    
    ### 查看镜像
    docker images
    
    REPOSITORY         TAG            IMAGE ID       CREATED         SIZE
    php                5.6-fpm        3458979c7744   23 months ago   344MB
    
    1. 运行php容器
    docker run --name php56fpm -d \
    -v /work/docker/www:/www \
    php:5.6-fpm
    

    命令说明:

    --name php56fpm 命名容器名称为php56fpm
    -d 后台运行容器
    -v /work/docker/www:/www 将宿主机目录/work/docker/www挂载到容器的/www
    php:5.6-fpm 指定镜像为php,TAG为5.6-fpm

    Nginx安装

    1. 拉取官方镜像
    ### 拉取镜像
    docker pull nginx
    
    ### 查看镜像
    docker images
    
    REPOSITORY         TAG            IMAGE ID       CREATED         SIZE
    nginx              latest         ae2feff98a0c   3 weeks ago     133MB
    
    1. 运行Nginx容器
    docker run --name myNginx -p 8080:80 -d \
    -v /work/docker/www:/www \
    -v /work/docker/nginx/conf.d:/etc/nginx/conf.d \
    --link php56fpm:php \
    nginx
    

    命令参数说明:

    --name myNginx 命名容器名称为myNginx
    -p 8080:80 将容器的80端口映射到宿主机的8080端口
    -d 后台运行容器,并返回容器ID
    -v /work/docker/www:/www 将宿主机目录/work/docker/www挂载到容器的/www
    -v /work/docker/nginx/conf.d:/etc/nginx/conf.d 将宿主机目录/work/docker/nginx/conf.d挂载到容器的/etc/nginx/conf.d
    --link php56fpm:php 把php56fpm的网络并入nginx容器,并修改nginx容器的/etc/hosts,让nginx可以通过php:9000访问到php-fpm
    nginx 指定镜像名称

    1. Nginx配置
      修改/work/docker/nginx/conf.d/default.conf配置文件如下:
    server {
        listen       80;
        server_name  localhost;
    
        location / {
            root   /www;
            index  index.html index.htm index.php;
        }
    
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    
        location ~ \.php$ {
            fastcgi_pass   php:9000; #这个就是--link并入的网络连接
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /www$fastcgi_script_name; #特别说明:这里的/www要与php56fpm容器里映射的php脚本路径一致,否则php-fpm将找不到php脚本,会报404错误
            include        fastcgi_params;
        }
    }
    

    接下来我们在 /work/docker/www 目录下创建 index.php,代码如下:

    <?php
    phpinfo();
    

    浏览器打开http://127.0.0.1:8080/index.php,显示如下:

    phpinfo.png

    相关文章

      网友评论

          本文标题:Docker搭建Nginx+PHP

          本文链接:https://www.haomeiwen.com/subject/zubcaktx.html