一 、 docker 安装nginx
docker pull xuzhiwen/nginx20190126
docker run -p 80:80 --name mynginx -v $PWD/www:/usr/share/nginx/html -d nginx
二、 docker 安装 php
docker pull xuzhiwen/myphp-fpm20190126
docker run -d -v $PWD:/usr/share/nginx/html --name myphp-fpm php:7.1.9-fpm
三、docker 安装 PHP
docker pull mysql:5.6
docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
四、配置 nginx.conf
a).进入mynginx 容器中 docker exec -it mynginx /bin/bash
b). cd /etc/nginx/conf.d/nginx.conf
docker inspect myphp-fpm |grep '"IPAddress"'
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html/public;
index index.html index.php index.htm;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /usr/share/nginx/html/public;
fastcgi_pass 172.17.0.3:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html/public$fastcgi_script_name; # /usr/share/nginx/html/public 为 php的目录
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
五、安装php 依赖包
登录到镜像,如下:
docker exec -it myphp-fpm /bin/bash
安装mysql依赖,如下:
docker-php-ext-install pdo_mysql
安装redis依赖,如下:
curl -L -o /tmp/redis.tar.gz https://github.com/phpredis/phpredis/archive/3.1.3.tar.gz tar xfz /tmp/redis.tar.gz rm -r /tmp/redis.tar.gz mkdir -p /usr/src/php/ext mv phpredis-3.1.3 /usr/src/php/ext/redis docker-php-ext-install redis
安装memcached依赖,如下:
curl -O https://launchpadlibrarian.net/165454254/libmemcached-1.0.18.tar.gz tar zxvf libmemcached-1.0.18.tar.gz mv libmemcached-1.0.18 memcached cd memcached ./configure --with-memcached --disable-memcached-sasl docker-php-ext-enable memcached
安装 gd 依赖,如下:
apt-get update && apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libmcrypt-dev libpng-dev && docker-php-ext-install -j$(nproc) iconv mcrypt && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && docker-php-ext-install -j$(nproc) gd