Docker 安装 PHP Nginx MySQL

1、拉取镜像

docker pull nginx
docker pull php:7.1-fpm
docker pull mysql:5.7

2、创建文件夹

mkdir -p /docker/www
mkdir -p /docker/nginx/conf.d/

mkdir -p /docker/mysql/data
mkdir -p /docker/mysql/conf.d

3、创建 Nginx 容器

docker run -p 8080:80 --name nginx \
-v /docker/www:/usr/share/nginx/html \
-v /docker/nginx/conf.d:/etc/nginx/conf.d \
--privileged=true \
-d nginx

4、创建 PHP 容器

docker run -p 9000:9000 --name php-fpm \
-v /docker/www:/var/www/html \
-d php:7.1-fpm

 5、查看 PHP 容器的IP

docker inspect php-fpm --format='{{.NetworkSettings.IPAddress}}'

# 返回 IP
172.17.0.3

6、创建 Nginx 配置文件

vim /docker/nginx/conf.d/default.conf

server {
    listen       80;
    server_name  localhost;
    
    location / {
        root   /usr/share/nginx/html;
        index  index.php index.html index.htm;
    }
    
    location ~ \.php(.*)$ {
        root          	/var/www/html;           # php 容器的目录,进 php 容器查看
        fastcgi_pass	172.17.0.3:9000;         # php 容器的IP
        fastcgi_index	index.php;
        fastcgi_param	SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include	fastcgi_params;
    }

}


# 如果修改主机目录,如下两处都要修改
# root   /usr/share/nginx/html;
# root   /var/www/html;

docker restart nginx    // 重启一下  nginx 容器 

7、测试页

echo "<?php phpinfo(); ?>" > /docker/www/info.php

8、成功访问

http://192.168.1.73:8080/info.php

9、创建 MySQL 容器

docker run --name mysql -p 3306:3306 \
-v /docker/mysql/conf.d:/etc/mysql/conf.d \
-v /docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

10、查看 MySQL 容器的 IP

docker inspect mysql --format='{{.NetworkSettings.IPAddress}}'

# 返回 IP
172.17.0.4

11、连接 MySQL

vim /docker/www/conn.php

<?php
        $serve = '172.17.0.4:3306';
        $username = 'root';
        $password = '123456';
        $dbname = 'mysql';

        $mysqli = new Mysqli($serve,$username,$password,$dbname);
        
        if ($mysqli->connect_error) {
                die('connect error:'.$mysqli->connect_errno);
        }

        $mysqli->set_charset('UTF-8');
        $result = $mysqli->query('select * from user');
        $data = $result->fetch_all();
        print_r($data);

?>

12、PHP 安装 MySQLI 扩展

# 进入容器
docker exec -it php-fpm /bin/bash

# 安装 pdo_mysql mysqli
docker-php-ext-install pdo_mysql mysqli

# CTRL + D 退出容器
docker restart php-fpm

13、成功访问

curl http://192.168.1.73:8080/conn.php

# 返回
Array
(
    [0] => Array
        (
            [0] => %
            [1] => root
        )

    [1] => Array
        (
            [0] => localhost
            [1] => mysql.session
        )

    [2] => Array
        (
            [0] => localhost
            [1] => mysql.sys
        )

    [3] => Array
        (
            [0] => localhost
            [1] => root
        )

)

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值