• CentOS 7.9 docker 部署 lnmp(nginx+mysql+php)


    1.拉取 php nginx mysql 镜像

    docker pull nginx:1.22
    docker pull mysql:5.7
    docker pull php:7.4-fpm
    
    

    2.创建目录 nginx mysql配置文件 项目文件目录

    mkdir -p /xiaozhu/docker/nginx/conf.d && mkdir /xiaozhu/www &&  cd /xiaozhu/docker/nginx/conf.d && sudo touch default.conf
    mkdir -p /xiaozhu/docker/mysql/data /xiaozhu/docker/mysql/logs /xiaozhu/docker/mysql/conf

    www:项目代码存放目录
    nginx :nginx 的配置
    mysql:mysql的配置

    3.启动php容器

    docker run --name lnmp-php -d -v /xiaozhu/www:/var/www/html:ro  php:7.4-fpm
    /xiaozhu/www==》宿主机php文件目录
    /var/www/html:ro==》php容器php文件目录

    4.编辑nginx的配置文件

    server {
        listen       80;
        server_name  localhost;
    
        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
    
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    
        location ~ \.php$ {
            fastcgi_pass   lnmp-php:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /var/www/html/$fastcgi_script_name;
            include        fastcgi_params;
        }
    }

    lnmp-php:9000==》php服务9000端口
    /var/www/html/==》php文件存储路径

    5.启动nginx容器

    docker run --name lnmp-nginx -p 32801:80 -d -v /xiaozhu/www:/usr/share/nginx/html:ro -v /xiaozhu/docker/nginx/conf.d:/etc/nginx/conf.d:ro --link lnmp-php:lnmp-php nginx:1.22
    docker run --name lnmp-nginx -p 32801:80 -d -v /xiaozhu/www:/usr/share/nginx/html:ro -v /xiaozhu/docker/nginx/conf.d:/etc/nginx/conf.d:ro  nginx:1.22


    -v==》宿主机与容器文件映射
    32801==》宿主机端口
    80==》nginx 容器端口
    /xiaozhu/www==》宿主机nginx文件目录
    /usr/share/nginx/html:ro nginx==》 容器的nginx文件目录 ro:只读
    /xiaozhu/docker/nginx/conf.d ==》宿主机nginx配置文件
    /etc/nginx/conf.d:ro==》nginx容器内nginx配置文件
    --link lnmp-php:lnmp-php==》把 lnmp-php的网络并入 nginx
    6.把nginx和php两个容器通过网卡连接起来:nginx支持php,使用--link 也是可以的

    docker network create --driver bridge lnmp #新建一个桥接网卡,名为lnmp
    docker network connect lnmp lnmp-php       #php容器连接网卡lnmp
    docker network connect lnmp lnmp-nginx     #nginx容器连接网卡lnmp 
    docker network ls #查看网卡列表
    docker network inspect lnmp #查看网卡lnmp详情

    7.重启nginx容器,在 /xiaozhu/www/  下新index.html index.php  在浏览器通过ip加端口访问 XXXX:32801:80

    docker restart lnmp-nginx

    8.启动mysql容器

    docker run -p 32802:3306 --name lnmp-mysql -v /xiaozhu/docker/mysql/conf:/etc/mysql -v /xiaozhu/docker/mysql/logs:/logs -v /xiaozhu/docker/mysql/data:/mysql_data -e MYSQL_ROOT_PASSWORD=123456 -d --link lnmp-php mysql:5.7
    docker network connect lnmp lnmp-mysql     #mysql容器连接网卡lnmp 

    9.进入php容器下载mysql pdo扩展

    docker exec -it lnmp-php bash     #进入php容器
    php -m #查看php已安装的扩展
    docker-php-ext-install pdo_mysql #下载mysql pdo 扩展

    10.设置mysql 远程连接,密码

    docker exec -it lnmp-mysql bash    
    mysql -u root -p
    use mysql
    select host,user from user;
    alert user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
    flush privileges;

    10.在项目目录新建 mysql.php 连接测试

    <?php
    
        $servername = "lnmp-mysql";
        $username = "root";
        $password = "root";
        $dbname = "xiaozhu";
         
        try {
            $conn = new PDO("mysql:host=$servername;", $username, $password);
            //$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
            echo "连接成功"; 
        }catch(PDOException $e){
            echo $e->getMessage();
        }


  • 相关阅读:
    HP LoadRunner11.0下载地址(官网地址)
    出现500错误[code=CANT_CONNECT_LOOPBACK] Cannot connect due to potential loopback problems的解决方法
    一个数据库的所见即所得的好工具
    强制释放windows被占用的端口
    测试管理工具QC第二篇QC安装步骤(史上最详细的图解过程)第二篇server2003的环境设置
    NAT连接虚拟机和主机的通信(静态IP配置完整图解,测试通过可用)附vmware tools的安装(未完待续)第一篇
    QC插件大集合
    winmail搭建自己的邮件服务器第二篇(详细图解,测试通过)
    QTP基本脚本设计(第一部分)
    winmail搭建自己的邮件服务器第一篇(附详细图解测试通过可用)
  • 原文地址:https://www.cnblogs.com/songxuan/p/16405108.html
Copyright © 2020-2023  润新知