问题标签 [google-app-engine-php]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3122 浏览

php - 找不到类“Way\Generators\GeneratorsServiceProvider”

我正在尝试让 Laravel 在 Google App Engine Standard 上运行。我已经让它灵活地工作了,但是需求发生了变化,我们现在需要标准。我在 Laravel 5.7 中使用 PHP 7.2 环境。部署工作,但是当我试图访问一个页面时,我在日志中得到一个错误:

至少在本地对我来说第 662 行return new $provider($this);似乎并没有明确引用生成器包。

该生成器包似乎是,way/generators但是当我在composer require way/generators本地执行时,它会发出一百万个不同的警告,然后是

从我读过的内容来看,Laravel > 5 不需要生成器包,因为它已经包含了它,但由于某种原因在 GAE 上它试图引用它(在本地它运行良好artisan serve)。我尝试了各种作曲家安装后命令,但没有任何帮助。

0 投票
2 回答
513 浏览

php - PHP AppEngine的Google Datastore非常慢

我正在使用官方google-cloud-php库从我的 PHP App Engine 实例访问 Google Cloud Datastore。

我一直看到每个查询的延迟时间超过 0.35 秒。即使对于数据存储中少于 100 个实体的简单查询也是如此。

我的 Web 应用程序需要对每个请求进行 4 次左右的连续数据存储查询,这使得数据存储完全无法使用(每次页面加载延迟始终为 1.5 到 3 秒)

我错过了什么吗?


以下是我连接到数据存储的方式:


这是我的查询的两个示例:

这种延迟水平是可以预期的吗?我可以缓存一些结果,但不是全部,所以我希望这是我的问题。

这是我已经尝试改善延迟的方法:

  • 添加了“authCache”处理程序以缓存数据存储 API 令牌(无影响)

  • 确认数据存储和应用引擎实例在同一区域

  • 确认 index.yaml 设置正确

  • 确认延迟是由于数据存储调用而不是业务逻辑造成的

  • 其他数据库后端工作正常(Cloud SQL 服务器在 < 0.1 秒内返回)。本地数据存储模拟器也会在 <0.01 秒内返回。

我能做些什么来改善这种延迟?

0 投票
1 回答
867 浏览

google-app-engine - 部署后 GAE 不运行作曲家

我在 php 上为 GAE 开发了一个简单的应用程序。在本地环境中一切正常,但在“gcloud app deploy”之后出现关于 autoload.php 的错误 - 没有这样的文件或目录。我只使用作曲家来自动加载我的类——而不是外部依赖。GAE标准,项目不计费

我在本地做什么:

并且应用程序运行良好。

但部署后:

第 8 行:

作曲家.json

所以现在我从 .gcloudignore 中删除了供应商 - 并且应用程序正在 GAE 上运行,但这件事让我很难过 :(

0 投票
1 回答
603 浏览

php - Google App Engine, 2 Services, dispatch.yaml: nginx-app.conf 似乎不再考虑

我正在尝试将 GoogleAppEngine PHP/Flex 上的现有应用程序移动到 GoogleAppEngine PHP/Standard,以从标准引擎的功能中受益。

我的项目设置如下:

  • server/public_html/rest/index.php : Slim 框架,front_controller_file
  • server/src : php 应用程序代码
  • server/public_html/index.html : angularjs 应用程序(+此目录中的其他文件。

在 GAE PHP Flex 上,我的 app.yaml 如下:

这样 Slim 框架就可以工作了

nginx-app.conf 在 /server/nginx-app.yaml

现在,在 GAE PHP Standard 上,我的 app.yaml 对于后端是这样的:

我的 dispatch.yaml 如下:

和 nginx-app.conf 还是一样的。

当我到达应用程序的 url (example.com) 时,angularjs 应用程序正确加载,我可以看到登录屏幕。

如果我去 example.com/rest/index.php

我收到身份验证失败,这是预期的行为。

但是,如果我去

example.com/rest/authenticate

我得到一个 404,我仍然应该得到一个应用程序错误而不是 404。使用 nginx 重写规则,它应该将 URL 转换为:

example.com/rest/index.php?authenticate

另外,在我的代码中,我检查了路径,以排除某些公共页面(和身份验证)的身份验证检查路径

当我点击登录按钮时,在我的 flex 部署中,$path 是“authenticate”,这里是“/rest/authenticate”。

关于如何调试的任何想法?

我觉得我可能只使用一项服务(默认),但是 example.com/ 指向 public_html/rest/index.php 这对我不利,因为我希望 / 成为 angularjs 应用程序和 REST 部分在路径中休息/。

0 投票
0 回答
102 浏览

google-app-engine - PHP 7.2 的预热请求?

AppEngine for PHP 7.2 的当前文档未提及预热请求。虽然我可以配置一些预热设置,但我无法指定特定的处理程序。

app.yaml 摘录:

错误:

错误:(gcloud.app.deploy)INVALID_ARGUMENT:对于运行时 php72,处理程序“/_ah/warmup”的脚本字段必须设置为“自动”。

我现在如何安全地接收预热请求?

0 投票
1 回答
562 浏览

php - 如何在 Google Cloud Platform 上使用 Firestore 正确部署 PHP 应用程序?

我正在基于https://github.com/googleapis/google-cloud-php-firestoreGoogle Cloud Platform上使用Cloud Firestore设置PHP 应用程序

部署到App Engine后,我看到“ new FirestoreClient(); ”不起作用,但相同的代码在localhost上正常运行。我怎样才能解决这个问题?

编码:

索引.php

应用程序.yaml

谷歌云平台日志

作曲家.json

使用本地主机输出

你好 Firestore

array(4) { ["headline"]=> string(1) "b" ["amount_of_threads"]=> int(1) ["description"]=> string(22) "Flood and nothing else" ["content_type "]=> 字符串(7) "默认" }

再见火库

使用 Google Cloud Platform 输出

你好 Firestore

数据库视图

0 投票
4 回答
3243 浏览

php - App Engine Standard 上的 Laravel:/srv/bootstrap/cache 目录必须存在且可写

我已经在 Google App Engine 标准环境中苦苦挣扎了一天。

错误如下:

PHP 注意:例外:/srv/bootstrap/cache 目录必须存在且可写。在 /srv/vendor/laravel/framework/src/Illuminate/Foundation/PackageManifest.php:168

我知道该/tmp文件夹是 App Engine 标准环境的唯一可写文件夹。因此,我app.yaml有以下附加env_variables

...我的bootstrap/app.php包含这一行:

...我composer.json有这些脚本来解释配置的变化:

这些是我配置的驱动程序app.yaml

出于某种原因,我似乎无法找到一种方法使该/tmp文件夹成为放置缓存视图和配置的文件夹。实际上,我怀疑这些...:clear命令根本没有正确运行。

我的应用程序现在只是一个空白页,无论路径如何。这是公平的,因为由于不可写缓存,视图不能被渲染和存储在那里。

以上配置应与在 Google App Engine Standard 上安装 Laraval 的教程相匹配,例如:https ://cloud.google.com/community/tutorials/run-laravel-on-appengine-standard 。

在云控制台中,我检查了该/tmp文件夹是否存在,是这样的。

无论如何,非常感谢所有帮助。如果您需要更多代码片段,请询问。我很乐意为他们提供。

0 投票
1 回答
1690 浏览

php - Hello World PHP 示例,用于存储和读取来自 Google Apps Engine 的免费 G​​oogle Cloud Storage 存储桶中的文件

我找不到用于文件存储在Google Apps Engine 项目的免费存储桶中并检索其内容的PHP 教程。这篇文章的想法是在正确创建 GAE 项目的情况下逐步完成。

1) 如果您创建了一个 GAE 项目,它已被授予 5Gb 的免费 G​​oogle Cloud Storage 存储桶。它的名字是“ YOUR_PROJECT_ID .appspot.com”

https://console.cloud.google.com/storage/browser

2)必须创建并分配服务帐户才能使用 SDK。

