在macos上用mamp跑起yii2.0.55,核心是将documentroot精确指向web子目录(如/applications/mamp/htdocs/yii2-test/web),确保入口文件以web为运行基准,避免class 'yii' not found或404错误;需配置composer、安装asset插件、手动发布assets并正确设置appasset的basepath与baseurl。

在macOS上用MAMP快速跑起Yii2.0.55,核心是绕过系统PHP环境冲突、让web目录被正确识别为DocumentRoot、并解决asset发布和权限问题——直接把项目丢进htdocs根目录会报Class 'Yii' not found或404,因为Yii2强制要求入口文件必须位于web子目录下且以该目录为运行基准。
安装Composer并配置全局插件
打开终端,执行以下命令安装Composer:
curl -sS https://getcomposer.org/installer | php && sudo mv composer.phar /usr/local/bin/composer
验证是否成功:输入composer -v,看到版本号即通过。接着安装asset插件(Yii2前端资源依赖必需):
composer global require "fxp/composer-asset-plugin:^1.2.0"
【注意:若提示Permission denied,请先执行sudo chown -R $(whoami) ~/.composer再重试】
创建Yii2.0.55基础项目
切换到MAMP默认的Web根目录:
cd /Applications/MAMP/htdocs
运行命令创建项目(使用--stability=dev确保获取2.0.55稳定版):
composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic yii2-test
这一步会自动下载并解压Yii2.0.55基础模板,生成yii2-test目录。若中途卡住或提示GitHub token,按提示去GitHub Settings → Personal access tokens → Generate new Token,勾选public_repo后粘贴输入即可。
配置MAMP虚拟主机指向web子目录
第一步:进入MAMP安装目录,打开/Applications/MAMP/htdocs/yii2-test/web,确认其中存在index.php文件;
第二步:在终端执行符号链接命令,让MAMP能直接访问web目录:
cd /Applications/MAMP/htdocs && ln -sf yii2-test/web yii2-test-web
第三步:启动MAMP,点击“Preferences”→“Web Server”,将“Document Root”改为/Applications/MAMP/htdocs/yii2-test-web;
第四步:重启MAMP服务器,此时浏览器访问http://localhost:8888应显示Yii2欢迎页。
修复静态资源加载失败(常见404)
方法一:手动触发AssetBundle发布
进入项目根目录:cd /Applications/MAMP/htdocs/yii2-test;
临时启用调试模式,在web/index.php顶部添加两行:
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
清空缓存与assets:rm -rf runtime/cache/* assets/*;
刷新http://localhost:8888,观察assets/目录是否生成新子目录(如assets_abc123)及内部CSS/JS文件。
方法二:检查AppAsset配置
打开@app/assets/AppAsset.php,确认这两行存在且未被注释:
public $basePath = '@webroot';
public $baseUrl = '@web';
【若MAMP端口不是8888,或你通过自定义域名访问(如yii2.test),则$baseUrl必须显式设为'/yii2-test'或对应路径,否则资源URL解析错误】
验证后台功能与数据库连接
① 修改config/db.php,填入本地MySQL账号(MAMP默认:host=localhost, port=8889, username=root, password=root);
② 在浏览器中访问http://localhost:8888/index.php?r=gii,输入默认账号密码(admin/admin)进入Gii代码生成器;
③ 创建一个测试模型,例如User,点击“Preview”→“Generate”,观察是否生成成功且无PHP fatal error;
④ 若Gii页面空白或报错,检查web/index.php中require __DIR__ . '/../vendor/autoload.php';路径是否可读——MAMP PHP扩展需启用openssl、mbstring、pdo_mysql。











