Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 使用谷歌应用程序引擎(GAE)部署Laravel Passport时出现问题_Sql_Laravel_Google App Engine_Google Cloud Platform_Laravel Passport - Fatal编程技术网

Sql 使用谷歌应用程序引擎(GAE)部署Laravel Passport时出现问题

Sql 使用谷歌应用程序引擎(GAE)部署Laravel Passport时出现问题,sql,laravel,google-app-engine,google-cloud-platform,laravel-passport,Sql,Laravel,Google App Engine,Google Cloud Platform,Laravel Passport,我已成功部署并维护了一个谷歌应用程序引擎+Laravel项目,使用谷歌云SQL作为数据库。我使用云构建进行部署,但是在手动部署时,我的问题也会出现。我正在尝试让本地工作的Laravel Passport安装在Google应用程序引擎上工作 Laravel Passport需要运行php artisan Passport:install,以生成其加密密钥并将其存储到数据库中。 在GAE自动构建过程中,唯一可能出现这种情况的插槽是composer中的“post install cmd”:[],但是在

我已成功部署并维护了一个谷歌应用程序引擎+Laravel项目,使用谷歌云SQL作为数据库。我使用云构建进行部署,但是在手动部署时,我的问题也会出现。我正在尝试让本地工作的Laravel Passport安装在Google应用程序引擎上工作

Laravel Passport需要运行
php artisan Passport:install
,以生成其加密密钥并将其存储到数据库中。
在GAE自动构建过程中,唯一可能出现这种情况的插槽是composer中的
“post install cmd”:[]
,但是在该阶段,数据库连接尚未建立。=>运行
passport:install时出现SQL错误


然而 我还尝试将SSHing导入App Engine实例并手动运行
passport:install
,将存储目录更改为0600,将所需的passport加密密钥更改为www数据,但仍然出现以下错误:
逻辑异常
“关键路径”file:///app/storage/oauth-private.key“不存在或不可读


我现在没有选择,遗憾的是找不到Laravel Passport部署到GAE项目的参考资料。

我要寻找的是另一种可能出错的观点。我是否缺少特定于Google App Engine的权限?

提前谢谢

sudo chown www-data:www-data-storage/oauth-*.key
sudo chmod 600存储/oauth-*.key
sudo chown www-data:www-data-oauth-public.key
sudo chmod 600 oauth-public.key

我也遇到了同样的问题,这对我很有效。请用英文翻译,因为本网站的内容是中文的

将passport设置放入环境变量中

php artisan passport:install 
//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-----
创建配置文件。

php artisan vendor:publish --tag=passport-config
在环境变量中嵌入文件内容

php artisan passport:install 
//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-----
以下文件是在中创建的

存储/oauth-private.key

存储/oauth-private.key

将此密钥文件的内容放入配置文件中,如下所示

php artisan passport:install 
//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-----
//app.yaml
运行时间:php72
环境变量:
应用程序密钥:您的应用程序密钥
应用程序存储:/tmp
查看编译路径:/tmp
缓存驱动程序:数据库
会话驱动程序:数据库
##根据CloudSQL配置设置这些环境变量。
数据库:你的数据库
数据库用户名:您的数据库用户名
数据库密码:您的数据库密码
DB\U套接字:“/cloudsql/您的\u连接\u名称”
+PASSPORT\u私钥:|
+----开始RSA私钥-----
+     
+----结束RSA私钥-----
+护照\u公钥\u:|
+----开始公钥-----
+     
+----结束公钥-----

这可能提供了一个解决方案,但也请添加一些解释,说明为什么这样做有效。