1、在Windows 10、Nginx 1.10下安装yii2-starter-kit,在命令行中运行:php console/yii app/setup,如图1

2、报错:create unique index idx_article_slug on {{%article}} (slug) …Exception: SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes,如图2
翻译:在{{%article}}(slug)上创建唯一索引idx_article_slug …例外:SQLSTATE [42000]:语法错误或访问冲突:1071指定的键太长; 最大密钥长度为767字节

3、在字段slug上建立索引idx_article_slug失败,如图3
SQL:ALTER TABLE `article` ADD UNIQUE INDEX `idx_article_slug` (`slug`)
#1071 – Specified key was too long; max key length is 767 bytes

4、找到{{%article_category}}、{{%article}}两张表的slug字段,将其长度修改为255,因为两张表皆有建立索引的操作,如图4

5、清除数据库,在命令行中再次运行:php console/yii app/setup,提示已成功迁移,如图5

6、打开前台应用,报错:symlink(): Cannot create symlink, error code(1314),如图6

7、由于开发环境不支持symlink(),决定设置’linkAssets’ => true,编辑文件:.dev,如图7
LINK_ASSETS=false

8、前台应用可以正常打开,如图8

9、打开关于页面,返回404,如图9

10、分析原因,在于启用了伪静态,而Nginx未支持,编辑nginx.conf,如图10
try_files $uri $uri/ /index.php?$args;

11、再次打开关于页面,正常,如图11

12、打开后台应用,正常,如图12

13、针对第7点的另外一种解决方案,可以管理员身份运行,启动控制台,可以解决不支持symlink()的问题,如

PHP / Laravel / Yii2 老项目维护与长期技术支持
如果你的 PHP / Laravel / Yii2 项目已经上线,但遇到原开发离职、Bug 长期无人修复、接口不稳定、性能下降、代码难以接手等问题,可以联系我做一次远程技术排查。
适合以下情况:
✅ 老旧 PHP 系统无人维护
✅ Laravel / Yii2 项目 Bug 修复
✅ 后台管理系统小功能迭代
✅ RESTful API 接口排查
✅ MySQL / Redis / Nginx 性能问题
✅ 长期远程兼职维护
可先从一次小问题开始:
✅ 线上报错排查
✅ 接口异常分析
✅ 慢查询与性能瓶颈定位
✅ 代码结构初步评估
✅ 部署环境与日志检查
如需咨询,请联系我,并注明:PHP 维护咨询。
联系方式:
Telegram:@shuijingwan
微信:13980074657
邮箱:shuijingwanwq@gmail.com

发表回复