问题标签 [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.
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
)。我尝试了各种作曲家安装后命令,但没有任何帮助。
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 秒内返回。
我能做些什么来改善这种延迟?
google-app-engine - 部署后 GAE 不运行作曲家
我在 php 上为 GAE 开发了一个简单的应用程序。在本地环境中一切正常,但在“gcloud app deploy”之后出现关于 autoload.php 的错误 - 没有这样的文件或目录。我只使用作曲家来自动加载我的类——而不是外部依赖。GAE标准,项目不计费
我在本地做什么:
并且应用程序运行良好。
但部署后:
第 8 行:
作曲家.json
所以现在我从 .gcloudignore 中删除了供应商 - 并且应用程序正在 GAE 上运行,但这件事让我很难过 :(
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 部分在路径中休息/。
google-app-engine - PHP 7.2 的预热请求?
AppEngine for PHP 7.2 的当前文档未提及预热请求。虽然我可以配置一些预热设置,但我无法指定特定的处理程序。
app.yaml 摘录:
错误:
错误:(gcloud.app.deploy)INVALID_ARGUMENT:对于运行时 php72,处理程序“/_ah/warmup”的脚本字段必须设置为“自动”。
我现在如何安全地接收预热请求?
php - 如何在 Google Cloud Platform 上使用 Firestore 正确部署 PHP 应用程序?
我正在基于https://github.com/googleapis/google-cloud-php-firestore在Google 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
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
文件夹是否存在,是这样的。
无论如何,非常感谢所有帮助。如果您需要更多代码片段,请询问。我很乐意为他们提供。
php - Hello World PHP 示例,用于存储和读取来自 Google Apps Engine 的免费 Google Cloud Storage 存储桶中的文件
我找不到用于将文件存储在Google Apps Engine 项目的免费存储桶中并检索其内容的PHP 教程。这篇文章的想法是在正确创建 GAE 项目的情况下逐步完成。
1) 如果您创建了一个 GAE 项目,它已被授予 5Gb 的免费 Google 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) 如果必须完成任何其他步骤,请随意添加
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:
所以这最终是我的问题:
当涉及到不同的服务时,我如何才能真正分离关注点?(即......没有默认服务为我的应用服务提供所有服务)
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 如下所示。
不确定我需要在哪里添加这些代理缓冲区。
我尝试在默认位置内添加代理缓冲区,如下所示,但它没有帮助。
请帮我解决这个问题。