2020-07-10  258 views 发表评论

Docker配置开发环境(PHP+Nginx+Mysql+Redis)

 标签:

很久没更新网站了,今天写一篇关于docker的吧,至于docker是什么,能看到这篇文章的人肯定不用多做介绍,下载docker也不做赘述了!本次是基于MAC下的配置流程。

    一 安装nginx

#获取默认最新版
docker pull nginx:latest 

#在本地创建nginx配置目录,用作启动时映射配置文件,我在的创建路径是 ~/Data/nginx/conf/conf.d ,
#实际可根据自己情况,只要在启动时地址写对就行。启动:

docker run --name nginx-dev -p 80:80 \
 -v ~/Data/project:/usr/share/nginx/html \
 -v ~/Data/nginx/conf/conf.d/:/etc/nginx/conf.d \
-d nginx

    #ngix-dev 容器名,可自定义。
    #-p 80:80 将本地80端口映射到容器中nginx的80端口,也可自定义,不冲突就行。
    #-v 将本地项目目录映射到nginx容器的目录中,将nginx配置文件映射至nginx配置目录,亦可自定义。
    #-d (镜像)后端运行

    
#创建一个nginx配置文件,如test-php.conf,此处有坑,需注意!可能会遇到502或者404或者file not found!
#在安装PHP时再详细介绍。配置demo

server {
    listen       80;
    server_name  localhost;

    location / {
        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$ {
        root   /usr/share/nginx/html;
        fastcgi_pass   172.17.0.4:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

    二 安装PHP

#安装7.2的版本
docker pull php:7.2-fpm 

#运行映射
docker run -p 9000:9000 --name  phpfpm -v ~/Data/project:/usr/share/nginx/html -d php:7.2-fpm 
docker inspect --format='{{.NetworkSettings.IPAddress}}' phpfpm #查看php镜像的ip地址

#配置文件 
#问题 出现file not found 时,在PHP配置中增加root   /usr/share/nginx/html;
#问题 出现502 时,查看PHP镜像的ip地址,修改fastcgi_pass为PHP镜像IP地址;

 三 安装mysql

#获取最新版的mysql
docker pull mysql:latest
docker run -itd --name mysql-dev -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql
    #MYSQL_ROOT_PASSWORD=root 配置用户密码
#进入容器连接 mysql 服务,或外部使用IP访问
docker exec -it mysql-dev /bin/bash

 四 安装redis

docker pull redis:latest
docker run -itd --name redis-dev -p 6379:6379 redis
docker exec -it redis-dev /bin/bash  #进入容器,使用redis-cli 连接 redis 服务

以上就行完整的流程,之后在项目中创建phpinfo.php,链接访问测试!可加好友一起交流学习!

1594312385769619.jpeg

给我留言

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: