美文网首页
php开发docker环境配置

php开发docker环境配置

作者: 起起起起起 | 来源:发表于2019-08-07 21:38 被阅读0次

    镜像的创建

    Dockerfile

    FROM php:5.6-fpm
    
    #安装扩展
    
    #安装oracle扩展需要的文件
    COPY ./extensions/oci8 /opt/
    
    RUN \
      apt-get update \
      # 安装源码包里面的扩展
      && docker-php-ext-install -j$(nproc) bcmath pdo_mysql \
      #安装gd库
      # && apt-get install -y libfreetype6-dev libpng-dev libjpeg62-turbo-dev \
      # && docker-php-ext-install -j$(nproc) gd \
      #安装xdebug扩展
      && cd /opt && curl -o xdebug-2.4.0.tgz http://pecl.php.net/get/xdebug-2.4.0.tgz && tar -zxvf xdebug-2.4.0.tgz && cd xdebug-2.4.0 && phpize && ./configure && make && make install &&  docker-php-ext-enable xdebug \
      #安装redis扩展
      && cd /opt && curl -o redis-4.3.0.tgz  http://pecl.php.net/get/redis-4.3.0.tgz && tar -zxvf redis-4.3.0.tgz && cd redis-4.3.0 && phpize && ./configure && make && make install && docker-php-ext-enable redis \
      #安装gearman扩展
      && cd /opt && curl -o gearman-1.1.2.tgz  http://pecl.php.net/get/gearman-1.1.2.tgz && tar -zxvf gearman-1.1.2.tgz && apt-get install -y libgearman-dev && cd gearman-1.1.2 && phpize && ./configure && make && make install && docker-php-ext-enable gearman \
      # && pecl install redis xdebug-2.4.0 && docker-php-ext-enable redis xdebug \
      #安装oracle扩展, 如果不需要请注释掉
      && sh /opt/install-oci8.sh
    

    base镜像选择的是php官方镜像,它提供了docker-php-ext等工具,相当好用

    创建容器

    启动fpm容器

    docker run -d --name php -v /Volumes/work:/code dev/php56
    

    这里没有使用-p指定暴露的端口,为什么呢?

    启动nginx容器

    docker run -d --name nginx -p 80:80  -v /Volumes/work:/code
     -v /opt/docker/conf/nginx:/etc/nginx/conf.d --link php:php  nginx
    

    之所以fpm容器没有暴露端口是因为,nginx容器链接到了fpm容器
    nginx location配置

    location ~ \.php($|/) {
            fastcgi_pass               php:9000;
            fastcgi_split_path_info   ^(.+?\.php)(/.+)$;
            fastcgi_param           SCRIPT_FILENAME /code/shopCrm/web/$fastcgi_script_name;
            fastcgi_param           PATH_INFO       $fastcgi_path_info;
            include                 fastcgi_params;
        }
    

    location的里面php:9000, 因为使用的是link所以可以直接使用php代表fpm的ip地址

    相关文章

      网友评论

          本文标题:php开发docker环境配置

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