如何更新Laravel的composer.json?缓存目录权限报错求助
解决Composer缓存权限问题与Laravel 5.8配置tymon/jwt-auth
咱们先处理你遇到的Composer缓存权限报错——这是阻止你执行composer update的直接原因,然后再确认jwt-auth的依赖配置是否正确。
一、修复Composer缓存目录权限问题
报错提示“无法创建缓存目录或目录不可写”,说明当前用户mpete没有权限读写/home/mpete/.composer/cache目录。可以按以下步骤解决:
检查目录所有者
先确认.composer目录的归属:ls -ld /home/mpete/.composer如果输出里的所有者不是
mpete,就需要修改归属。修改目录所有者(推荐方案)
执行命令让当前用户完全拥有这个目录:sudo chown -R mpete:mpete /home/mpete/.composer这个命令会递归修改
.composer及其子目录的所有者为mpete,从根源解决权限问题。临时跳过缓存(应急方案)
如果暂时不想修改权限,可以临时禁用缓存执行更新:composer update --no-cache不过这只是权宜之计,还是推荐修复目录权限,避免后续再出现类似问题。
二、确认tymon/jwt-auth的依赖配置
你已经在composer.json的require部分添加了正确的版本:
"require": { "php": "^7.1.3", "fideloper/proxy": "^4.0", "laravel/framework": "5.8.*", "laravel/tinker": "^1.0", "tymon/jwt-auth": "~1.0.0-rc.2" }
~1.0.0-rc.2这个版本完全适配Laravel 5.8,配置没问题。解决权限问题后,你可以:
- 执行全量更新:
composer update - 或者只更新jwt-auth(更快):
composer update tymon/jwt-auth
三、Laravel 5.8下jwt-auth的后续配置(可选但必要)
安装完成后,还需要几步配置才能正常使用jwt-auth:
- 在
config/app.php中添加服务提供者:'providers' => [ // ...其他服务提供者 Tymon\JWTAuth\Providers\LaravelServiceProvider::class, ] - 添加别名(方便调用,可选):
'aliases' => [ // ...其他别名 'JWTAuth' => Tymon\JWTAuth\Facades\JWTAuth::class, 'JWTFactory' => Tymon\JWTAuth\Facades\JWTFactory::class, ] - 发布配置文件:
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider" - 生成JWT密钥:
这个命令会自动在php artisan jwt:secret.env文件中添加JWT_SECRET配置项。
内容的提问来源于stack exchange,提问作者Mpete Bataung
相关产品推荐
相关产品推荐

