CentOS7.9基于Docker安装php+mysql+nginx环境

Docker   2023-12-13 17:14   61   0  

创建目录:

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,

访问:http://0.0.0.0:8006



博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。