centos7下docker搭建nginx+phpfpm环境

#服务器mariadb停用
systemctl stop mariadb

#拉取mysql镜像
docker pull mysql:5.7

#创建容器并运行
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name cyt_mysql mysql:5.7


#拉取phpfpm
docker pull php:7.2-fpm

#创建容器,关联mysql和nginx容器
docker run -d -v /var/nginx/www/html:/var/www/html -p 9000:9000 --link cyt_mysql:mysql --name cyt_phpfpm php:7.2-fpm

#进入phpfpm容器
docker exec -it cyt_phpfpm /bin/bash
#更改默认php.ini
cd /usr/local/etc/php/conf.d
cp cp php.ini-production php.ini

#安装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
#查看已安装扩展
php -i|grep pdo

php -i|grep redis


#创建nginx容器并运行
docker run -d -p 80:80 --name cyt_nginx -v /var/nginx/www/html:/var/www/html --link cyt_phpfpm:phpfpm  nginx:1.12.2

#进入nginx容器,修改配置文件
docker exec -it cyt_nginx /bin/bash
cd /etc/nginx/conf.d
vim default.conf
#修改里面内容
    location / {
        #root   /usr/share/nginx/html;
        root           /var/www/html;
        index  index.html index.htm;
    }

    location ~ \.php$ {
        #root           html;
        root           /var/www/html;
        #改成phpfpm容器名
        #fastcgi_pass   127.0.0.1:9000;
        fastcgi_pass 1f6d34694a56:9000;
        fastcgi_index  index.php;
        #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;
        include        fastcgi_params;
    }


#保存修改,重启nginx
nginx -s reload

配置完成,回到宿主机nginx根目录

cd /var/nginx/www/html

echo '<?php echo "hello.test"' > test.php

php test.php #输出成功,说明可以正常使用

新建touch redis.php,保存以下内容

<?php

$redis = new \Redis;

//docker连接宿主机需要通过172.17.0.1访问,可在宿主机下ifconfig查看docker0

$connect = $redis->connect('172.17.0.1', 6379);

$auth = $redis->auth('xxx');

$redis->set('a',4000);

$res = $redis->get('a');

var_dump($res);

运行可正常查询redis