美文网首页
Docker 配置nginx+php+mysql

Docker 配置nginx+php+mysql

作者: Super_龙 | 来源:发表于2020-01-16 17:39 被阅读0次

    关于docker的详细安装与原理不做过多介绍, 我一般只用nginx+php+mysql开发用, 因为之前有几套不同版本的代码所以用docker来解决

    我这里直接在docker下使用容器来关联的 并没有单独安装系统 因为本地开发 装系统在装插件会占很大内存

    • mysql 我一般习惯先装mysql 这样按顺序往下执行
    docker pull mysql:5.6
    

    安装mysql5.6
    运行mysql

    docker run -itd --name mysql-dev -p 33060:3306 --privileged=true -e MYSQL_ROOT_PASSWORD=123456  742f7d5a4104
    

    --name 起一个名字不和存在的容器重复 因为本地还有3306端口占用所有换了一个端口 --privileged=true 使用root权限 后边是密码 742f7d5a4104这个是镜像的id 可以使用 docker images 查看刚下载的mysql镜像id
    运行后出现一串字符串则运行成功了

    • 安装php7.2
    docker pull php:7.2-fpm
    docker run --name shop-php -d -p 9000:9000 -v /Users/gly/Desktop/work/php/tpshop:/var/www/html --link mysql-dev bfa9828f1dc3
    

    关联上边的mysql-dev启动 设置好路径映射

    • 安装nginx
    docker pull nginx
    docker run --name shop-nginx -d -p 10000:80 -v  /Users/gly/Desktop/work/php/tpshop:/usr/share/nginx/html --link shop-php --volumes-from shop-php  c7460dfcab50
    

    关联php运行映射端口号10000 关联项目路径

    这时候还需要修改nginx配置文件

    location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm index.php;
            try_files $uri $uri/ /index.php?$query_string;
        }
    
    location ~ \.php$ {
            root           html;
            fastcgi_pass   shop-php:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME      
            /var/www/html$fastcgi_script_name;
            include        fastcgi_params;
        }
    

    shop-php:9000 是修改后的

    docker cp /Users/gly/Desktop/work/docker/default.conf shop-nginx:/etc/nginx/conf.d/default.conf
    docker restart nginx
    

    替换配置文件 重启nginx


    image.png

    运行项目php还需要安装扩展

    docker exec -i -t shop-php /bin/bash 以终端模式进入php
    php -m 查看扩展
    docker-php-ext-install pdo_mysql
    安装yaf扩展
    RUN pecl install yaf-3.0.8 && docker-php-ext-enable yaf
    配置入口路径
    root /usr/share/nginx/html/public;
    fastcgi_param SCRIPT_FILENAME /var/www/html/public$fastcgi_script_name;
    获取容器内ip
    docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器name或id
    修改php.ini 直接在下边增加ini文件就可以了
    yaf-php:/usr/local/etc/php/conf.d/yaf.ini

    docker 常用的命令

    docker pull 拉取镜像
    docker images 列出本地镜像
    docker ps  显示正在运行的容器
    docker ps -a  显示所有容器
    docker rm 容器名 删除容器
    docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称|容器id 查看容器ip
    docker cp 目录 容器:目录 复制文件
    docker start/restart/stop  容器名 启动/重启/停止 容器
    docker exec -i -t 容器名 /bin/bash 终端形式进入容器 exit 退出容器命令
    docker php 安装扩展 pecl install yaf-3.0.8 && docker-php-ext-enable yaf 类似方法 (正常可以先执行后边,有的php已经安装了 像pdo_mysql直接执行后边就可以了 如果不好用在前面的)
    修改php.ini 直接在下边增加ini文件就可以了
    容器名称:/usr/local/etc/php/conf.d/myphp.ini
    修改mysql配置 /etc/mysql/my.cnf
    mysql -uroot -p123456 进入mysql操作
    

    分享一个docker配置读写分离的文章我测试过了没有问题

    重启 php 与 nginx 至此配置完毕 本人也是刚开始使用, 如果问题提出来大家一起验证

    相关文章

      网友评论

          本文标题:Docker 配置nginx+php+mysql

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