搜索
首页科技周边IT业界与Docker建立现代的PHP开发环境

>本教程通过使用当前的最佳实践Docker设置PHP开发环境,从而指导您。 我们将介绍PHP开发环境的演变,强调Docker比旧方法的优势。 如果要跳过历史记录,请跳到配置步骤。

>

Setting Up a Modern PHP Development Environment with Docker

PHP开发环境的简短历史

> Web开发的快速步伐需要现代方法。 过时的教程比比皆是。 让我们回顾一下演变:

手动安装:
    过去常见的手动安装Apache,PHP和MySQL的艰巨过程很常见。这需要大量的专业知识,并且很耗时。
  1. >

    >预先配置的软件包(XAMPP,WAMP):这些软件包简化了设置,但是开发环境和生产环境(不同版本的软件,OS差异)之间的不一致会带来挑战。 许多开发人员仍在使用这些,但是是时候升级了。
  2. >
  3. >虚拟机(vagrant):

  4. docker: docker提供了没有开销的虚拟机的好处。它将应用程序及其所有依赖项包装到容器中,以确保环境的一致性。

  5. 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: {}
> php dockerfile(php.dockerfile):

创建

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。

>

Setting Up a Modern PHP Development Environment with Docker Setting Up a Modern PHP Development Environment with Docker

>部署:>只需上传您的项目文件(包括docker-compose.yml>,nginx.confPHP.Dockerfile),然后运行docker-compose up -d以进行无缝部署。

>

常见问题解答:(提供的FAQ已经结构良好,可以直接包括在内。)

>

此修订后的输出维护原始图像位置和格式,同时重新绘制文本以提高清晰度和流动,避免窃。

以上是与Docker建立现代的PHP开发环境的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
为什么您的自动化需要AI决策(以及Wordware如何提供)为什么您的自动化需要AI决策(以及Wordware如何提供)May 15, 2025 am 10:47 AM

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

定制电信软件的好处定制电信软件的好处May 11, 2025 am 08:28 AM

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

CNCF触发了ARM64和X86的平台平等突破CNCF触发了ARM64和X86的平台平等突破May 11, 2025 am 08:27 AM

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

21个开发人员新闻通讯将在2025年订阅21个开发人员新闻通讯将在2025年订阅Apr 24, 2025 am 08:28 AM

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

使用AWS ECS和LAMBDA的无服务器图像处理管道使用AWS ECS和LAMBDA的无服务器图像处理管道Apr 18, 2025 am 08:28 AM

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

CNCF ARM64飞行员:影响和见解CNCF ARM64飞行员:影响和见解Apr 15, 2025 am 08:27 AM

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

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

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

热门文章

热工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具