phpEnv可在Windows手动部署Emlog,需启用mod_rewrite、配置utf8mb4数据库、切换PHP 7.4.33版本、补全伪静态规则并注意冷启动验证。

phpEnv 可以直接部署 Emlog,但必须注意:它仅适用于 Windows 系统,且不能直接调用宝塔或 Docker 那类一键部署逻辑——所有步骤需手动完成,包括数据库创建、目录权限模拟、伪静态规则补全。
phpEnv 启动后 Apache 无法加载 Emlog 的常见原因
phpEnv 默认启用 Apache,但它的 httpd.conf 不包含 Emlog 所需的 .htaccess 解析支持。即使你把 Emlog 放进 www 目录,访问时也大概率报 500 错误或跳转到 Apache 默认页。
- 打开
phpEnv\Apache\conf\httpd.conf,确认以下三行未被注释(即前面没有#):LoadModule rewrite_module modules/mod_rewrite.soInclude conf/extra/httpd-vhosts.confDocumentRoot "D:/phpEnv/www"(路径需与你实际一致) - 在
conf/extra/httpd-vhosts.conf中为 Emlog 单独加一个虚拟主机块,DocumentRoot指向D:/phpEnv/www/emlog,并设置AllowOverride All - 重启 phpEnv 的 Apache 服务(不是“重新加载配置”,是彻底 stop → start)
MySQL 数据库初始化必须用 utf8mb4 字符集
Emlog Pro 2.6.3 强制要求数据库使用 utf8mb4,否则安装界面会卡在“正在检测环境”或提示“数据库连接失败”,但错误信息里不明确说字符集问题。
- 启动 phpEnv 自带的 MySQL(默认端口 3306,用户
root,密码为空) - 用 phpEnv 内置的 phpMyAdmin(
http://localhost/phpmyadmin)新建数据库,排序规则选utf8mb4_unicode_ci,不是utf8_general_ci或默认的latin1 - 如果用命令行,执行:
CREATE DATABASE emlog_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
安装过程中 /install/ 页面白屏或报错 Parse error
这是 phpEnv 默认 PHP 版本与 Emlog Pro 2.6.3 不兼容的典型表现。当前最新版 Emlog 要求 PHP ≥ 7.4,但 phpEnv 8.12.1 默认启动的是 PHP 8.3 —— 表面兼容,实则因 mysql_connect() 等废弃函数残留导致解析失败。
立即学习“PHP免费学习笔记(深入)”;
- 在 phpEnv 主界面右键点击 PHP 版本号,选择「切换版本」,临时切到
PHP 7.4.33(phpEnv 8.12.1 已内置该版本) - 确保
php.ini中开启:extension=mysqliextension=gdextension=curlextension=mbstring - 安装完 Emlog 后,可再切回 PHP 8.3,但需手动修改
emlog/config.php中的数据库驱动为mysqli(而非旧版mysql)
伪静态生效但文章链接 404,或后台无法保存设置
phpEnv 的 Apache 缺少对 Emlog .htaccess 中部分重写规则的支持,尤其是涉及 PATH_INFO 和子目录路径的场景。
- 不要依赖 Emlog 后台“启用伪静态”开关,先在 phpEnv 的 Apache 配置中强制启用:
在对应虚拟主机配置块内添加:RewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^(.*)$ index.php [L] - Emlog 安装后,进入后台 →「设置」→「站点信息」→「URL 地址格式」选「兼容模式」,避免依赖 PATH_INFO
- 如果仍 404,检查
emlog/.htaccess文件是否被 Windows 隐藏属性锁定,用管理员权限编辑并保存
最易被忽略的一点:phpEnv 的「绿色版」不会自动注册系统服务,每次重启电脑后 Apache 和 MySQL 都是停止状态,必须手动点 phpEnv 界面的「启动」按钮;而「安装版」虽能自启,但若安装时勾选了「开机启动」却没给管理员权限,服务仍会静默失败。部署完成务必验证一次冷启动后的可用性。



















