PrestaShop 8.x 在 phpEnv 下需满足三条件:PHP 8.1/8.2、启用 pdo_mysql 和 intl 扩展、Apache 配置 AllowOverride All 并确保 .htaccess 存在且权限正确,否则安装页必然失败。

PrestaShop 在 phpEnv 下能跑,但默认配置几乎必然失败——PHP 版本、扩展、重写规则三处不调就卡在安装页。
确认 phpEnv 的 PHP 版本是否满足 PrestaShop 8.x 要求
PrestaShop 8.1+ 强制要求 PHP 8.1 或 8.2;phpEnv 默认可能仍带 PHP 7.4 或 8.0,运行 php --version 查看实际版本。若输出是 PHP 7.4.33 或 PHP 8.0.30,安装页面会直接提示 “PHP version too old” 或空白加载。不要尝试手动替换 php/ 目录,phpEnv 的扩展路径、php.ini 中的 extension_dir 和 DLL 文件名强耦合,换错一个就报 PHP Startup: Unable to load dynamic library。
可行做法只有两个:
- 卸载旧版 phpEnv,去官网下载最新版(截至 2026 年 4 月,v5.2+ 才预装 PHP 8.2)
- 若暂无法升级,改用 XAMPP 8.2.x —— 它对 PrestaShop 兼容性验证更充分,且错误提示更明确
必须启用的 PHP 扩展:pdo_mysql 和 intl
phpEnv 启动面板里点「PHP 设置」→「php.ini」,搜索并确保以下两行未被注释(即前面没有分号 ;):
立即学习“PHP免费学习笔记(深入)”;
extension=php_pdo_mysql.dll extension=php_intl.dll
若找不到或报错 Unable to load intl extension,说明对应 DLL 文件缺失或版本不匹配。此时需:
- 核对 phpEnv 安装包名称是否含 “vc15” 或 “vc17” —— 必须与你系统 Visual C++ 运行库一致(Win10/11 一般需 vc17)
- 检查
php.ini中extension_dir指向路径是否存在,例如C:\phpEnv\php\php-8.2.12-Win32-vs17-x64\ext - 确认该目录下有
php_intl.dll和php_pdo_mysql.dll两个文件(大小均 >100KB)
Apache mod_rewrite 与 .htaccess 权限问题
phpEnv 默认 Apache 配置中,AllowOverride 是 None,导致 PrestaShop 的 SEO URL 和后台路由全部 404。需手动编辑 C:\phpEnv\Apache\conf\httpd.conf,找到包含 <directory></directory> 的段落,把其中的 AllowOverride None 改为 AllowOverride All,然后重启 Apache。
另外,Windows 下用常规解压工具(如 WinRAR、360 压缩)解压 PrestaShop ZIP 包时,.htaccess 文件常被静默丢弃 —— 它是隐藏文件,而这些工具默认跳过以点开头的文件。解决方法:
- 用命令行解压:
tar -xzf prestashop_8.1.7.zip -C C:\phpEnv\www\prestashop - 或从官网 ZIP 包中单独提取
.htaccess,复制到C:\phpEnv\www\prestashop\根目录 - 检查该文件权限:右键 → 属性 → 安全 → 确保 Users 组有“读取”权限
安装时数据库连接失败的典型表现和绕过方式
填完数据库名、root 用户、空密码后点击下一步,页面卡住或跳回原页,error.log 出现 PDOException: SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' —— 这不是密码错了,而是 phpEnv 8.2+ 默认启用了 MySQL 密码策略,root 不再允许空密码登录。
临时解决(仅开发环境):
- 打开 phpEnv 面板 → 「MySQL 设置」→ 「phpMyAdmin」→ 登录(用户 root,密码留空 → 点登录,若失败则点“忘记密码”,按提示重置为
root) - 登录 phpMyAdmin 后,点「用户账户」→ 找到
root@localhost→「编辑权限」→ 底部勾选「使用相同的密码」→ 输入root→ 执行 - 回到 PrestaShop 安装页,数据库密码填
root即可继续
真正上线前必须创建专用数据库用户,不能用 root;但本地调试阶段,这个操作最省时间。
最后提醒一句:PrestaShop 的 var/cache/ 和 img/ 目录必须可写,phpEnv 的 Apache 进程默认以当前 Windows 用户身份运行,所以只要文件夹属性里“安全”选项卡中,你的用户名有“修改”权限,就没问题。别迷信“给 Everyone 全权限”,反而容易触发 UAC 拦截。



















