docker安装nginx php7环境

文中一定支持系统版本: CentOs7/MacOs10

1.创建php7的镜像文件

Dockerfile内容如下:

FROM php:7.3.8-fpm

RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak \
    && echo 'deb http://mirrors.aliyun.com/debian/ buster main non-free contrib' > /etc/apt/sources.list \
    && echo 'deb http://mirrors.aliyun.com/debian-security buster/updates main' >> /etc/apt/sources.list \
    && echo 'deb http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib' >> /etc/apt/sources.list \
    && echo 'deb http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib' >> /etc/apt/sources.list \
    && apt-get update \
    && apt-get install -y vim \
    && apt-get install -y libzip-dev \
    && apt-get install -y librabbitmq-dev \
    && export CFLAGS="$PHP_CFLAGS" CPPFLAGS="$PHP_CPPFLAGS" LDFLAGS="$PHP_LDFLAGS" \
    && apt-get install -y --no-install-recommends libfreetype6-dev libjpeg62-turbo-dev libpng-dev libmagickwand-dev libmcrypt-dev libmemcached-dev zlib1g-dev \
    && rm -rf /var/lib/apt/lists/* \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) bcmath calendar exif gettext sockets dba mysqli pcntl pdo_mysql shmop sysvmsg sysvsem sysvshm iconv gd\
    && pecl install imagick-3.4.4 mcrypt-1.0.2 memcached-3.1.3 redis-5.0.2 swoole-4.4.3 grpc-1.26.0 protobuf-3.11.2 zip-1.15.5 amqp-1.9.4 mongodb-1.6.1 \
    && docker-php-ext-enable imagick mcrypt memcached redis swoole grpc protobuf zip amqp mongodb \
    && docker-php-ext-configure opcache --enable-opcache && docker-php-ext-install opcache

RUN php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');" \
	&& php composer-setup.php \
	&& php -r "unlink('composer-setup.php');" \
	&& mv composer.phar /usr/local/bin/composer

LABEL Author="HiZheng"
LABEL Version="2020.02.20"
LABEL Description="PHP 7.3.8 开发环境镜像. "

制作镜像:

docker build -t hizheng/php7:v1 .

制作完成!

注意点:

  1. 其中将镜像环境的源改为了国内的,否则你懂的的原因安装扩展太慢了;
  2. 安装了一些我需要的php扩展,你可以酌情调整;
  3. 注意debian源的版本,用的是buster 关于debian发行版本参阅link
2. 使用docker-composer统一管理服务

我的站点挂载目录: /var/web/site-master
我的服务配置路径: /var/server/php_nginx/group1
nginx容器配置的挂载目录: /var/server/php_nginx/group1/nginx
php容器配置的挂载目录: /var/server/php_nginx/group1/php
创建文件: /var/server/php_nginx/group1/docker-compose.yml
写入配置如下:

version: '2'
services:
    nginx:
      container_name: local-nginx1
      image: 'nginx'
      ports:
        - "80:80"
      volumes:
        - /var/web/site-master:/usr/share/nginx/html
        - /var/server/php_nginx/group1/nginx:/etc/nginx
        - /var/server/php_nginx/group1/logs/nginx:/var/log/nginx
      networks:
        web:
          ipv4_address: 192.168.2.1
      dns: 223.5.5.5
      environment:
        TZ: 'Asia/Shanghai'
      restart: always
    php:
      container_name: local-php1
      image: 'hizheng/php7:v1'
      ports:
        - "9000:9000"
      volumes:
        - /var/web/site-master:/var/www/html
        - /var/server/php_nginx/group1/php/etc:/usr/local/etc
        - /var/server/php_nginx/group1/logs/php:/var/log/php
      networks:
        web:
          ipv4_address: 192.168.2.2
      environment:
        TZ: 'Asia/Shanghai'
      restart: always
networks:
  web:
    driver: 'bridge'
    ipam:
      config:
        - subnet: 192.168.2.0/24
          gateway: 192.168.2.254

注意点:

  1. 需要配置在一个网段之中,我选择是192.168.2.x网段;
  2. 这里挂载的路径,nginx 和 php容器中是不一样的,但是站点是一个站点,后续配置ngxin需要用到;

启动服务:

docker-compse up

会自动生成一些配置文件,我们此时中断服务;开始编辑文件;

3.编辑配置

编辑nginx配置

vim /var/server/php_nginx/group1/nginx/conf.d/default.conf

更改如下:

server {
    listen      80;
    server_name testwebname.com;
    access_log  /var/log/nginx/web.access.log;
    error_log   /var/log/nginx/web.error.log;

    location / {
        root  /usr/share/nginx/html/html;
        index index.php;
    }
    
    location ~ \.php$ {
            if ($request_uri ~ ^(.+\.php)(/.+?)($|\?)) {}
            root /var/www/html;
            fastcgi_pass   192.168.2.2:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /var/www/html/$fastcgi_script_name;
            fastcgi_param  SCRIPT_NAME      $fastcgi_script_name;
            include        fastcgi_params;
        }
}

需要编辑php.ini 请编辑文件: /var/server/php_nginx/group1/php/etc/php/php.ini

4运行程序

执行命令,设置为守护进程运行模式;

docker-compse up -d

安装完毕!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值