phpenv安装drupal需三步调优:启用mod_rewrite并设allowoverride all;开启mbstring等php扩展、调高memory_limit与max_execution_time;正确配置settings.php的trusted_host_patterns及数据库host为127.0.0.1。

phpEnv 是 Windows 下轻量级 PHP 开发环境(类似 WAMP/XAMPP),但默认配置与 Drupal 要求存在几处关键冲突——不改就卡在 settings.php 权限、rewrite 失效或数据库连接失败这三步里。
Apache 的 .htaccess 重写必须手动启用
phpEnv 默认禁用 mod_rewrite,而 Drupal 8+ 安装器和后台路由严重依赖它。访问 /admin 直接 404 或跳转回首页,基本就是这个原因。
- 打开 phpEnv 安装目录下的
Apache/conf/httpd.conf - 取消注释这一行:
LoadModule rewrite_module modules/mod_rewrite.so - 找到
<directory></directory>块(路径按你实际 www 目录调整),把AllowOverride None改成AllowOverride All - 重启 Apache(用 phpEnv 托盘图标操作即可)
PHP 扩展和内存限制要提前检查
Drupal 9/10 在 phpEnv 的默认 PHP 8.1 环境下会报 mbstring 缺失、fileinfo 未启用,或者安装中途因内存不足中断——错误信息通常是 Fatal error: Allowed memory size exhausted。
- 确认
php.ini(通常在phpEnv/PHP/php81/php.ini)中以下扩展已取消注释:extension=mbstring、extension=fileinfo、extension=gd、extension=xml - 修改两项关键值:
memory_limit = 512M(不能只写 128M)、max_execution_time = 300 - 改完后务必重启 phpEnv 的 PHP 服务(托盘右键 → “Restart PHP”),仅重启 Apache 不生效
sites/default/settings.php 的权限和内容要双校验
Windows 下的 phpEnv 不走 Unix 权限模型,但 Drupal 安装器仍会检查 settings.php 是否可写。如果复制了 default.settings.php 却没改内容,安装页面会提示“无法写入配置文件”,甚至跳过数据库配置直接报错。
- 确保
sites/default/settings.php文件存在且是普通文件(不是只读属性);右键 → 属性 → 取消勾选“只读” - 打开该文件,在末尾添加两行(非注释掉):
$settings['error_level'] = ERROR_REPORTING_DISPLAY_ALL;和$settings['trusted_host_patterns'] = ['^localhost$']; - 若用 MySQL,确认
$databases['default']['default']数组里'host'是'127.0.0.1'(不要写'localhost',phpEnv 的 MySQL 绑定有时不响应 localhost 解析)
Composer 创建项目时别直接放进 www 根目录
很多人用 composer create-project drupal/recommended-project www/drupal,结果访问 http://localhost/drupal 报 403 或白屏——因为 Drupal 推荐结构的 Web 入口是 web/ 子目录,不是项目根目录。
- 正确做法:在
www/外层新建目录,比如D:/phpEnv/projects/mydrupal,运行composer create-project drupal/recommended-project mydrupal - 然后在 Apache 配置里新增一个虚拟主机,
DocumentRoot指向D:/phpEnv/projects/mydrupal/web,而非整个项目目录 - 或者更简单:把
mydrupal/web目录下的全部内容(含index.php)复制到www/drupal/,再把mydrupal/sites整个文件夹也复制过去覆盖
最易被忽略的是 trusted_host_patterns 配置和 127.0.0.1 替代 localhost 这两点——它们不会导致安装失败,但会让管理员登录后所有后台链接 403,且错误日志里几乎不报明文线索。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