这里的步骤

3) 这是用于存储具有“Hello World”内容的文件的基本 PHP 代码。此代码可以从终端窗口执行。

php GCStorage_save_example.php

4) 这是从存储桶中检索文件内容的基本 PHP 代码。

php GCStorage_retrieve_example.php

a) 如果必须授予权限,请随意添加步骤 b) 如果必须完成任何其他步骤,请随意添加

0 投票
2 回答
61 浏览

php - 提供默认文件的 Google App Engine 服务

我的 App Engine 应用程序中有两个不同的服务,称为 auth 和 app。auth 服务工作得很好,图像、css、js 和 php 都得到了正确的服务和执行。当我第一次启动 App Engine 应用程序时,auth 服务也是我的默认服务。

我的问题是应用程序服务。起初我得到的只是一堆太多的重定向错误,但后来我能够修复它,但现在没有任何 CSS JS,或者应用程序服务无法正确提供图像。唯一提供的 CSS 实际上来自 auth 服务,并且没有提供 JS,并且提供了一个来自 auth 服务的背景图像。同样,这是两个完全不同的东西,甚至生活在他们自己的自定义子域中。

此外,我的身份验证服务中的路由器被用作我的应用服务的路由器。

我认为所有这些问题都与我的默认服务(我什至不应该再使用它)干扰我的应用程序服务有关(而且它不会影响我的身份验证服务,因为它们是我认为的同一个它涉及谷歌云)。这是我的 app.yaml。除了服务名称和路由器名称外,这两个服务都是相同的:

这是我的 dispatch.yaml:

所以这最终是我的问题:
当涉及到不同的服务时,我如何才能真正分离关注点?(即......没有默认服务为我的应用服务提供所有服务)

0 投票
1 回答
9942 浏览

google-app-engine - 502 Bad Gateway error - 上游从上游读取响应标头时发送的标头太大

我在 Google App Engine 中使用 wordpress。当我创建一个 POST API 时,得到一个错误:“从上游读取响应标头时,上游发送了太大的标头”。返回 502, Bad Gateway, nginx

我在 POST API 中发送的数据(JSON)大约为 4kb。如果数据发送到 2kb 以下 API 返回成功。

我尝试了 App Engine 标准和灵活环境,但面临同样的问题。

根据此链接: 上游在从上游读取响应标头时发送了太大的标头

使用缓冲区修改 nginx-app.config 文件将解决此问题。但它不起作用。

在 App Engine 中,默认的 nginx-app.config 如下所示。

不确定我需要在哪里添加这些代理缓冲区。

我尝试在默认位置内添加代理缓冲区,如下所示,但它没有帮助。

请帮我解决这个问题。