XAMPP 不适合部署 DolphinCMS,因其仅为 PHP 开发测试环境,缺乏生产级所需的权限隔离、进程管理、日志分级和安全加固能力。

直接说结论:XAMPP 不适合部署 DolphinCMS(注意不是 DolphinScheduler),它本质是面向 PHP 开发测试的轻量集成包,缺乏生产级 CMS 所需的权限隔离、进程管理、日志分级和安全加固能力。强行用 XAMPP 跑 DolphinCMS,90% 的问题都出在 Apache 权限、MySQL 字符集、PHP 扩展缺失和伪静态失效这四点上。
Apache 启动后无法访问 DolphinCMS 首页
常见现象是浏览器显示 403 Forbidden 或白屏,但 /opt/lampp/xampp start 显示 Apache running。根本原因不是端口冲突,而是 XAMPP 默认的 <directory></directory> 权限太严,且未启用 mod_rewrite。
- 先确认模块已启用:
sudo /opt/lampp/bin/httpd -M | grep rewrite,若无输出,需编辑/opt/lampp/etc/httpd.conf,取消#LoadModule rewrite_module modules/mod_rewrite.so前的注释 - 再改目录权限:找到
<directory></directory>块,把里面的Require all denied改为Require all granted,并确保AllowOverride All已开启 - 重启 Apache:
/opt/lampp/xampp restart,不要只 start —— restart 才会重载配置
MySQL 连接失败或中文乱码
DolphinCMS 对字符集敏感,XAMPP 自带的 MySQL 默认用 latin1,而 DolphinCMS 安装脚本强制要求 utf8mb4。不改会导致安装卡在数据库初始化,或后台文章标题显示为问号。
XAMPP 8.0.30 是一款免费、开源的跨平台 Web 服务器集成包,专为快速搭建本地 PHP 开发环境而设计。该版本核心组件包括:Apache 2.4.56、MySQL 8.0.33、PHP 8.0.30、phpMyAdmin 5.2.1 等。它支持 Windows、Linux 和 macOS 系统,可让开发者在个人电脑上轻松模拟服务器环境,无需复杂配置即可运行 WordPress、Thin
- 修改
/opt/lampp/etc/my.cnf,在[mysqld]下添加三行:character-set-server = utf8mb4、collation-server = utf8mb4_unicode_ci、skip-character-set-client-handshake - 在
[client]和[mysql]段下各加一行:default-character-set = utf8mb4 - 重启 MySQL:
/opt/lampp/xampp restart,然后进命令行执行:mysql -u root -e "SHOW VARIABLES LIKE 'character%';",确认所有值都是utf8mb4
PHP 扩展缺失导致安装向导报错
DolphinCMS 安装页面提示 “cURL extension is not loaded” 或 “GD extension missing”,是因为 XAMPP 的 php.ini 里这些扩展默认是注释掉的,且没开 opcache,影响后台加载速度。
- 编辑
/opt/lampp/etc/php.ini,搜索;extension=curl和;extension=gd,去掉分号;再搜;opcache.enable=0,改为opcache.enable=1 - 注意路径:XAMPP 的 PHP 扩展库在
/opt/lampp/lib/php/extensions/no-debug-non-zts-20220829/(PHP 8.2 版本号可能不同,用php -i | grep extension_dir确认) - 改完执行:
/opt/lampp/xampp restart,再用php -m | grep -E "curl|gd|opcache"验证是否加载成功
伪静态(Rewrite)规则不生效
DolphinCMS 后台生成的 URL 是 /index.php?m=content&c=index&a=lists&catid=1 这种形式,但实际需要 /content/lists/1.html。XAMPP 默认不读取站点根目录下的 .htaccess,即使你写了规则也无效。
- 必须在 Apache 主配置中显式允许 .htaccess 覆盖:确保
<directory></directory>块里有AllowOverride All(前面已提过,但这是最常漏改的一处) - DolphinCMS 的
.htaccess文件需放在其安装目录根下(如/opt/lampp/htdocs/dolphincms/.htaccess),不能放在子目录里 - 如果仍不生效,临时在
.htaccess顶部加一行:RewriteEngine On,并检查 Apache 错误日志:tail -f /opt/lampp/logs/error_log,看是否有Invalid command 'RewriteEngine'类报错(说明 mod_rewrite 没启)
真正麻烦的不是配置本身,而是 XAMPP 的日志分散在多个地方:/opt/lampp/logs/error_log(Apache)、/opt/lampp/logs/php_error_log(PHP)、/opt/lampp/logs/mysql_error_log(MySQL)。出问题时别只盯一个,三个一起 tail 才能快速定位真实源头。

















