You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

复制Laravel项目至新目录后报错:OAuth私钥不存在或不可读

解决Lumen复制项目后OAuth密钥不可用的问题

这个报错指向很明确——你的OAuth2私钥文件要么找不到,要么Web服务器没权限读取,大概率是复制项目时漏掉了生成的密钥文件,或者权限没配置对,下面给你一步步解决:

  • 先确认密钥文件是否存在
    先去/opt/lampp/htdocs/ghomes/backend/storage/目录下看看,有没有oauth-private.key和对应的oauth-public.key这两个文件。很多项目会把storage目录加入.gitignore规则,手动复制项目时很容易漏掉这类自动生成的文件。

  • 如果文件不存在,重新生成密钥
    要是确实没找到这两个文件,在项目根目录执行对应命令生成:

    • 如果你用的是适配了Passport的Lumen,确保Passport已安装后运行:
      php artisan passport:keys
      
    • 要是上面的命令不可用,或者想手动生成,用OpenSSL命令直接创建:
      openssl genrsa -out storage/oauth-private.key 2048
      openssl rsa -in storage/oauth-private.key -pubout -out storage/oauth-public.key
      
  • 修复文件权限问题
    要是文件已经存在但还是报错,那就是权限配置不对。Web服务器需要有读取这些文件的权限:

    # 给storage目录设置递归权限,确保目录可访问
    chmod -R 755 storage/
    # 私钥设为仅所有者可读(更安全的配置)
    chmod 600 storage/oauth-private.key
    # 公钥设为可读权限
    chmod 644 storage/oauth-public.key
    

    另外别忘了确认文件所有者和Web服务器运行用户一致,比如Apache的www-data、Nginx的nginx:

    chown -R www-data:www-data storage/
    
  • 最后验证配置路径
    检查项目配置文件,比如config/auth.php或者.env,确认OAuth密钥的路径配置和实际文件位置完全匹配,避免路径写错导致找不到文件。

内容的提问来源于stack exchange,提问作者Vijay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 09:13:20