标签: google-app-engine-php

在Google Cloud App Engine中使用php扩展程序

我正在尝试按照此说明在Google Cloud App Engine中运行symfony4应用程序.

我的应用程序具有依赖性,它本身依赖于php-gd.由于作曲家失败,这个扩展似乎不可用the requested PHP extension gd is missing from your system..

我如何修改教程以使扩展可用?

这可以用php.ini文件解决,还是需要自定义环境?

或者,因为我不需要我的依赖项所需的部分php-gd,是否有办法composer运行--ignore-platform-reqs标志?

php google-app-engine php-extension composer-php google-app-engine-php

11
推荐指数
1
解决办法
763
查看次数

502 错误网关错误 - 从上游读取响应标头时上游发送了太大的标头

我在 Google App Engine 中使用 WordPress。当我创建 POST API 时,出现错误:“在从上游读取响应标头时,上游发送了太大的标头”。返回 502、错误网关、nginx

我在 POST API 中发送的数据(JSON)大约为 4kb。如果发送的数据低于 2kb,API 将返回成功。

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

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

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

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

location / {
    try_files $uri /index.php?q=$uri&$args;
}

location ~ ^/wp-admin {
    try_files $uri $uri/index.php?$args;
}
Run Code Online (Sandbox Code Playgroud)

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

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

location / {
    try_files $uri /index.php?q=$uri&$args;
    fastcgi_buffers 16 16k;
    fastcgi_buffer_size 32k;
    proxy_buffer_size 128k;
    proxy_buffers 4 256k;
    proxy_busy_buffers_size 256k;
}
Run Code Online (Sandbox Code Playgroud)

请帮助我解决这个问题。

google-app-engine google-app-engine-php app-engine-flexible nginx-config

8
推荐指数
2
解决办法
2万
查看次数

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

  APP_STORAGE: "/tmp"
  VIEW_COMPILED_PATH: "/tmp"
Run Code Online (Sandbox Code Playgroud)

...我bootstrap/app.php包含此行:

$app->useStoragePath(env('APP_STORAGE', base_path() . '/tmp'));
Run Code Online (Sandbox Code Playgroud)

...并且我composer.json拥有以下脚本来说明配置的更改:

        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump"
        ],
        "post-install-cmd": [
            "composer dump-autoload",
            "php artisan config:clear",
            "php artisan cache:clear",
            "php artisan view:clear",
            "php artisan cache:clear",
            "php artisan regenerate:schoolCSS"
        ]
Run Code Online (Sandbox Code Playgroud)

这些是我在app.yaml以下位置配置的驱动程序:

SESSION_DRIVER: database
BROADCAST_DRIVER: log
CACHE_DRIVER: database
QUEUE_DRIVER: sync
Run Code Online (Sandbox Code Playgroud)

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

现在,无论路径如何,我的应用程序都只是一张白页。这是公平的,因为由于缓存不可写,因此无法在其中渲染和存储视图。

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

在云控制台中,我已经检查了 …

php google-app-engine laravel google-app-engine-php

6
推荐指数
1
解决办法
327
查看次数

从GAE向GCP日志条目添加标签

目前我在Google App Engine Flex环境中使用Symfony 4.

我正在尝试为我的日志条目添加额外的'标签'以帮助调试,我一直在使用Stackdriver处理程序来记录事件,我尝试将新标签添加到Stackdriver处理程序,它在本地工作正常,但不我部署到GAE时工作.

我的主要目标是为所有日志条目添加标识符,以帮助按执行分组条目.

有人可以告诉我为什么我的Stackdriver处理程序中的标签没有传递给日志?

来自GAE实例的日志条目只有以下标签:

labels: {
  appengine.googleapis.com/trace_id:  "58a54e17ef1110b2720f0b103033187d"   
 }
Run Code Online (Sandbox Code Playgroud)

monolog.yaml

monolog:
    handlers:
        main:
            type: fingers_crossed
            action_level: error
            handler: nested
            excluded_404s:
                # regex: exclude all 404 errors from the logs
                - ^/
        nested:
            type: stream
            path: "%kernel.logs_dir%/%kernel.environment%.log"
            level: debug
        console:
            type:   console
            process_psr_3_messages: false
            channels: ["!event", "!doctrine"]
        stackdriver:
            type: service
            id:   stackdriver_handler
            level: debug
Run Code Online (Sandbox Code Playgroud)

StackdriverHandler.php

<?php

namespace App\Bundle\Monolog;

use Google\Cloud\Logging\LoggingClient;
use Monolog\Handler\PsrHandler;
use Monolog\Logger;
use Psr\Log\LoggerInterface;

