前言
作为一个 Laravel 开发者,在部署 Laravel 项目的时候总是会遇到这样那样奇怪的问题,每次遇到都要去 Google,实在是有点麻烦,就想自己整理一篇文章来记录这些常见的问题。
常见问题一:Specified key was too long
在开发 Laravel 的项目时,有时我们需要对数据库进行迁移,可是当我们在别的环境下跑 php artisan migrate
的时候经常会出现以下报错:
[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table users add unique users_email_unique (email))
[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
这时候我们把下面的代码添加到 AppServiceProvider.php
use Illuminate\Support\Facades\Schema;
public function boot()
{
Schema::defaultStringLength(191);
}
常见问题二: This cache store does not support tagging
有时候我们在项目跑的好好的,突然使用 php artisan migrate
就会出现这个错误。
准确的说,这不是一个bug,详情可以参考 这里,这是由于使用了 entrust 权限管理包导致,解决的话只需要修改 .env
文件,把 CACHE_DRIVER
改成 array
就可以啦。
常见问题三:The only supported ciphers are xxx and xxx with the correct key lengths
这时候先确认你的 .env
文件是否存在,如果没有则创建,如果 .env
文件已经存在,则跑 php artisan key:generate
命令即可