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

安装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

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失败

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

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

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

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

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

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

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

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

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

前台应用可以正常打开

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

打开关于页面,返回404

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

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

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

再次打开关于页面,正常

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

打开后台应用,正常

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

图13

 

永夜