class StackdriverHandler extends PsrHandler
{
    /**
     * @var LoggerInterface[]
     */ …
Run Code Online (Sandbox Code Playgroud)

php google-app-engine monolog google-app-engine-php symfony4

6
推荐指数
1
解决办法
167
查看次数

节点中的Google AppEngine createUploadUrl

在PHP中,创建一个带有端点的上传URL非常容易,该端点在文件上传后会被点击.文档在这里

$options = ['gs_bucket_name' => $my_bucket];
$upload_url = CloudStorageTools::createUploadUrl('/upload/handler', $options);
Run Code Online (Sandbox Code Playgroud)

我想知道在Node中是否有办法这样做,因为我似乎无法弄清楚如何.

甚至一些关于如何通过http请求来完成它的文档就足够了.

google-app-engine node.js google-app-engine-php google-appengine-node

5
推荐指数
0
解决办法
93
查看次数

为用户GAE自动化通配符子域

我有一个app引擎实例项目,让我们说: cloud.domain.com

我的目标是能够向用户提供我唯一的URL,然后他们可以使用CNAME记录映射到他们自己的域.基本上如何将连接到方空间帐户.

它真的可能是这样的:

userid.cloud.domain.com
userid.domain.com
Run Code Online (Sandbox Code Playgroud)

GAE甚至可以实现这一点吗?我研究了通配符映射,但对这个主题确实没有任何可靠的建议.

这甚至是可能的还是我应该到别处去完成这种任务?

php google-app-engine wildcard-subdomain google-app-engine-php

5
推荐指数
1
解决办法
181
查看次数

对于 App 引擎来说,使用中的 IP 地址达到配额太快

我有一个在 App Engine 中运行的网络服务器,客户端是一个移动应用程序。我看到,一旦我们扩展到大量用户,移动设备上的许多请求就会开始失败。但是,我在我们的日志中没有看到任何故障。我注意到在我们的配额中,我们的ip address in useforCompute Engine API最大为 8(即使我们没有在 Compute Engine 上运行任何服务)。我不确定这是否是根本原因,但以前不是这样,我想知道是否有任何关于如何解决此问题的建议,或者是否有更好的方法来构建我们的服务器以满足我们的用例。

编辑:我们当前的配置是 App 引擎上的 flex 环境,最少有 2 个实例。我们还有一个 MySQL 实例。到目前为止,我们使用的几乎所有东西。

runtime: php
env: flex

api_version: 1

handlers:
- url: /.*
  script: public/index.php

runtime_config:
  document_root: public

beta_settings:
    # for Cloud SQL, set this value to the Cloud SQL connection name,
    # e.g. "project:region:cloudsql-instance"
    cloud_sql_instances: "<project>:<region>:<sql-instance>"
Run Code Online (Sandbox Code Playgroud)

google-app-engine google-compute-engine google-cloud-platform google-app-engine-php

4
推荐指数
1
解决办法
684
查看次数

无法让Google App Engine PHP教程正常运行

我正在关注GAE PHP教程,但我无法让本地开发服务器正确响应.

我用它来运行它

dev_appserver.py --php_executable_path=/usr/bin/php --host=192.168.33.44 ./

它开始很好.当我查看http://192.168.33.44:8080/日志显示

INFO 2016-10-12 07:55:06,264 module.py:788] default: "GET / HTTP/1.1" 200 -

但我得到一个空白页面.教程中没有任何内容可以解释如果遇到问题该怎么做.

到目前为止,我已经:

  • 试过PHP 5.5和5.6(remi):没有区别
  • 将腐败的PHP放入helloworld.php:没有错误
  • 将处理程序更改为- url: /:/上的空白页,任何其他URL的404页
  • 搜索Google Docs:没有帮助
  • 淘到谷歌:没有帮助
  • 问橡皮鸭:没有帮助

我通过Vagrant和Google Cloud SDK 129.0.0运行Centos 7.2.

任何和所有的帮助非常感谢.

[编辑]

要求的附加数据

$ which php
/usr/bin/php


$ /usr/bin/php -v
PHP 5.5.38 (cli) (built: Sep 19 2016 13:45:10)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies


$ which python
/usr/bin/python


$ …
Run Code Online (Sandbox Code Playgroud)

google-app-engine google-app-engine-php

3
推荐指数
1
解决办法
517
查看次数

在ssh会话中访问Google引擎灵活的应用文件?

我设置了一个基于PHP的谷歌应用程序引擎灵活的环境项目,这将是更容易去为我(的进步速度方面),如果我能在访问正在运行的PHP文件/appSSH会议上,谷歌云端控制台因此可以在网络浏览器中正常提供权限。

不幸的是,我找不到与此相关的信息。我可以看到mount命令的输出,并且看起来已经安装了很多路径,但是没有一个线索/app可以找到我的位置:

sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=191984,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=154052k,mode=755)
/dev/sda1 on / type ext4 (rw,relatime,data=ordered)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=308100k)
rpc_pipefs on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
cgroup on /sys/fs/cgroup type tmpfs (rw,relatime,mode=755)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,relatime,cpuset)
cgroup on /sys/fs/cgroup/cpu type …
Run Code Online (Sandbox Code Playgroud)

php ssh google-app-engine google-app-engine-php app-engine-flexible

1
推荐指数
1
解决办法
460
查看次数

Laravel Google App Engine 未找到公共文件

我目前正在 Google App Engine 上部署 Laravel + Vue 应用程序,并且我已经能够在 Google App Engine 上设置该应用程序。但是,部署后,虽然可以访问路由,但公共文件夹中的图像文件、样式表和 Javascript 文件均不可读,并返回 404 错误。

这是我的 app.yaml 文件(由于模糊原因,变量数据已被删除)

runtime: php72

env_variables:
  ## Put production environment variables here.
  APP_KEY: <key>
  APP_STORAGE: /tmp
  VIEW_COMPILED_PATH: /tmp
  CACHE_DRIVER: database
  SESSION_DRIVER: cookie
  ## Set these environment variables according to your CloudSQL configuration.
  DB_DATABASE: db
  DB_USERNAME: root
  DB_PASSWORD: password
  ## for MYSQL, use DB_SOCKET:
  DB_SOCKET: "/cloudsql/YOUR_CONNECTION_NAME"
  ## for PostgreSQL, use DB_HOST:
  # DB_HOST: "/cloudsql/YOUR_CONNECTION_NAME"
Run Code Online (Sandbox Code Playgroud)

另外,我想知道如何运行命令npm run dev以便更新 JS 文件。

提前致谢。

google-app-engine laravel google-app-engine-php

1
推荐指数
1
解决办法
940
查看次数