Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用两种环境的Google云平台php应用程序部署(标准和灵活)_Php_Google App Engine_Google Cloud Platform_Yaml_App Engine Flexible - Fatal编程技术网

使用两种环境的Google云平台php应用程序部署(标准和灵活)

使用两种环境的Google云平台php应用程序部署(标准和灵活),php,google-app-engine,google-cloud-platform,yaml,app-engine-flexible,Php,Google App Engine,Google Cloud Platform,Yaml,App Engine Flexible,通过分别为标准和灵活的环境配置app.yaml,我能够在谷歌云中部署php应用程序 标准环境的“app.yaml: runtime: php55 api_version: 1 threadsafe: true handlers: - url: /.* script: helloworld.php - url: /fileUpload.php script: fileUpload.php runtime: php55 env: flex # flexible e

通过分别为标准和灵活的环境配置app.yaml,我能够在谷歌云中部署php应用程序

标准环境的“app.yaml:

 runtime: php55
 api_version: 1
 threadsafe: true

 handlers:
  - url: /.*
  script: helloworld.php

  - url: /fileUpload.php
  script: fileUpload.php
 runtime: php55
 env: flex  # flexible env
 api_version: 1
 threadsafe: true

 handlers:
  - url: /.*
  script: helloworld.php

  - url: /fileUpload.php
  script: fileUpload.php
dispatch:
- url: "*/fileupload/*"
  service: flex-module
- url: "/.*"
  service: default
'app.yaml'用于灵活的环境:

 runtime: php55
 api_version: 1
 threadsafe: true

 handlers:
  - url: /.*
  script: helloworld.php

  - url: /fileUpload.php
  script: fileUpload.php
 runtime: php55
 env: flex  # flexible env
 api_version: 1
 threadsafe: true

 handlers:
  - url: /.*
  script: helloworld.php

  - url: /fileUpload.php
  script: fileUpload.php
dispatch:
- url: "*/fileupload/*"
  service: flex-module
- url: "/.*"
  service: default
现在我想在单个应用程序中同时使用这两种环境。

1.helloworld.php URL的标准环境
2.灵活的fileUpload.php URL环境

因此,请向我推荐此应用程序的结构
提前感谢

我尝试了以下结构,但不起作用。

|-dispatch.yaml
|-standard
|-app.yaml
|-helloworld.php
|-flexible
|-app.yaml
|-fileUpload.php
如何在单个应用程序中同时利用标准和灵活的环境

示例:
域名:example.com

  • 如果我们访问url“example.com/”或“example.com/helloworld.php”:那么它将使用标准环境。

  • 如果我们访问url“example.com/fileupload.php”:那么它将使用灵活的环境。


  • 是否有可能处理上述两种情况?

    是的,有可能:您将有一个GAE应用程序(即一个GCP项目),包含两个服务、一个标准和一个flex。你基本上是从这个方向开始的,但你错过了一些东西

    运行时不正确,您缺少(非默认)
    flex模块的服务命名
    app.yaml
    。发件人:

    运行时:php

    此设置是必需的。它是应用程序引擎语言的名称 此应用程序使用的运行时。要指定PHP,请使用PHP。其他 运行时可用;有关详细信息,请参阅每种语言的文档 更多信息

    服务:服务名称

    如果创建服务,则为必需。对于默认服务是可选的。每个 服务和每个版本必须有一个名称。名称可以包含数字, 字母和连字符。长度不能超过63个字符,并且 不能以连字符开头或结尾。为每个项目选择一个唯一的名称 服务和每个版本。不要在服务和服务之间重用名称 版本

    你也可以把它们放在这个文件中——它们现在被忽略了,只是以防万一以后的检查会变得更严格)。也许你可以偷看一下

    您也应该检查该部分,它似乎是强制性的,但我不是PHP用户,我不知道在这里建议什么:

    您必须在
    runtime\u config
    部分中配置
    document\u root
    , 比如上面的例子

    您需要小心处理
    dispatch.yaml
    内容。flex服务的模式与您为该服务选择的URL不匹配,它需要匹配。您还可以在末尾删除默认服务模式-任何与指定路由模式不匹配的内容都会转到默认服务

    dispatch:
      - url: "*/fileUpload.php"
        service: flex-module
    
    注意:我总是在
    dispatch.yaml
    中使用一个目录模式,即
    -url:“*/some_dir/*”
    -绝不仅仅是一个特定的文件,我不是100%肯定上面的方法会起作用,如果不起作用,可能需要一些调整

    在默认服务的
    app.yaml
    中,您可以删除上传的处理程序-这将由
    flex模块处理。只是化妆而已

    在部署时也要小心-您有3个可部署项:2个服务(通过部署相应的
    app.yaml
    文件进行部署)和必须专门部署的
    dispatch.yaml
    文件。3个
    .yaml
    文件的任意组合都可以包含在一个部署命令中(但这只是为了方便起见,实际上每个文件都是单独部署的):


    谷歌云上的环境是基于每个应用的。如果要在不同的环境中部署,它们必须是独立的应用程序,或者至少是不同微服务上的相同副本。没有针对两种不同环境的单一部署

    这适用于stantard环境,但概念相同
    每个模块或微型设备本身就是一个应用程序。因为除了数据库等共享资源外,它还管理自己的资源。

    感谢@Mangu的回复,它只是一个应用程序,而不是两个子应用程序。示例:域:Example.com 1。如果我们访问url“example.com/”或“example.com/helloworld.php”:那么它将使用标准环境。2.如果我们访问url“example.com/fileupload.php”:那么它将使用灵活的环境。有没有可能,处理上述两个条件?请看看这一个也很抱歉,但我不是一个PHP用户。