zoukankan      html  css  js  c++  java
  • docker 安装nginx、php

    网络环境准备

    docker network create --subnet 172.18.0.0/16 my-net
    

    redis 安装

    docker run -d --name redis -p 6379:6379 redis --requirepass "123"
    

    nginx安装

    docker run --name web-nginx -p 80:80 -v /usr/local/var/www:/usr/share/nginx/html -d nginx
    

    这里,因为设置了本地80端口映射,先确定本地是否80端口被占用则kill掉

    lsof -i:80
    kill -9 pid
    

    因为是mac环境,需要提前配置路径权限:

    php7.2安装

    docker run -d --name php-fpm -p 9000:9000 -v /usr/local/var/www:/usr/share/nginx/html php:7.2-fpm
    

    php扩展安装

    pdo_mysql扩展

    扩展目录,为:/usr/src/php/ext/,因为容器自带pdo_mysql,可以直接安装

    docker-php-ext-install pdo pdo_mysql
    

    redis扩展

    curl -L -o ~/redis.tar.gz https://codeload.github.com/phpredis/phpredis/tar.gz/5.3.0
    tar xfz redis.tar.gz
    mv phpredis-5.3.0 /usr/src/php/ext/redis (如果没有路径/usr/src/php/ext/,mkdir -p创建)
    docker-php-ext-install redis
    

    xdebug扩展

    curl -L -o ~/xdebug-3.0.3.tgz https://xdebug.org/files/xdebug-3.0.3.tgz
    tar xfz xdebug-3.0.3.tgz
    mv xdebug-3.0.3 /usr/src/php/ext/xdebug
    docker-php-ext-install xdebug
    

    重启php容器

    docker restart php-fpm
    

    查看nginxphp容器是否正确运行

    docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
    0d642340b24a        php:7.2-fpm         "docker-php-entrypoi…"   9 minutes ago       Up 9 minutes        0.0.0.0:9000->9000/tcp   php-fpm
    06c88a111a61        nginx               "/docker-entrypoint.…"   4 hours ago         Up 3 hours          0.0.0.0:80->80/tcp       web-nginx
    

    配置nginx,启用php

    # 进入容器
    docker exec -it php-fpm bash
    # 查看配置文件
    whereis nginx
    nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
    # vim编辑文件(如果没有则先下载安装vim)
    cd /etc/nginx/conf.d
    cp default.conf  default.conf.bak
    vim default.conf
    # 修改内容
        location ~ .php$ {
          root           html;
          fastcgi_pass   172.18.0.3:9000;      # 也可以通过别名指定php-alias
          fastcgi_index  index.php;
          fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
          include        fastcgi_params;
      }
    # 172.18.0.3为php容器在bridge网络下的ip,通过命令查看:
    docker inspect php-fpm | grep -i 'IPAddress'
    
    # 停止php容器等,指定IP地址
    docker network connect --ip 172.18.0.2 --alisa nginx-alias my-net web-nginx
    docker network connect --ip 172.18.0.3 --alisa php-alias my-net php-fpm
    docker network connect --ip 172.18.0.4 --alisa redis-alias my-net redis
    

    测试是否生效

    vim /usr/local/var/www/phpinfo.php
    <?php
      echo phpinfo();
    ?>
    

    浏览器访问:localhost/phpinfo.php , 看到正确信息则说明生效了

    其他补充内容

    如果创建时未指定 --restart=always ,可通过 update 命令更改

    docker update --restart=always 容器ID
    
  • 相关阅读:
    信息安全系统设计第一次实验报告
    信息安全系统设计第二次&第四次实验报告
    信息安全系统设计基础第十一周20135334赵阳林
    信息安全系统设计基础第6周学习总结-------20135334赵阳林
    信息安全系统设计基础第五周学习总结------20135334赵阳林
    信息安全系统设计基础第四周学习总结------20135334赵阳林
    信息安全系统设计基础第三周学习总结 ---20135334 赵阳林
    信息安全系统设计基础第二周学习总结
    tcp编程:聊天室中的私聊
    tcp编程:聊天室
  • 原文地址:https://www.cnblogs.com/chq3272991/p/14522548.html
Copyright © 2011-2022 走看看