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