与Docker建立现代的PHP开发环境
>本教程通过使用当前的最佳实践Docker设置PHP开发环境,从而指导您。 我们将介绍PHP开发环境的演变,强调Docker比旧方法的优势。 如果要跳过历史记录,请跳到配置步骤。
>
> Web开发的快速步伐需要现代方法。 过时的教程比比皆是。 让我们回顾一下演变:
手动安装:
- 过去常见的手动安装Apache,PHP和MySQL的艰巨过程很常见。这需要大量的专业知识,并且很耗时。
- >
这些软件包简化了设置,但是开发环境和生产环境(不同版本的软件,OS差异)之间的不一致会带来挑战。 许多开发人员仍在使用这些,但是是时候升级了。 >
-
>虚拟机(vagrant):
-
docker: docker提供了没有开销的虚拟机的好处。它将应用程序及其所有依赖项包装到容器中,以确保环境的一致性。
- docker优于vagrant的优势:
> Docker避免了流浪者的资源消耗和同步问题。它允许多个具有不同配置(Apache,nginx,各种PHP版本)的网站同时运行,每个网站都在其自己的容器中隔离。 移动网站就像复制单个文件夹一样简单。
设置docker环境
>
>先决条件:
>下载并安装Docker。 在Linux上,通过发行版的软件包管理器安装和。 您可能需要将用户添加到
>组中,然后启动/启用Docker服务。 Windows和MacOS安装程序会自动处理此操作。在继续之前,请停止任何现有的Web服务器(Apache,nginx等)或MySQL实例。>
>配置(docker-compose.yml):
创建一个项目文件夹和adocker
文件:docker-compose
>
docker
> nginx配置(nginx.conf):
docker-compose.yml
version: '3' services: web: image: nginx:latest ports: - "80:80" volumes: - ./nginx.conf:/etc/nginx/conf.d/nginx.conf - ./app:/app php: build: context: . dockerfile: PHP.Dockerfile volumes: - ./app:/app mysql: image: mariadb:latest environment: MYSQL_ROOT_PASSWORD: 'secret' MYSQL_USER: 'tutorial' MYSQL_PASSWORD: 'secret' MYSQL_DATABASE: 'tutorial' volumes: - mysqldata:/var/lib/mysql ports: - 3306:3306 volumes: mysqldata: {}
创建
:version: '3' services: web: image: nginx:latest ports: - "80:80" volumes: - ./nginx.conf:/etc/nginx/conf.d/nginx.conf - ./app:/app php: build: context: . dockerfile: PHP.Dockerfile volumes: - ./app:/app mysql: image: mariadb:latest environment: MYSQL_ROOT_PASSWORD: 'secret' MYSQL_USER: 'tutorial' MYSQL_PASSWORD: 'secret' MYSQL_DATABASE: 'tutorial' volumes: - mysqldata:/var/lib/mysql ports: - 3306:3306 volumes: mysqldata: {}
运行服务:
>在您的项目目录中打开一个终端并运行docker-compose up
。 这将启动NGINX,PHP和Mariadb。访问您的网站http://127.0.0.1
。 一个“你好,世界!” app/public/index.html
>确认设置的测试页面。 用phpinfo()
>中的app/public/index.php
脚本验证PHP功能。 使用MySQL Workbench等客户端连接到MySQL。
>部署:>只需上传您的项目文件(包括docker-compose.yml
>,nginx.conf
和PHP.Dockerfile
),然后运行docker-compose up -d
以进行无缝部署。
常见问题解答:(提供的FAQ已经结构良好,可以直接包括在内。)
>此修订后的输出维护原始图像位置和格式,同时重新绘制文本以提高清晰度和流动,避免窃。
以上是与Docker建立现代的PHP开发环境的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

该试点程序是CNCF(云本机计算基础),安培计算,Equinix金属和驱动的合作,简化了CNCF GitHub项目的ARM64 CI/CD。 该计划解决了安全问题和绩效

该教程通过使用AWS服务来指导您通过构建无服务器图像处理管道。 我们将创建一个部署在ECS Fargate群集上的next.js前端,与API网关,Lambda函数,S3桶和DynamoDB进行交互。 Th

与这些顶级开发人员新闻通讯有关最新技术趋势的了解! 这个精选的清单为每个人提供了一些东西,从AI爱好者到经验丰富的后端和前端开发人员。 选择您的收藏夹并节省时间搜索REL

Arm64 架构开源软件的 CI/CD 难题与解决方案 在 Arm64 架构上部署开源软件需要一个强大的 CI/CD 环境。然而,Arm64 和传统 x86 处理器架构的支持水平之间存在差异,Arm64 通常处于劣势。面向多种架构的基础设施组件开发人员对工作环境有一定的期望: 一致性:跨平台使用的工具和方法保持一致,避免因采用不太流行的平台而需要改变开发流程。 性能:平台和支持机制具有良好的性能,确保在支持多个平台时部署方案不会因速度不足而受影响。 测试覆盖率:对所有平台同时进行效率、合规性和

定制电信软件开发无疑是一项相当大的投资。然而,从长远来看,您可能会意识到,这样的项目可能更具成本效益,因为它可以像市场上任何现成的解决方案一样提高您的生产力。了解构建定制电信系统的最重要优势。 获取您所需的确切功能 您可以购买的现成电信软件有两个潜在问题。有些缺乏可能显着改善您工作效率的有用功能。有时您可以通过一些外部集成来增强它们,但这并不总是足以使它们变得出色。 其他软件功能过多,使用起来过于复杂。您可能不会使用其中的一些(永远不会!)。大量的功能通常还会增加价格。 基于您的需求

我们都体验过传统自动化平台如Zapier和IFTTT的神奇之处。它们擅长连接应用程序并自动化简单的“如果这样,则那样”序列:新表单提交创建电子表格行,传入邮件触发Slack警报。简单、有效,且对于基本任务来说是巨大的时间节省者。但是,你的实际工作流程有多么简单?一旦你的工作流程需要理解细微的上下文、优雅地处理错误或处理非结构化数据,这些工具往往会遇到障碍。它们的简单性使其易于使用,但也成为一种限制。当简单规则不够用时:考虑一下客户支持。票务系统涌入非结构化数据——聊天片段、屏幕截图、复杂的用户描
