登录
首页 >  文章 >  php教程

XAMPP多端口部署Dolphin方法

时间:2026-04-30 21:30:58 147浏览 收藏

本文深入解析了为何DolphinScheduler无法作为模块直接集成到XAMPP中——根本原因在于二者技术栈完全割裂:XAMPP是面向PHP的轻量级Web开发套件,而DolphinScheduler是依赖JDK、ZooKeeper、独立数据库及多用户权限管控的Java分布式调度系统;强行“塞入”只会引发端口冲突、JVM失控、权限异常与服务生命周期混乱。文章明确指出共存唯一可行路径是“物理隔离、有限复用”:仅复用XAMPP的MySQL(需手动建库授权并确保本地连接),严格规避端口重叠(如Apache占80/8080,DolphinScheduler用12345/5678),且必须以独立用户身份启动多进程服务——尤其强调Windows下权限模型适配这一被官方文档低估却导致七成启动失败的关键痛点,为开发者提供了一条清晰、务实、避坑的本地共存实践指南。

XAMPP环境下多端口部署Dolphin

不能直接在 XAMPP 环境下部署 DolphinScheduler。XAMPP 是 Apache + MySQL + PHP + Perl 的集成包,而 DolphinScheduler 是基于 Java 的分布式工作流调度系统,两者运行栈完全不同,强行“塞进” XAMPP 不仅无效,还会引发端口、权限、JVM、服务生命周期等一连串冲突。

为什么不能把 DolphinScheduler 当成 XAMPP 的一个“模块”跑

DolphinScheduler 启动依赖:JDK 1.8+ZooKeeper、独立的数据库(MySQL/PostgreSQL)、psmisc 工具,且必须以 Linux 用户身份(带 sudo 免密)启动多个 Java 进程(master-serverworker-serverapi-server 等)。XAMPP 的 apache 进程是 C 写的、单线程/多进程模型;DolphinScheduler 是多 JVM 进程、强依赖注册中心和元数据一致性——二者没有共享配置层或统一控制面。

常见误操作包括:

  • 试图把 dolphinscheduler-bin 放进 htdocs 目录,期望通过浏览器访问 —— 浏览器只能请求静态资源或 PHP 脚本,无法执行 Java 后端服务
  • 修改 httpd.confListen 端口去“让出” 12345(DolphinScheduler 默认 API 端口)—— Apache 不会转发或代理到 Java 进程,除非你额外配反向代理(但那已脱离 XAMPP 原生能力)
  • 以为只要启动了 XAMPP 的 MySQL 就能直接给 DolphinScheduler 用 —— 可以复用,但必须手动初始化库表(script/create-dolphinscheduler.sql),且需确认 MySQL 用户有 CREATE/ALTER 权限,XAMPP 自带的 root(空密码)默认不允许远程连接,而 DolphinScheduler 的 api-server 会尝试本地 socket 或 TCP 连接,容易报 Access denied

共存的前提:端口与用户隔离

如果你已在 Windows 上装了 XAMPP,并想在同一台机器跑 DolphinScheduler(比如开发调试),关键不是“整合”,而是“不打架”。重点检查以下三项:

  • Apache 占用 804438080?DolphinScheduler 的 api-server 默认用 12345master5678worker1234 —— 只要这些端口没被 XAMPP 或其他程序占用,就安全
  • XAMPP 的 MySQL 默认端口是 3306,DolphinScheduler 配置文件 conf/datasource.properties 中的 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/dolphinscheduler?... 可直接复用,但必须确保该 MySQL 实例允许 localhost 连接(检查 my.inibind-address=127.0.0.1,而非 0.0.0.0 或注释掉)
  • DolphinScheduler 必须用独立用户启动(如 dolphinscheduler),不能用 Administrator 或 XAMPP 安装时的当前用户直接运行 —— 否则 sudo -u xxx 切换租户任务会失败,日志里出现 sudo: no tty present

Windows 下最小可行共存步骤

跳过所有“把 DolphinScheduler 塞进 XAMPP”的想法,按原生方式部署,只利用 XAMPP 已有的 MySQL:

  • 下载 apache-dolphinscheduler-3.1.3-bin.tar.gz,解压到非中文路径,如 D:\dolphinscheduler
  • 编辑 conf/datasource.properties,填入 XAMPP 的 MySQL 连接信息:spring.datasource.username=rootspring.datasource.password=(XAMPP 默认空密码),并确认 url 指向 127.0.0.1:3306
  • 运行 script/create-dolphinscheduler.sql 手动建库建表(用 phpMyAdmin 或命令行 mysql.exe 执行)
  • 确保 conf/zoo.cfg 指向本地 ZooKeeper(若没装,得单独下载 zookeeper-3.8.0,DolphinScheduler 3.1+ 不兼容 3.4.x)
  • 以管理员身份打开终端,cd 到 D:\dolphinscheduler,执行:bin/install.sh(Windows 下用 Git Bash 或 WSL);若坚持 cmd/powershell,改用 bin\install.cmd,但需提前设好 JAVA_HOMEPATH
  • 启动后,访问 http://localhost:12345(不是 XAMPP 的 80 端口!),登录默认账号 admin/dolphinscheduler123

真正麻烦的从来不是端口数字本身,而是 DolphinScheduler 对 Linux 用户权限模型的硬依赖 —— Windows 上哪怕开了 WSL2,也得面对 sudo -u 在非 root 用户下能否真实切换 UID 的问题。这点在官方文档里轻描淡写,但实操中 70% 的启动失败都卡在这儿。

以上就是《XAMPP多端口部署Dolphin方法》的详细内容,更多关于XAMPP的资料请关注golang学习网公众号!

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>