windows本地使用docker+nginx+mysql部署thinkphp5

这篇具有很好参考价值的文章主要介绍了windows本地使用docker+nginx+mysql部署thinkphp5。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:

Docker是一个开源的容器化平台,可以将应用程序及其依赖项打包到一个可移植的容器中,并在不同的环境中运行。容器是一个独立、可移植、可复制的软件单元,其中包含应用程序、运行时环境、系统工具和库。Docker利用容器的轻量级和快速启动的特性,提供了一种更高效、更方便的软件开发和部署方式。

通过使用Docker,开发人员可以将应用程序及其依赖项打包到一个Docker镜像中,将镜像部署到任何支持Docker的环境中,并保证应用程序在不同的环境中具有一致的运行结果。Docker镜像可以在构建时指定所需的操作系统、库和其他依赖项,确保应用程序在运行时具有正确的环境。

Docker还提供了一套命令行工具和API,可以方便地管理和操作Docker容器。使用Docker,开发人员可以快速地创建、启动、停止和销毁容器,而无需关心底层操作系统的细节。

Docker还支持容器编排和集群管理功能,可以将多个容器组织成一个服务,并管理其生命周期和资源分配。Docker Swarm是Docker的原生集群管理工具,可以自动化地在多个主机上部署和管理容器。

总之,Docker是一个强大的容器化平台,通过容器的轻量级、可移植的特性,提供了一种更高效、更方便的软件开发和部署方式。它已经被广泛应用于各种场景,包括应用程序开发、测试、交付和部署。

第一步:下载docker Desktop

docker Desktop 下载


第二步:准备所需镜像

docker pull nginx:*

docker pull php:*-fpm

docker pull mysql:*

* 代表各个镜像的版本信息,请自行选择,例如 docker pull php:7.4-fpm 。

注:请确保每个镜像都拉取成功!!!


第三步:创建网络

说明:创建网络以便于各个容器之间通信。

docker create network my-network

my-network :自定义bridge网络名称。


第四步:启动容器并运行

首先运行docker run -d --name nginx-container -p 8080:80 nginx:*,运行成功后使用以下命令将nginx的内容复制到本地对应目录中:

1、docker cp nginx-container:/usr/share/nginx/html D:/docker/www(复制访问页指向D:/docker/www下)

2、docker cp nginx-container:/var/log/nginx D:/docker/nginx/logs(复制nginx日志到D:/docker/nginx/logs下)

3、docker cp nginx-container:/etc/nginx/conf.d D:/docker/nginx/conf(复制nginx的配置文件default.conf到D:/docker/nginx/conf下)

以上全部处理好了之后,删除nginx容器,在Docker Desktop中删除或使用命令

docker stop nginx-container &&docker rm -f nginx-container,

然后依次运行以下命令:

docker run -d --name  phpfpm -p 9000:9000  -v  D:/docker/www:/www --network my-network php:7.4-fpm

docker run -d --name mysql-container -p 33060:3306 -e MYSQL_PASSWORD=123456 -e TZ=Asia/Shanghai --network my-network mysql:*

docker run -d --name nginx-container -p 8080:80 -v D:/docker/nginx/logs:/var/log/nginx -v D:/docker/nginx/conf:/etc/nginx/conf.d -v D:/docker/www:/usr/share/nginx/html --network my-network nginx:*

注:映射的端口:前者为宿主机端口,后者为容器内端口。*表示各个容器版本号,自行替换成您下载的镜像版本号。

第五步:配置tp5隐藏index.php

首先访问localhost:8080出现nginx的欢迎页则代表您已成功启动nginx容器。如果D:/docker/www中没有index.html文件。请手动添加并再次访问看效果。

其次将thinkphp5源码放入挂载的目录D:/docker/www中,如下:

tp5 如何docker,Docker学习,docker,nginx,容器

打开D:/docker/nginx/conf/default.conf并修改内容如下:

