通过 phpdocker.io/generator 搭建DNMP环境

通过 phpdocker.io/generator 搭建DNMP环境

一,在 phpdocker.io 页面上选择组件

1. 访问:https://phpdocker.io/generator
2. 选择组件版本,填写配置
  • step 1. 填写项目名称和端口号:

    填写项目名称和端口号

  • step 2. 选择 PHP 版本和扩展模块:

    选择版本和扩展模块

  • step 3. 开启MySQL和ES:

    开启MySQL和ES

  • step 4. 选择开启 0 配置的服务组件:

    选择开启 0 配置的服务组件

3. 生成压缩文件

点击 “Generate project archive” 按钮,会自动下载一个压缩包到本地。

4. 将压缩文件解压到自己准备好的目录中

二, 各组件的配置

  • 1. Docker-compose.yml 配置
    ###############################################################################
    #                          Generated on phpdocker.io                          #
    ###############################################################################
    version: "3.1"
    services:
    
        memcached:
          image: memcached:alpine
          container_name: dockerphp74-memcached
    
        mailhog:
          image: mailhog/mailhog:latest
          container_name: dockerphp74-mailhog
          ports:
            - "8075:8025"
    
        redis:
          image: redis:alpine
          container_name: dockerphp74-redis
    
        mysql:
          image: mysql:5.7
          container_name: dockerphp74-mysql
          working_dir: /application
          volumes:
            - .:/application
          environment:
            - MYSQL_ROOT_PASSWORD=123456
            - MYSQL_DATABASE=docker_db
            - MYSQL_USER=root
            - MYSQL_PASSWORD=123456
          ports:
            - "8076:3306"
    
        elasticsearch:
          image: elasticsearch:6.5.4
          container_name: dockerphp74-elasticsearch
    
        webserver:
          image: nginx:alpine
          container_name: dockerphp74-webserver
          working_dir: /application
          volumes:
            - .:/application
            - /e/webroot:/application/public
            - ./phpdocker/nginx/conf.d:/etc/nginx/conf.d/
            - /e/docker_space/logs/nginx/74:/var/log/nginx/
          ports:
           - "8074:80"
    
        php-fpm:
          build: phpdocker/php-fpm
          container_name: dockerphp74-php-fpm
          working_dir: /application
          volumes:
            - .:/application
            - /e/vm-web-root:/application/public
            - ./phpdocker/php-fpm/php-ini-overrides.ini:/etc/php/7.4/fpm/conf.d/99-overrides.ini
    
  • 2. PHP 的相关配置
    • step 1. 切换到 E:\docker_space\dockerphp56\phpdocker\php-fpm 目录
    • step 2. 新增 sources.list 设置

      打开 Dockerfile 文件,修改后的内容如下:

      FROM phpdockerio/php74-fpm:latest
      WORKDIR "/application"
      COPY ./sources.list /etc/apt/sources.list  // 这一行是新增的 sources.list 配置(也可不增加)。
      
      # Fix debconf warnings upon build
      ARG DEBIAN_FRONTEND=noninteractive
      
      # Install selected extensions and other stuff
      RUN apt-get update \
          && apt-get -y --no-install-recommends install  php5-memcached php5-mongo php5-mysql php5-redis php5-sqlite php5-adodb php5-enchant php5-exactimage php5-gd php5-geos php5-gmp php5-geoip php5-pecl-http php5-igbinary php5-imap php5-interbase php5-intl php5-imagick php5-remctl php5-ldap php5-libvirt-php php5-mapscript php5-memcache php5-msgpack php5-oauth php5-radius php5-phpdbg php5-pspell php5-raphf php5-recode php5-ssh2 php5-snmp php5-solr php5-stomp php5-tidy php5-uprofiler php5-xdebug php5-xhprof php5-xmlrpc php5-xsl php5-zmq \
          && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*
      
    • step 3. 新建 sources.list 文件

      文件内容如下:

      deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
      deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
      deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
      deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
      deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
      
    • step 4. 新增 date.timezone 配置

      打开 php-ini-overrides.ini 文件,添加时区配置,修改后的内容如下:

      upload_max_filesize = 100M
      post_max_size = 108M
      date.timezone = PRC   # 这里修改为自己的时区设置
      

三,Nginx的相关配置

  • step 1. 切换到 E:\docker_space\dockerphp74\phpdocker\nginx 目录

    说明:目录下已经存在一个 nginx.conf 文件,这里不准备使用这个配置。

  • step 2. 新建 conf.d 目录

    这里是为了和 Docker-compose.yml 文件中的 webserver 配置保持一致。

  • step 3. 新建 php74.conf 文件

    文件内容如下:
    说明:只需要在容器外部新增文件,并不需要进入容器做任何操作。
    ```
    server {
    listen 80;
    server_name dk.php74.com;

          root  /application/public/;
          index index.php index.html;
      
          if (!-e $request_filename) {
              rewrite ^/(.*)$ /index.php?$1 last;
              break;
          }
      
          location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ {
              access_log off;
              expires max;
          }
      
          location ~ \.php$ {
              include /etc/nginx/fastcgi.conf;    ## 新增一个 include 项
      
              include conf.d/fastcgi_web;         ## 需要创建一个 fastcgi_web 文件
              include conf.d/fastcgi_mysql;       ## 需要创建一个 fastcgi_mysql 文件
      
              fastcgi_pass php-fpm:9000;
              fastcgi_index index.php;
      
              fastcgi_buffers 128 128k;
              fastcgi_buffer_size 128k;
          }
      
          location ~ /\.ht {
              deny  all;
          }
    
          ## 将服务器产生的日子,映射到容器外部
          access_log /var/log/nginx/74_access.log;  
          error_log /var/log/nginx/74_error.log;
      }
    
  • step 4. 新建 fastcgi_web 文件

    添加一些 web 相关的fastcgi_param,示例如下:

    fastcgi_param SITE_ENV                  testing;
    fastcgi_param SITE_REDIS_SERVER         'redis:6379';
    
  • step 5. 新建 fastcgi_mysql 文件

    添加一些数据库相关的 fastcgi_param,示例如下:

    # base db
    ## 读库
    fastcgi_param  DB_XXX_HOST_R  '127.0.0.1';
    fastcgi_param  DB_XXX_PORT_R  '3306';
    fastcgi_param  DB_XXX_USER_R  'XXX';
    fastcgi_param  DB_XXX_PASS_R  '123456';
    fastcgi_param  DB_XXX_NAME_R  'XXX';
    
    ## 写库
    fastcgi_param  DB_XXX_HOST_W  '127.0.0.1';
    fastcgi_param  DB_XXX_PORT_W  '3306';
    fastcgi_param  DB_XXX_USER_W  'XXX';
    fastcgi_param  DB_XXX_PASS_W  '123456';
    fastcgi_param  DB_XXX_NAME_W  'xin';
    

四,构建容器

  • step 1. 切换到当前容器项目所在目录

    切换到 E:\docker_space\dockerphp74\ 目录

  • step 2. 打开终端,执行 docker-compose build 命令
    PS E:\DockerSpace\dockerphp74> docker-compose build
    

    结果如图: 执行build 构建容器

    如果失败,请多执行几次。

  • step 4. 启动和查看容器

    在这里插入图片描述

  • step 5. 在浏览器中访问服务

    打开浏览器,访问 http://127.0.0.1:8074/

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值