Sql 使用谷歌应用程序引擎(GAE)部署Laravel Passport时出现问题
我已成功部署并维护了一个谷歌应用程序引擎+Laravel项目,使用谷歌云SQL作为数据库。我使用云构建进行部署,但是在手动部署时,我的问题也会出现。我正在尝试让本地工作的Laravel Passport安装在Google应用程序引擎上工作 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”:[],但是在
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:|
+----开始公钥-----
+
+----结束公钥-----
这可能提供了一个解决方案,但也请添加一些解释,说明为什么这样做有效。