WordPress在XAMPP上跑不起来,主因是Apache或MySQL未真正启动、端口被占、htdocs目录结构错误、数据库未用utf8mb4创建、wp-config.php中DB_HOST填了127.0.0.1而非localhost,或PHP扩展未启用。

WordPress 在 XAMPP 上跑不起来,八成不是 WordPress 的问题,而是 Apache 或 MySQL 没真启动、端口被占、htdocs 目录结构错、数据库没建对,或者 wp-config.php 里填了 127.0.0.1 而不是 localhost。
确认 Apache 和 MySQL 真正在工作,不只是“Running”
XAMPP 控制面板上显示绿色“Running”,只代表进程起来了,不代表服务已就绪。Apache 可能监听了非 80 端口,MySQL 可能因 root 密码变更或端口冲突静默失败。
- 在命令行运行
netstat -ano | findstr :80(Windows),看是否真有httpd.exe占用 80 端口;若被 Skype、Zoom、IIS 或其他程序占了,得先关掉它们 - 点控制面板的
Shell按钮,输入mysql -u root -p后直接回车(默认空密码);如果报Access denied for user 'root'@'localhost',说明密码被改过,得在wp-config.php里填对新密码 - 查 Apache 错误日志:
C:\xampp\apache\logs\error.log,常见提示如AH00072: make_sock: could not bind to address [::]:80就是端口冲突
WordPress 文件必须放对位置,且目录结构不能嵌套
访问 http://localhost/wordpress 出现 403、404 或空白页,大概率是文件路径或解压方式错了——不是名字不对,就是多了一层目录。
- 用 7-Zip 或 WinRAR 右键解压,选“解压到当前文件夹”,确保
wp-admin、wp-includes、wp-config.php这些文件直接出现在C:\xampp\htdocs\wordpress\下,而不是C:\xampp\htdocs\wordpress\wordpress-6.5.3-zh_CN\ - 别把
wordpress-6.5.3-zh_CN.zip整个丢进htdocs,也别保留 .zip 后缀 - 文件夹名必须是纯英文、无空格、无中文;比如
myblog可以,我的博客或wordpress test不行 - 想用
http://localhost直接访问,就把 WordPress 所有文件解压后复制进C:\xampp\htdocs\根目录(覆盖前建议先重命名原index.php备份)
数据库必须用 utf8mb4 创建,且 wp-config.php 的 DB_HOST 必须写 localhost
安装卡在“连接数据库”或提示 Sorry, I can’t write the wp-config.php file.,基本是权限、字符集或主机名配置错了。
- 进
http://localhost/phpmyadmin,左侧点“数据库”,输库名(如wp_local),字符集选utf8mb4,排序规则选utf8mb4_unicode_ci——别用utf8,WordPress 6.0+ 强依赖utf8mb4 -
DB_HOST必须是localhost,不能填127.0.0.1(XAMPP 的 MySQL 默认只认localhost) - 手动配置时,复制
wp-config-sample.php→wp-config.php,编辑时用 VS Code 或 Notepad++(别用记事本,编码易出错) - 加两行防调试泄露:
define('WP_DEBUG', false);和define('FS_METHOD','direct');
phpMyAdmin 登录失败或 wp-config.php 写入失败的底层原因
看似是密码或权限问题,实际常源于 MySQL 认证插件变更或 htdocs 目录不可写。
- 新版 XAMPP(含 MariaDB)可能默认启用
auth_socket插件,导致mysql -u root -p失败;此时需进 phpMyAdmin → 用户账户 → 编辑root@localhost→ 密码栏留空 + 认证插件选mysql_native_password→ 执行 -
htdocs/wordpress/目录若被设为只读,WordPress 安装向导无法自动生成wp-config.php;右键文件夹 → 属性 → 取消“只读”勾选 - PHP 扩展未启用也会导致白屏:打开
C:\xampp\php\php.ini,确认extension=mysqli和extension=mbstring前面没有分号
最常被忽略的是:XAMPP 的 MySQL 默认只响应 localhost,而很多教程随手抄成 127.0.0.1;还有人以为“解压完成”就等于“文件到位”,其实多一层目录、带 zip 后缀、路径含中文,都会让 Apache 直接拒收请求。


















