• Docker简单安装LNMP环境(可部署TP项目)


    Docker安装LNMP环境

    1、安装Docker

    yum install docker
    # 启动并加入开机启动
    sudo systemctl start docker
    sudo systemctl enable docker
    

    2、 安装nginx

    # 拉取管方镜像
    docker pull nginx
    # 创建并运行容器,映射端口为80
    docker run --name nginx -p 80:80 -d nginx
    # 访问IP,nginx能够正常运行
    

    3、 安装PHP

    # 拉取管方镜像,这里拉取的是php7,根据自己所需拉取
    docker pull phpdockerio/php7-fpm
    

    4、 查看nginx运行路径

    # 进入nginx容器
    docker exec -it nginx bash
    # 查看nginx配置文件
    cat /etc/nginx/conf.d/default.conf -n
    # 找到location / {
    #     root    /usr/share/nginx/html;#这是nginx默认运行路径
    #     index   index.html index.html;
    # }
    

    5、 创建并运行php容器

    docker run --name phpfpm -d 9000:9000 -v /var/www/html:/usr/share/nginx/html -d phpdockerio/php7-fpm
    

    6、 进入php容器,创建index2.php测试文件

    # 进入php容器
    docker exec -it phpfpm bash
    # 进入运行目录
    cd /usr/share/nginx/html
    # vim 创建index2.php
    # 因为docker没有安装vim,此时运行
    apt-get update
    apt-get install vim
    
    cat << EOF > /root/.vimrc
    :set encoding=utf-8
    :set fileencodings=ucs-bom,utf-8,cp936
    :set fileencoding=gb2312
    :set termencoding=utf-8
    EOF
    # 创建index2.php
    vim index2.php
    <?php
        echo 1;
    ?>
    # esc :wq 保存退出
    

    7、 获取到phpfpm 这个容器的ip

    docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' phpfpm
    # 172.17.0.3
    

    8、配置nginx 以便支持php文件访问

    docker exec -it nginx bash
    # 进入nginx配置目录
    cd /etc/nginx/conf.d
    # 安装vim
    apt-get update
    apt-get install vim
    # 编辑default.conf配置文件
    vim default.conf
    # 在default.conf中加入
    location / {
        root		  /usr/share/nginx/html/tp5.1/public;#不是tp的话去掉/tp5.1/public
        index		  index.html index.htm index.php;
        
        if (!-e $request_filename){
            rewrite ^(.*)$ /index.php?s=/$1 last;
            break;
        }
    }
    location ~ .php$ {
    	root            /usr/share/nginx/html/tp5.1/public;#不是tp的话去掉/tp5.1/public
    	fastcgi_pass    172.17.0.3:9000;
    	fastcgi_index   index.php;
    	fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
    	fastcgi_param	PATH_INFO $fastcgi_path_info;
    	fastcgi_param	PATH_TRANSLATED $document_root$fastcgi_path_info;
    	fastcgi_split_path_info		^((?U).+.php)(/?.+)$;
    	include         fastcgi_params;
    }
    # 保存退出,重启nginx
    docker restart nginx
    # 访问ip/index2.php,成功
    

    9、 拉取Mysql镜像

    docker pull mysql
    # 创建并运行mysql容器
    docker run --name mysql -p 3306:3306 -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
    #这是使用navicat连接会报错
    docker exec -it mysql /bin/bash
    mysql -uroot -p
    #授权
    GRANT ALL ON *.* TO 'root'@'%';
    #刷新权限
    flush privileges;
    #更新加密规则
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
    #更新root密码
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
    #刷新权限
    flush privileges;
    

    10、 服务器文件放入容器中

    docker ps  #查看容器id
    docker cp linux文件 容器id:容器路径
    
    #linux中查找php.ini
    php -i | grep 'php.ini'
    
    #docker 因配置文件出错无法进入容器内解决办法
    #将容器配置文件复制到服务器上
    1.docker cp mynginx:/etc/nginx/conf.d/default.conf /users/nginx/default.conf
    #修改后再写回容器中
    2.docker cp /users/nginx/default.conf mynginx:/etc/nginx/conf.d/default.conf
    
  • 相关阅读:
    混沌的艺术--- YChaos通过数学公式生成混沌图像
    相声段子:How Are You
    太阳崇拜---64幅由算法生成的八芒星图像
    自然的密码---36幅由算法生成的六芒星图像
    雪花六出---几幅算法生成的雪花图像,并祝大家平安夜和圣诞节快乐
    18个分形图形的GIF动画演示
    python的with用法(参考)
    彻底解决django 2.2以上版本与mysql兼容性问题(不用改源码)
    python操作MySQL数据库的三个模块
    MySql 外键约束 之CASCADE、SET NULL、RESTRICT、NO ACTION分析和作用
  • 原文地址:https://www.cnblogs.com/ljkltt/p/14876054.html
Copyright © 2020-2023  润新知