Docker - Nginx + Php-fpm 开发环境

Posted ﹎斑斓的梦ぷ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker - Nginx + Php-fpm 开发环境相关的知识,希望对你有一定的参考价值。

下载镜像

docker pull nginx
docker pull bitnami/php-fpm

环境配置

在物理机构建好你的开发环境需要的配置目录以及Nginx的配置文件,方便管理。

技术分享图片

构建容器

docker run --name myFpm  -v /Users/zhen/www-root/work:/usr/share/nginx/html -v /Users/zhen/docker/lnmp/nginx:/etc/nginx/conf.d -d bitnami/php-fpm

docker run --name myNginx -p 80:80  -v /Users/zhen/www-root/work:/usr/share/nginx/html -v /Users/zhen/docker/lnmp/nginx:/etc/nginx/conf.d -d nginx

虽然一切正常但是还是无法通过物理机器访问,查看下ip信息,发现了问题。来修改Nginx配置吧。

docker inspect myFpm | grep "IPAddress"

docker inspect myNginx | grep "IPAddress"

技术分享图片

server 
{
    listen 80;
    server_name  xxxx.com xxxxx.com xxxx.com

    index index.html index.htm index.php;

    root /usr/share/nginx/html/mhadmin;
    
    #access_log /tmp/mhadmin.log;
    #error_log /tmp/mhadmin_error.log error;
    
    location / {
        index  index.php index.html;
        try_files $uri $uri/ /index.php?$query_string;

        if (!-e $request_filename) {
            rewrite ^(.*)$ /index.php?s=$1 last;
            break;
        }
    }

    location ~ \.php {
        fastcgi_pass   172.17.0.2:9000; 
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    location ~ /\.ht {
        deny  all;
    }
}


修改
fastcgi_pass   127.0.0.1:9000; 
为:
fastcgi_pass   172.17.0.2:9000;

搞定。

常用的命令

进入容器

docker exec -it myNginx /bin/bash

复制容器内的配置到宿主机器

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

复制宿主机器文件到容器

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

nginx 重新加载配置

service nginx reload

停止所有容器

docker stop $(docker ps -a -q)

删除所有容器

docker rm $(docker ps -a -q)

以上是关于Docker - Nginx + Php-fpm 开发环境的主要内容,如果未能解决你的问题,请参考以下文章

Docker 生产就绪 php-fpm 和 nginx 配置

Docker - Nginx + Php-fpm 开发环境

使用 docker 在 CentO 上设置 PHP-FPM、Nginx、Mariadb

如何为多个PHP-FPM容器构建单一的Nginx Docker镜像

Docker 安装Nginx + PHP-FPM 7.2 + Reids + Composer

使用 nginx、PHP-FPM 和 docker 处理 PHP 文件时出现 403 错误