【问题标题】:Trouble deploying Laravel Passport with Google App Engine (GAE)使用 Google App Engine (GAE) 部署 Laravel Passport 时遇到问题
【发布时间】:2019-04-03 00:12:02
【问题描述】:

我已经使用 Google Cloud SQL 作为数据库成功部署和维护了一个 Google App Engine + Laravel 项目。我正在使用 Cloud Build 进行部署,但是在手动部署时,我的问题也是一样的。我正在尝试让本地运行的 Laravel Passport 安装在 Google App Engine 上运行。

Laravel Passport 需要运行 php artisan passport:install 才能生成它的加密密钥并将它们存储到数据库中。
在 GAE 自动构建过程中唯一可能的位置是 composer 中的"post-install-cmd":[],但是在那个阶段数据库连接尚未建立。 => 运行时出现 SQL 错误 passport:install


不过

我还尝试通过 SSH 连接到 App Engine 实例并手动运行 passport:install,将存储目录更改为 0600,将所需的 passport 加密密钥 更改为 www-数据,但我仍然收到以下错误:
LogicException Key path "file:///app/storage/oauth-private.key" does not exist or is not readable

我现在缺乏选择,遗憾的是找不到 Laravel Passport 已部署到 GAE 项目的参考。

我正在寻找的是另一种可能的观点会出错。我是否遗漏了具有特定于 Google App Engine 的权限的内容?

提前致谢!

【问题讨论】:

    标签: sql laravel google-app-engine google-cloud-platform laravel-passport


    【解决方案1】:

    我遇到了同样的问题,这个solution 为我工作。由于本站内容为中文,请翻译成英文。

    将护照设置放入环境变量

    创建配置文件。

    php artisan vendor:publish --tag=passport-config
    

    在环境变量中嵌入文件内容

    php artisan passport:install 
    

    以下文件创建于

    存储/oauth-private.key

    存储/oauth-private.key

    把这个key文件的内容放到配置文件中如下

    //app.yaml
    runtime: php72
    
    env_variables:
      APP_KEY: YOUR_APP_KEY
      APP_STORAGE: /tmp
      VIEW_COMPILED_PATH: /tmp
      CACHE_DRIVER: database
      SESSION_DRIVER: database
      ## Set these environment variables according to your CloudSQL configuration.
      DB_DATABASE: YOUR_DB_DATABASE
      DB_USERNAME: YOUR_DB_USERNAME
      DB_PASSWORD: YOUR_DB_PASSWORD
      DB_SOCKET: "/cloudsql/YOUR_CONNECTION_NAME"
    +   PASSPORT_PRIVATE_KEY: |
    +     -----BEGIN RSA PRIVATE KEY-----
    +     <private key here>
    +     -----END RSA PRIVATE KEY-----
    +   PASSPORT_PUBLIC_KEY: |
    +     -----BEGIN PUBLIC KEY-----
    +     <public key here>
    +     -----END PUBLIC KEY-----
    

    【讨论】:

      【解决方案2】:
      sudo chown www-data:www-data storage/oauth-*.key
      sudo chmod 600 storage/oauth-*.key
      sudo chown www-data:www-data oauth-public.key
      sudo chmod 600 oauth-public.key
      
      

      【讨论】:

      • 这可能会提供一个解决方案,但也请添加一些解释说明为什么会这样。
      猜你喜欢
      • 2020-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-18
      • 2016-11-06
      • 2019-01-30
      相关资源
      最近更新 更多