server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;
    root /www/public;#thinkphp5对应的目录下的public
    index index.php index.html;

    #access_log  /var/log/nginx/host.access.log  main;

    # location / {
    #     root   /usr/share/nginx/html;
    #     index  index.html index.htm;
    # }
    #隐藏入口文件index.php
    location / {
        if (!-e $request_filename){
            rewrite  ^(.*)$  /index.php?s=$1  last;   break;
        }
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
       fastcgi_pass   phpfpm:9000;#启动的PHP容器名+端口,本地使用localhost:9000,在此例中不需要更改
       fastcgi_index  index.php;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       fastcgi_param PATH_INFO $fastcgi_path_info;
       include        fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

修改保存以上文件后,重启nginx容器,访问localhost:8080即可看到thinkphp5的欢迎页!

tp5 如何docker,Docker学习,docker,nginx,容器

第六步:连接mysql数据库

修改thinkphp5数据库配置中的hostname:

'hostname'        => 'mysql-container:3306',//mysql容器名:内部端口

工具连接mysql,端口33060,账号root,密码为-e MYSQL_ROOT_PASSWORD后面设置的内容,连接成功如下:

tp5 如何docker,Docker学习,docker,nginx,容器

结语:

都配置好了之后,就可以愉快的使用thinkphp5写业务了。

以上为我个人学习所得经验,如有疑问或觉得配置有误的地方请与我联系哦,感谢您的阅读!!文章来源地址https://www.toymoban.com/news/detail-858078.html

到了这里,关于windows本地使用docker+nginx+mysql部署thinkphp5的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用Docker容器部署java运行环境(java8 + mysql5.7 + redis5.0 + nginx1.14.1

    环境:阿里云ECS服务器 1.1 安装工具 1.2 为yum源添加docker仓库位置 1.3 将软件包信息提前在本地索引缓存 (非必要,建议执行,可以提升yum安装的速度,报错去掉fast试试) 1.4 安装Docker 傻瓜式安装 点击y 1.5 启动Docker 1.6 设置开机自启动 1.7 安装完成后可以测试一下,是否安装成功

    2024年02月02日
    浏览(73)
  • windows10下设置本地apache\nginx站点部署ssl证书,使本地配置的域名可以用https访问

    首先我们需要下载openssl来生成证书文件: 去官方网址下载https://slproweb.com/products/Win32OpenSSL.html; 下载好了,双击exe文件,然后就下一步,下一步安装完成; 安装之后配置环境变量,新建一个系统变量OPENSSL_HOME,值就是你安装目录下的bin,然后在系统变量path,增加%OPENSSL_HO

    2024年02月15日
    浏览(44)
  • Docker部署Springboot应用【mysql部署+jar部署+Nginx部署】

    【项目达到目标】 1.基本准备 2、mysql部署 3、jar部署 4、Nginx部署 一、基本准备 石工拿的就是之前放置在我们服务器上的应用进行部署,主要就是mysql和jar还有Vue的部署。 目前已经有的是jar、已经打包好的vue   二、mysql部署 docker run -d --name mysql     --restart=always     -p 3

    2024年02月14日
    浏览(35)
  • docker应用部署(部署MySql,部署Tomcat,部署Nginx,部署Redis)

    一、部署MySQL 搜索mysql镜像 拉取mysql镜像 创建容器,设置端口映射、目录映射 参数说明: -p 3307:3306 :将容器的 3306 端口映射到宿主机的 3307 端口。 -v $PWD/conf:/etc/mysql/conf.d :将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。配置目录 -v $PWD/logs:/logs :将主机当前目

    2024年02月03日
    浏览(42)
  • opengpts项目windows11本地部署教程(无docker)

    目录 项目地址 本地部署步骤 从github下载代码 配置环境 安装项目依赖项 安装 Postgres 和 Postgres 矢量扩展 配置环境变量 创建数据库 连接数据库并创建postgres角色 安装 Golang 迁移 安装后端依赖 启动后端服务器 启动前端 问题 项目地址 https://github.com/langchain-ai/opengpts 点击上面我

    2024年04月23日
    浏览(35)
  • 使用docker-compose.yml快速搭建开发、部署环境(nginx、tomcat、mysql、jar包、各种程序)以及多容器通信和统一配置

    image 镜像名称,可去镜像市场查找自己需要的 hostname 容器内服务名 container_name 容器名 volumes 可以把自己电脑的路径映射到容器中的文件夹中 networks 写同一个网络可以让容器之间进行通信 启动 在项目根目录的命令行中输入 docker-compose up 停止 在项目根目录的命令行中输入 d

    2024年02月12日
    浏览(52)
  • docker的安装部署nginx和mysql

    小白自己整理,如有错误请指示! 自我理解:docker就是把应用程序所用的依赖程序,函数库等相关文件打包成镜像文件,类似系统光盘,然后可以在任意电脑上安装使用(方便运维人员部署程序),没运行一个程序就形成一个容器,程序的相关配置信息都在容器内完成,所以

    2024年02月07日
    浏览(42)
  • docker快速部署Redis、MySQL、Nginx

    拉取镜像 拷贝一份redis.conf文件复制到/home/ubuntu/redis文件夹下,修改redis.conf配置文件 创建redis容器 MySQL 8.0.30 拉取镜像 创建容器 docker安装完成mysql8,如果使用sqlyog或者navite连接,需要修改密码加密规则,因为低版本客户端工具不支持mysql8最新的加密规则。如果使用客户端连接

    2024年02月03日
    浏览(49)
  • docker 部署 nginx+php+mysql 环境

    记录一下docker部署web服务器流程。nginx,mysql,php不同的版本配置内容可能会不同。 docker常用命令 目录结构 创建目录 运行PHP容器 php容器内容目录结构如下: PHP5.4升级后,php.ini-dist不见了,出现了php.ini-developmen和php.ini-production。 php.ini-development 对应于 php.ini-dist,适合开发测

    2024年04月24日
    浏览(78)
  • Docker安装Nginx并部署&MySQL容器构建

    将配置文件上传到conf文件夹(数据库配置文件已放到置顶资源中) /soft/mysql/conf/my.cnf:/etc/my.cnf目录为我们配置绑定的目录 /soft/mysql/data:/var/lib/mysql 是将data目录与MySQL目录进行绑定 进入到我们的MySQL容器中(m1为容器名)  进入容器后登录到MySQL 输入密码后进入到MySQL赋予权限 

    2024年01月19日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包