#服务器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