创建目录:
mkdir -p /web/nginx/www mkdir -p /web/nginx/log mkdir -p /web/nginx/conf/conf.d mkdir -p /web/nginx/mysql/conf mkdir -p /web/nginx/mysql/logs mkdir -p /web/nginx/mysql/data
拉取php5.6镜像:
docker run --name php-fpm -v /web/nginx/www:/www -d php:5.6-fpm
进入php5.6容器安装扩展:
docker exec -it php-fpm /bin/bash docker-php-ext-install mysql docker-php-ext-install mysqli
创建nginx配置文件:
vi /web/nginx/conf/conf.d/php-nginx.conf
填写内容:
server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; #代码目录挂在到容器中的目录 index index.html index.htm index.php; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name; include fastcgi_params; } }
拉取nginx镜像:
docker run --name php-nginx -p 8006:80 -d -v /web/nginx/www:/usr/share/nginx/html:ro -v /web/nginx/conf/conf.d:/etc/nginx/conf.d:ro --link php-fpm:php nginx
//-p 8006:80 8006映射到80端口上
//web/nginx/www:/usr/share/nginx/html:ro -v /web/nginx/conf/conf.d:/etc/nginx/conf.d:ro以只读的方式挂载代码目录和配置文件目录
//--link php-fpm:php nginx把php-fpm的网络并入nginx,并通过修改nginx的/etc/hosts,把域名php映射成127.0.0.1让nginx通过php:9000访问php-fpm
创建index.php:
vi /web/nginx/www/index.php
填写内容:
<?php //echo phpinfo();
$conn = new mysqli("172.17.0.5","root","123456","mysql"); if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } else { echo "成功连接到MySQL数据库!"; mysqli_set_charset($conn,"utf8"); $sql = " select * from user"; $result = mysqli_query($conn,$sql); $row = mysqli_fetch_array($result,MYSQLI_NUM); echo "<pre>"; var_dump($row); } $conn = mysqli_connect("172.17.0.5","root","123456","mysql"); if (!$conn) { die("连接失败: " . mysqli_connect_error()); } $sql = "SELECT * FROM user"; $result = mysqli_query($conn, $sql); while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { echo "Host:".$row["Host"]."姓名:".$row["User"]."<br>"; } mysqli_close($conn);
拉取mysql镜像:
docker run -p 3307:3306 --name mysql57 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 //挂载之前创建好的目录用于存放数据,日志和配置文件 //docker run --name mysql57 -p 3307:3306 -v /nginx/mysql/conf:/etc/mysql/conf.d -v /nginx/mysql/logs:/logs -v /nginx/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
//-e MYSQL_ROOT_PASSWORD=123456初始化root密码
注意:服务器开启端口:3307,8006,