ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Laradock 对比 XAMPP / MAMP:从一体化安装包迁移到 Docker 容器环境的完整指南

Laradock 对比 XAMPP / MAMP:从一体化安装包迁移到 Docker 容器环境的完整指南 Laradock 对比 XAMPP / MAMP从一体化安装包迁移到 Docker 容器环境的完整指南【免费下载链接】laradockFull PHP development environment for Docker. Run Laravel, Symfony, CodeIgniter, Phalcon, WordPress, Drupal, Magento, Moodle, or any PHP project with 70 pre-configured services: Nginx, Apache, PHP-FPM, MySQL, PostgreSQL, MongoDB, Redis, Elasticsearch more.项目地址: https://gitcode.com/gh_mirrors/la/laradockXAMPP、MAMP 与 WAMP 自 2000 年代初期以来一直是无数 PHP 开发者搭建本地环境的默认方式下载一个安装包、点击控制面板、服务即刻运行无需命令行、无需 Docker。Laradock 保留了这种开箱即用的简便性但将所有组件放进彼此隔离的 Docker 容器中运行而非直接安装到你的操作系统上。本文基于官方对比文档客观分析两种方案各自擅长的场景并给出约 10 分钟即可完成的从 XAMPP / MAMP / WAMP 迁移到 Laradock 的实战步骤。TL;DR只有当 Docker 无法在你的机器上运行时才考虑选择 XAMPP / MAMP否则 Laradock 能以同样的便捷性为你带来按项目隔离的 PHP 版本、贴近生产环境的栈结构以及始终保持干净的主机。XAMPP / MAMP 是什么XAMPP 和 MAMP 是免费的一体化安装包直接把 Apache、MySQL或 MariaDB和 PHP 安装到你的 Windows、macOS 或 Linux 机器上。它们的工作方式如下一个安装程序将 Apache、MySQL 和 PHP 直接装到操作系统上项目存放在htdocs/目录下通过控制面板启动/停止服务通过localhost/phpmyadmin管理数据库。这套方案确实对新手极其友好但长期使用会暴露出如下代价全局只有一个 PHP 版本所有项目共用同一个 PHP切换版本意味着重装 XAMPP团队之间配置漂移每个成员的机器配置靠手工维护无法保持一致没有隔离一份损坏的 MySQL 配置会影响所有项目与生产环境脱节本机原生环境与你的 Linux 服务器形态差异巨大卸载不干净卸载后仍会残留大量文件与配置。用 Laradock 实现同样的功能Laradock 的做法是在项目目录旁克隆一份仓库然后用一条命令启动你需要的服务栈cd my-project git clone https://github.com/laradock/laradock.git cd laradock启动服务有两种等价方式Laradock CLI 或直接使用 Docker Compose。方式一Laradock CLI推荐首次运行带交互向导./laradock start nginx mysql phpmyadmin方式二Docker Compose纯手工不依赖 CLIcp .env.example .env docker compose up -d nginx mysql phpmyadmin启动后你会得到应用入口http://localhostphpMyAdminhttp://localhost:8081主机名mysql用户default密码secret偏好 Apache 而非 Nginx只需换成./laradock start apache2 mysql phpmyadmin或docker compose up -d apache2 mysql phpmyadmin区别仅此而已。所有组件都在容器中运行每个项目可以拥有自己的 PHP 版本5.6 至 8.5和独立数据库团队成员基于同一份文件得到完全一致的栈而./laradock remove命令可以让你的机器恢复到和之前一模一样的状态。值得说明的是Laradock CLI 只是普通docker compose之上的一层便捷封装不持有状态、不生成额外文件并且每执行一条命令都会打印其真实运行的docker compose命令见 CLI 脚本 头部注释。纯docker compose的方式在任何时候都同样可用。并排对比维度XAMPP / MAMPLaradock安装桌面安装包全局安装 Apache/MySQL/PHP无需安装git clone 即可仅需 Docker 本身启动控制面板按钮./laradock start nginx mysqlPHP 版本全局单一版本切换需重装5.6 至 8.5按项目隔离通过.env配置项目间隔离无完整每个项目独立容器LAMP 之外的服务无仅 Apache MySQL100Redis、Postgres、队列、搜索、邮件、LLM 等是否贴近 Linux 服务器否原生 Windows/macOS是相同的容器团队一致性各自手工配置相同文件 所有成员一致的栈清理卸载程序残留物长期滞留./laradock remove零残留主机占用全局安装 Apache/MySQL/PHP主机上不安装任何东西什么情况下选择 XAMPP / MAMPDocker 无法在你的机器上运行旧硬件、公司限制教授绝对初学者GUI 控制面板能显著降低上手门槛只有一个很小的项目原生方案足够简单不需要更多能力。什么情况下选择 Laradock你同时维护多个项目或你的工作中需要多个 PHP 版本你希望本地环境的行为与生产服务器一致你需要 Apache MySQL 之外的任何服务Redis、Postgres、队列、搜索、邮件捕获器等每个都只需一条命令即可启动你希望有一台可以一条命令彻底清理干净的开发机。从 XAMPP 迁移到 Laradock约 10 分钟迁移共分 7 步全程唯一需要安装的东西是 Docker 本身。安装 Docker DesktopWindows/macOS或 Docker EngineLinux这是本指南中唯一的一次安装。Laradock 要求 Docker Compose v2.20 或更新版本CLI 脚本 中MIN_COMPOSE_MINOR20即为此约束。在旧 phpMyAdminXAMPP中导出数据库为 SQL 文件。把项目移出htdocs/放到任意你喜欢的位置并在其旁边添加 Laradockcd my-project git clone https://github.com/laradock/laradock.git cd laradock cp .env.example .env启动你的服务栈./laradock start nginx mysql phpmyadmin或docker compose up -d nginx mysql phpmyadmin首次运行需要几分钟构建镜像之后只需几秒即可启动。在全新的 phpMyAdmin 中导入数据库访问localhost:8081创建数据库并导入第 2 步导出的文件。更新应用配置数据库主机名从localhost改为mysql容器之间通过服务名互相访问用户default密码secret可在.env中修改。告别旧习惯对照下表切换日常操作在 XAMPP 中你...在 Laradock 中你...打开控制面板并点击 Start./laradock start nginx mysql从面板停止 Apache/MySQL./laradock stop把项目放进htdocs/项目放在任意位置在.env中设置APP_CODE_PATH_HOST编辑php.ini编辑php-fpm/phpX.Y.ini重新构建一次通过重装 XAMPP 切换 PHP修改.env中的PHP_VERSION重新构建一次在操作系统上运行php/composer./laradock workspace内置 PHP、Composer、Node、git 的 Linux shellphpMyAdmin 位于localhost/phpmyadminphpMyAdmin 位于localhost:8081迁移过程中的关键配置解读为了让迁移顺利落地以下配置项值得重点关注它们分别对应迁移步骤 3、6 与切换 PHP三个环节。项目目录映射APP_CODE_PATH_HOST默认值../表示 Laradock 目录的上一级即你的项目根目录会被挂载进容器内的/var/www.env.example。容器内部访问路径固定在/var/www例如 Nginx 默认站点配置 的root /var/www/public以及 PHP-FPM 的挂载声明。迁移时只需确认项目代码确实位于 Laradock 目录的上一级或相应调整该变量。数据库账号与端口MYSQL_*系列MySQL 容器的关键变量定义在 mysql/defaults.env变量默认值说明MYSQL_VERSION8.4可用 5.7、8.0、8.4、9.0切换大版本会改变数据目录格式见下MYSQL_DATABASEdefault容器启动时自动创建的数据库MYSQL_USER/MYSQL_PASSWORDdefault/secret应用连接使用的账号密码MYSQL_ROOT_PASSWORDrootroot 账号密码MYSQL_PORT3306宿主机映射端口可改 3307 等避免与本机冲突这些变量通过 mysql/compose.yml 以环境变量形式注入容器映射关系为${MYSQL_PORT}:3306。由于每个服务目录下都有预填好的defaults.envmysql/defaults.env、phpmyadmin/defaults.env你不需要复制或编辑它们——任何覆盖只需写进你自己的.env且.env中的值永远优先.env.example。注意数据库数据存放在DATA_PATH_HOST默认~/.laradock/data下的子目录中数据库引擎不会对更新大版本后产生的旧数据做降级兼容。若更换*_VERSION后数据库容器反复重启要么把版本改回去要么删除对应引擎在DATA_PATH_HOST下的子目录重新初始化这会清除该数据库的本地数据详见 .env.example。按项目切换 PHP 版本PHP_VERSION.env中的PHP_VERSION默认8.4可接受值为8.5 - 8.4 - 8.3 - 8.2 - 8.1 - 8.0 - 7.4 - 7.3 - 7.2 - 7.1 - 7.0 - 5.6.env.example。它同时作用于 Workspace 与 PHP-FPM 容器PHP-FPM 构建时通过LARADOCK_PHP_VERSION参数传入php-fpm/compose.yml对应版本的php-fpm/phpX.Y.ini会被挂载为容器内 php.iniphp-fpm/compose.yml。也就是说迁移表中切换 PHP 改PHP_VERSION 重新构建一次的说法在源码层面正是由这一参数链路实现的。phpMyAdmin 的端口与账号phpMyAdmin 的默认端口8081、用户default、密码secret定义在 phpmyadmin/defaults.env并通过 phpmyadmin/compose.yml 注入容器。其中PMA_DB_ENGINEmysql指定其连接的数据库引擎PMA_UPLOAD_LIMIT2G等参数保证大 SQL 文件的导入不会被截断。关于 XAMPP / MAMP 的常见问题XAMPP 免费吗是的XAMPPApache Friends免费且开源。MAMP 提供免费版本另有付费的 MAMP PRO 升级版提供多虚拟主机等更高级的功能。XAMPP 能运行多个 PHP 版本吗不能原生支持XAMPP 每次安装只有一个全局 PHP 版本。要并排运行多个版本需要安装多份 XAMPP 拷贝或借助第三方版本切换工具。而 Laradock 开箱即用地为每个项目提供拥有独立 PHP 版本的独立容器。XAMPP 适合生产环境吗不适合。XAMPP 被明确设计并定位为本地开发工具其默认配置MySQL root 密码为空、phpMyAdmin 暴露在外未针对生产环境做加固。XAMPP 支持 Docker 吗不支持。XAMPP 将 Apache、MySQL 和 PHP 直接安装到操作系统上不使用容器。这正是本文对比的核心差异。如何把 XAMPP 项目迁移到 Docker从 phpMyAdmin 导出数据库把项目文件移出htdocs/然后按照上文从 XAMPP 迁移到 Laradock的分步指南操作全程约 10 分钟。如需了解完整的方案全景包括 DDEV、Sail、Herd 与 Lando可查看 Laradock vs Others完整的安装与配置参考见 Getting Started。【免费下载链接】laradockFull PHP development environment for Docker. Run Laravel, Symfony, CodeIgniter, Phalcon, WordPress, Drupal, Magento, Moodle, or any PHP project with 70 pre-configured services: Nginx, Apache, PHP-FPM, MySQL, PostgreSQL, MongoDB, Redis, Elasticsearch more.项目地址: https://gitcode.com/gh_mirrors/la/laradock创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表