mamp启动后apache显示403 forbidden,根本原因是apache拒绝访问代码目录,需确保站点文件置于默认htdocs路径、目录权限正确(mac用chmod 755,windows设“读取与执行”),且浏览器访问路径与实际子目录结构一致。

直接说结论:MAMP 能快速跑起 PHP 站点,但默认配置对 WordPress 或 Laravel 这类现代 PHP 项目并不友好,尤其在 php.ini 扩展、document_root 路径和 MySQL 字符集上容易卡住——不是“装完就能用”,而是“装完要调三处”。
启动 MAMP 后 Apache 显示 403 Forbidden 怎么办
这是最常见开局问题,本质是 Apache 拒绝访问你放代码的目录。MAMP 默认只允许访问 /Applications/MAMP/htdocs(Mac)或 C:\MAMP\htdocs(Windows),且要求该目录下有可识别的入口文件(如 index.php 或 index.html)。
- 确认你的站点文件确实放在
htdocs目录下,不要嵌套多层(比如别放成htdocs/myproject/web/index.php,除非你改了虚拟主机配置) - 检查
htdocs目录权限:Mac 上执行chmod 755 /Applications/MAMP/htdocs;Windows 用户右键目录 → “属性” → “安全” → 确保Everyone或当前用户有“读取与执行”权限 - 如果用了子目录(如
htdocs/blog/),浏览器必须访问http://localhost:8888/blog/,不能漏掉路径名 - MAMP Pro 用户注意:免费版不支持自定义虚拟主机,别在设置里瞎配
Server Name,否则反而触发 403
PHP 无法加载 mysqli 或 pdo_mysql 扩展
MAMP 自带 PHP,但部分扩展默认是注释掉的。WordPress、Laravel 安装时提示“Your server is missing the mysqli extension”就是这个原因。
- 打开 MAMP 主界面 → “Preferences” → “PHP” → 点击右下角“Edit template”(不是“Open conf file”)
- 找到
;extension=mysqli和;extension=pdo_mysql这两行,删掉开头的分号; - 保存后必须重启 MAMP 的服务器(不是仅重启 Apache),否则修改不生效
- 验证方式:在
htdocs下建一个info.php,内容为<?php phpinfo(); ?>,访问http://localhost:8888/info.php,搜索mysqli看是否显示“enabled”
MySQL 中文乱码或 WordPress 安装卡在数据库连接
MAMP 默认 MySQL 字符集是 latin1,而 WordPress 要求 utf8mb4。不改会导致安装失败或后台中文变问号。
- 关闭 MAMP,打开
/Applications/MAMP/conf/my.cnf(Mac)或C:\MAMP\conf\my.cnf(Windows) - 在
[mysqld]区块下添加三行:character-set-server=utf8mb4collation-server=utf8mb4_unicode_ciskip-character-set-client-handshake - 重启 MAMP,登录 phpMyAdmin(
http://localhost:8888/phpmyadmin),点击右上角“新建”→ 创建数据库时手动选utf8mb4_unicode_ci排序规则 - WordPress 的
wp-config.php中确保有这行:define('DB_CHARSET', 'utf8mb4');
如何让 MAMP 正确运行 Laravel 或其他需要重写规则的项目
Laravel 的 public/ 是真实 Web 根目录,但 MAMP 默认把整个项目目录当根目录,导致 .htaccess 不生效、路由 404。
- 最简单做法:把 Laravel 的
public文件夹内容复制到htdocs/laravel/,再把项目其余文件(app/、vendor/等)放到htdocs/laravel同级目录外(比如/Users/you/laravel-app),然后修改index.php里的require __DIR__.'/../vendor/autoload.php';路径为相对上级路径 - 更规范的做法(仅限 MAMP Pro):添加虚拟主机,把
DocumentRoot指向your-project/public,并启用AllowOverride All - 免费版用户若坚持用
.htaccess,需确认 Apache 的mod_rewrite已启用(Preferences → Apache → Modules → 勾选rewrite_module)
真正麻烦的从来不是安装 MAMP,而是它默认把 PHP、Apache、MySQL 当作独立模块来管——你得自己串起它们之间的字符集、扩展、路径和权限。尤其是 my.cnf 和 php.ini 这两个文件,改错一处,后面所有 PHP 项目都会莫名报错,而且错误信息还藏得深。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











