google-app-engine - Laravel 项目在本地主机上运行完美,在 GAE 上响应错误 500
问题描述
我对使用实时项目还很陌生。
我的项目在本地主机上完美运行,我使用命令将完全相同的副本部署到谷歌应用引擎gcloud beta app deploy
。
我的欢迎页面完美运行:
以及我的身份验证页面:
在身份验证过程之后,我得到以下响应:
为了验证该帐户是否已通过身份验证,我的路由 URL 正在重定向到仪表板:example.com/admin/users
我的 app.yaml 文件如下:
runtime: php
env: flex
runtime_config:
document_root: public
# Ensure we skip ".env", which is only for local development
skip_files:
- .env
env_variables:
# Put production environment variables here.
APP_LOG: errorlog
APP_KEY: App-key
STORAGE_DIR: /tmp
CACHE_DRIVER: file
SESSION_DRIVER: file
## Set these environment variables according to your CloudSQL configuration.
DB_HOST: localhost
DB_DATABASE: lara
DB_USERNAME: root
DB_PASSWORD: password
DB_SOCKET: /cloudsql/connection-name
MAIL_MAILER: smtp
MAIL_HOST: smtp.mailtrap.io
MAIL_PORT: 2525
MAIL_USERNAME:username
MAIL_PASSWORD: password
MAIL_FROM_ADDRESS: from@example.com
MAIL_FROM_NAME: {App-Name}
#we need this for the flex environment
beta_settings:
# for Cloud SQL, set this value to the Cloud SQL connection name,
cloud_sql_instances: connection-name
解决方案
有趣的是,小事情如何产生最大的问题,我花了 3 多周的时间来解决这个问题。
在我进行研究时,我发现 Google App 引擎区分大小写,因此以下是我用来解决此问题的步骤:
第一次我检查了我的路线php artisan route:list
,我的路线是route: admin.users.index
,我的文件结构是--path: views/Admin/Users/index.blade.php
,所以我将所有文件夹更改为小写以匹配路线。
然后我运行了以下命令:
php artisan cache:clear
php artisan route:clear
php artisan view:clear
最后,我在 composer.json 文件的脚本下添加了以下脚本:
"post-install-cmd": [
"chmod -R 755 bootstrap\/cache",
"php artisan cache:clear"
]
部署使用gcloud app deploy
像魅力一样工作。
推荐阅读
- octobercms - 在octobercms中单击提交时,如何使用表中的其他用户输入字段数据保存多行数据?
- python - 如何使用烧瓶结合vue
- flutter - 有条件地显示预定通知
- javascript - 根据从承诺中解析的数据更改/控制复选框选中状态
- java - 为什么我的容器不能使用面向方面编程正确存储?
- java - Char 什么时候表现得像 Java 中的 Char 和整数?
- android - 查询sqlite数据库时没有这样的列错误
- python - 缺少日期值
- c - 我正在尝试构建一个并发计数器程序,当线程增加时性能时间会增加
- wcf - DispatchOperation.ParameterInspectors 在 netstandard2.0 中不可用