使用 Google App Engine (GAE) 部署 Laravel Passport 时遇到问题
Trouble deploying Laravel Passport with Google App Engine (GAE)
我已经使用 Google 云 SQL 作为数据库。我正在使用 Cloud Build 进行部署,但是在手动部署时我的问题还是一样。我正在尝试让本地工作的 Laravel Passport 安装在 Google App Engine 上工作。
Laravel Passport 需要 运行 php artisan passport:install
才能生成它的加密密钥并将它们存储到数据库中。
在 GAE 自动构建过程中唯一可能的插槽是 composer 中的 "post-install-cmd":[]
,但是在那个阶段数据库连接尚未建立。 => SQL 运行ning passport:install
时出错
不过
我还尝试通过 SSH 连接到 App Engine 实例并手动 运行ning passport:install
,将存储目录更改为 0600,更改所需的 密码加密keys 到 www-data 但我仍然收到以下错误:
LogicException
Key path "file:///app/storage/oauth-private.key" does not exist or is not readable
我现在缺乏选择,遗憾的是找不到 Laravel Passport 已部署到 GAE 项目的参考。
我正在寻找的 是对可能出现问题的另一种观点。我是否遗漏了特定于 Google App Engine 的权限?
提前致谢!
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
我遇到了同样的问题,这个 solution 对我有用。由于本网站内容为中文,请翻译成英文。
将通行证设置放入环境变量
正在创建配置文件。
php artisan vendor:publish --tag=passport-config
在环境变量中嵌入文件内容
php artisan passport:install
以下文件创建于
storage/oauth-private.key
storage/oauth-private.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-----
我已经使用 Google 云 SQL 作为数据库。我正在使用 Cloud Build 进行部署,但是在手动部署时我的问题还是一样。我正在尝试让本地工作的 Laravel Passport 安装在 Google App Engine 上工作。
Laravel Passport 需要 运行 php artisan passport:install
才能生成它的加密密钥并将它们存储到数据库中。
在 GAE 自动构建过程中唯一可能的插槽是 composer 中的 "post-install-cmd":[]
,但是在那个阶段数据库连接尚未建立。 => SQL 运行ning passport:install
不过
我还尝试通过 SSH 连接到 App Engine 实例并手动 运行ning passport:install
,将存储目录更改为 0600,更改所需的 密码加密keys 到 www-data 但我仍然收到以下错误:
LogicException
Key path "file:///app/storage/oauth-private.key" does not exist or is not readable
我现在缺乏选择,遗憾的是找不到 Laravel Passport 已部署到 GAE 项目的参考。
我正在寻找的 是对可能出现问题的另一种观点。我是否遗漏了特定于 Google App Engine 的权限?
提前致谢!
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
我遇到了同样的问题,这个 solution 对我有用。由于本网站内容为中文,请翻译成英文。
将通行证设置放入环境变量
正在创建配置文件。
php artisan vendor:publish --tag=passport-config
在环境变量中嵌入文件内容
php artisan passport:install
以下文件创建于
storage/oauth-private.key
storage/oauth-private.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-----