没有不值得去解决的问题,也没有不值得去学习的技术!

在Windows 10、Nginx 1.10下安装yii2-starter-kit的实现及解决问题的流程

打开后台应用,正常

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

安装yii2-starter-kit,在命令行中运行:php console/yii app/setup
安装yii2-starter-kit,在命令行中运行:php console/yii app/setup

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字节

Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

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

在字段slug上建立索引idx_article_slug失败
在字段slug上建立索引idx_article_slug失败

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

找到{{%article_category}}、{{%article}}两张表的slug字段,将其长度修改为255
找到{{%article_category}}、{{%article}}两张表的slug字段,将其长度修改为255

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

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

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

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

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

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

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

前台应用可以正常打开
前台应用可以正常打开

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

打开关于页面,返回404
打开关于页面,返回404

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

分析原因,在于启用了伪静态,而Nginx未支持,编辑nginx.conf
分析原因,在于启用了伪静态,而Nginx未支持,编辑nginx.conf

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

再次打开关于页面,正常
再次打开关于页面,正常

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

打开后台应用,正常
打开后台应用,正常

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

可以管理员身份运行,启动控制台,可以解决不支持symlink()的问题
图13

 

PHP / Laravel / Yii2 老项目维护与长期技术支持

如果你的 PHP / Laravel / Yii2 项目已经上线,但遇到原开发离职、Bug 长期无人修复、接口不稳定、性能下降、代码难以接手等问题,可以联系我做一次远程技术排查。

适合以下情况:
✅ 老旧 PHP 系统无人维护
✅ Laravel / Yii2 项目 Bug 修复
✅ 后台管理系统小功能迭代
✅ RESTful API 接口排查
✅ MySQL / Redis / Nginx 性能问题
✅ 长期远程兼职维护

可先从一次小问题开始:
✅ 线上报错排查
✅ 接口异常分析
✅ 慢查询与性能瓶颈定位
✅ 代码结构初步评估
✅ 部署环境与日志检查

如需咨询,请联系我,并注明:PHP 维护咨询

联系方式:
Telegram:@shuijingwan
微信:13980074657
邮箱:shuijingwanwq@gmail.com

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理