docker-compose编排Nginx+PHP74&PHP56 with swoole+MySQL57+Redis+Memcached环境

455 阅读2分钟

目录结构

整体目录结构如下, github 项目地址:docker-lnmp

.
├── data
│   ├── mysql
│   └── redis
├── docker-compose.yml
├── logs
│   ├── nginx
│   ├── php56
│   └── php74
├── services
│   ├── memcached
│   ├── mysql
│   │   ├── Dockerfile
│   │   ├── conf.d
│   │   │   └── mysql.cnf
│   │   └── my57.cnf
│   ├── nginx
│   │   ├── Dockerfile
│   │   ├── conf.d
│   │   │   ├── cert
│   │   │   │   ├── test.key
│   │   │   │   └── test.pem
│   │   │   ├── rewrite
│   │   │   │   └── rewrite.conf
│   │   │   └── servers
│   │   │       └── www.conf
│   │   ├── fastcgi_params
│   │   └── nginx.conf
│   ├── php56
│   │   ├── Dockerfile
│   │   ├── extensions
│   │   │   ├── imagick-3.4.4.tgz
│   │   │   ├── memcached-2.2.0.tgz
│   │   │   ├── mongodb-1.5.5.tgz
│   │   │   ├── redis-4.1.1.tgz
│   │   │   ├── scws-1.2.3.tar.bz2
│   │   │   ├── swoole-2.0.11.tgz
│   │   │   └── xdebug-2.5.5.tgz
│   │   ├── php-fpm.conf
│   │   └── php.ini
│   ├── php74
│   │   ├── Dockerfile
│   │   ├── Dockerfile.down
│   │   ├── extensions
│   │   │   ├── imagick-3.4.4.tgz
│   │   │   ├── mcrypt-1.0.3.tgz
│   │   │   ├── memcached-3.1.5.tgz
│   │   │   ├── redis-5.3.1.tgz
│   │   │   ├── scws-1.2.3.tar.bz2
│   │   │   ├── swoole-4.5.5.tgz
│   │   │   └── xdebug-2.9.8.tgz
│   │   ├── php-fpm.conf
│   │   └── php.ini
│   └── redis
│       ├── Dockerfile
│       └── redis.conf
└── www
    └── app
        ├── index.php
        └── php56
            └── index.php

操作步骤

git clone https://github.com/Nevermore-dh/docker-lnmp.git

cd docker-lnmp

docker-compose up -d

配置说明

  • ./services/nginx/conf.d/servers/www.conf 中 fastcgi_pass   l_docker_php74:9000 配置需要和 PHP service 或者 container_name 保持一致
  • ./services/nginx/conf.d/servers/www.conflocation /php56 {...} 配置只是为了验证 PHP56PHP74 两个版本共存,可根据需要配置自己的规则或者独立的域名

PHP 相关扩展安装命令及依赖列表

扩展名依赖PHP74 安装方式PHP56 安装方式
bcmath-docker-php-ext-install bcmathdocker-php-ext-install bcmath
bz2apk add bzip2-devdocker-php-ext-install bz2docker-php-ext-install bz2
gdapk add libpng-dev libjpeg-turbo-dev freetype-devdocker-php-ext-configure gd --with-freetype --with-jpeg && docker-php-ext-install gddocker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && docker-php-ext-install gd
gettextapk add gettext-devdocker-php-ext-install gettextdocker-php-ext-install gettext
mcryptapk add libmcrypt-devpecl install mcrypt-1.0.3.tgzdocker-php-ext-install mcrypt
memcachedapk add libmemcached-dev zlib-devpecl install memcached-3.1.5.tgzpecl install memcached-2.2.0.tgz
mysql-removeddocker-php-ext-install mysql
mysqli-docker-php-ext-install mysqlidocker-php-ext-install mysqli
pcntl-docker-php-ext-install pcntldocker-php-ext-install pcntl
pdo_mysql-docker-php-ext-install pdo_mysqldocker-php-ext-install pdo_mysql
redis-详见 Dockerfile详见 Dockerfile
scws-详见 Dockerfile详见 Dockerfile
shmop-docker-php-ext-install shmopdocker-php-ext-install shmop
soapapk add libxml2-devdocker-php-ext-install soapdocker-php-ext-install soap
sockets-docker-php-ext-install socketsdocker-php-ext-install sockets
swoole-详见 Dockerfile详见 Dockerfile
sysvmsg-docker-php-ext-install sysvmsgdocker-php-ext-install sysvmsg
sysvsem-docker-php-ext-install sysvsemdocker-php-ext-install sysvsem
sysvshm-docker-php-ext-install sysvshmdocker-php-ext-install sysvshm
xmlrpcapk add libxml2-devdocker-php-ext-install xmlrpcdocker-php-ext-install xmlrpc
zipapk add libzip-devdocker-php-ext-install zipdocker-php-ext-install zip

希望本文对你有所帮助,如有不足之处,请不吝赐教~

以上,Van(完)。