侧边栏壁纸
  • 累计撰写 185 篇文章
  • 累计创建 77 个标签
  • 累计收到 17 条评论

目 录CONTENT

文章目录

使用docker搭建Nginx + PHP + mysql环境

码峰
2022-07-12 / 0 评论 / 0 点赞 / 741 阅读 / 746 字 / 正在检测是否收录...
广告 广告

Nginx+PHP+Mysql是比较常用的网站环境,使用docker布置网站环境也是比较常用的方式,以下就给大家介绍如果使用docker来搭建Nginx+PHP+Mysql的运行环境。

前提准备:macOs环境、docker环境(安装docker可以百度,对mac版本有要求)
image-1657631848682
首先拉取三个镜像:

docker pull mysql:5.7
docker pull php:fpm
docker pull nginx:latest

查看一下拉取的所有镜像:
image-1657631910200
首先我们安装msyql,然后安装php,这样可以将mysql和php连接起来,最后装nginx,nginx把php连接起来就好啦。

安装mysql

docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456  --name mysql_server mysql:5.7 # (这里是构建容器)
docker exec -it mysql_server /bin/bash # (进入容器,进入之后要对用户授权,允许用户远程访问)
mysql -u root -p 123456 # (进入mysql命令行模式)
GRANT ALL PRIVILEGES ON *.* TO root@'localhost' IDENTIFIED BY '123456'; # (授权)
GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY '123456'; #(授权)
GRANT ALL PRIVILEGES ON *.* TO root@'127.0.0.1' IDENTIFIED BY '123456'; #(授权)
FLUSH PRIVILEGES; #(使权限生效)

可以使用Navicat工具查看mysql 首先要找到mysql的IP,如下命令

docker inspect mysql_server 

至此,mysql就安装完成啦

安装PHP

~/Document/self_work 是我自己文件目录,大家可根据自己情况修改

docker run --name php_server -p 9000:9000 -v ~/Documents/self_work/wwwroot/:/var/www/wwwroot --link mysql_server:mysql -v ~/Documents/self_work/env/phpfile/:/usr/local/etc/php -d php:fpm # (这里是构建容器)
docker exec -it php_server /bin/bash # (登录容器)
docker-php-ext-install pdo_mysql  #(安装php扩展,可以使用这种方式安装 安装方式很多,不一一赘述)

安装nginx

配置文件目录:~/Documents/self_work/env/nginx/conf/conf.d/ 注意conf.d 是个文件夹

docker run --name nginx_server -p 8181:80 -v ~/Documents/self_work/wwwroot:/var/wwwroot --link php_server:phpfpm -d nginx:latest  #(构建容器,将nginx和php连接起来)

映射容器中的phpfpm和mysql都为固定,不能修改!

测试

在宿主机 ~/Documents/self_work/wwwroot/目录下修改 index.php 文件。

<?php echo phpinfo();

访问:http://localhost:8083/
image-1657633645310
测试mysql 链接
修改 index.php

<?php
//echo phpinfo();
$dbms='mysql';     //数据库类型
$host='your_mysql'; //数据库主机名,此处写mysql 容器的名字
$dbport = '3306';
$dbName='mysql';    //使用的数据库
$user='root';      //数据库连接用户名
$pass='123456';          //对应的密码
$dsn="$dbms:host=$host;port=$dbport;dbname=$dbName";

try {
    $dbh = new PDO($dsn, $user, $pass); //初始化一个PDO对象
    echo "successful<br/>";
   //你还可以进行一次搜索操作
    // foreach ($dbh->query('SELECT * from user') as $row) {
    //     print_r($row); //你可以用 echo($GLOBAL); 来看到这些值
    // }
    
    $dbh = null;
} catch (PDOException $e) {
    die ("Error!: " . $e->getMessage() . "<br/>");
}

参考:https://cloud.tencent.com/developer/article/1444280
刷新页面 successful 我们安装成功啦啦啦啦啦

0
广告 广告

评论区