[ laravel ] 踩坑指南

1. 服务器部署的时候

php artisan cache:clear
php artisan session:clear
php artisan views:clear
优化路由加载:php artisan route:clear
优化配置加载:php artisan config:clear
优化自动加载: composer install --optimize-autoloader

2. 解决: Please provide a valid cache path.

在 storage 里创建 framework
mkdir storage/framework/{cache, sessions, views}
大概就是这样:
[ laravel ] 踩坑指南

3. ERROR: file_put_content(…/storage/framework/sessions/xxxxxxxxx): failed to open stream: Permission denied {xxxxxx…}

解决方案:
特殊的 storage文件夹 需要把他以及其子文件的权限升到 777,
chmod 777 storage -R

4. 多环境 ENV 配置

背景: 假如在项目中有多个.env文件,例如,

  • .env
  • .env.local
  • env.production

解决方案: (以.env.local为示例)

  • 配置Apache 服务器 SetEnv APP_ENV local ;
  • Laravel 项目下 对应有 .env.local , 其中 APP_ENV = local;
  • laravel 会通过 env('APP_ENV')根据环境变量 APP_ENV来判断当前具体的环境,假如环境变量 APP_ENVlocal,那么 laravel 将会自动加载 .env.local 文件。

5. JWT 获取用户信息

  • 需要在ajax请求头中加入Authorization: Bearer <token>(注意Bearer 后的空格)
  • 需要在所调用接口中加入Request $request, 然后在auth('api')->user()获取用户信息