我在自己电脑的ubuntu16上部署LNPM-laravel,相对比较顺利,但在阿里云上部署就遇到了若干问题,很多问题原因不详,记录如下:
1.阿里云的坑:
坑a.阿里云ubuntu 的apt 功能有bug,开箱不能用,解决方法:
rm -rf /var/lib/apt/lists/*
apt-get update
坑b.端口的开放权限在控制台的安全组设置,这一点在官方文档中言之不详,所以安装了nginx,网站无法访问
2.git 的坑
用git clone 拷贝了laravel项目后,修改项目权限为777,这时git认为文件已经发生变化,pull的时候就发生错误,而我在自己的ubuntu系统中没遇到这种情况。所以改变权限后要push
3.laravel的坑
坑a. laravel5.4,用artisan make:auth创建用户系统后,migrate会发生错误,这时laravel5.4固有的一个bug,不知如此明显的bug,为何没被修复。原因是迁移表中,string被定义为无限长,如果没有限制长度的字段设置索引就会发生错误,解决方法就是为email等有索引但没设置长度的字段设置长度。
b.迁移表中无法使用enum,解决方法是:
/vendor/doctrine/dbal/lib/Doctrine/DBAL/Platformsn/MySqlPlatform.php
文件下有个
protected function initializeDoctrineTypeMappings() 方法,
在其下的 $this->doctrineTypeMapping 数组中添加:
'enum' => 'string',
c.在阿里云上migrate, 添加外键出错,原因不详,我没有解决这个问题,只是暂时把外键取消