谷歌应用引擎"解析错误.未知的url处理程序类型


Google App Engine "Error parsing ./app.yaml: Unknown url handler type"

我正在遵循如何在谷歌应用程序引擎上安装PHPMyAdmin的教程,我完全按照指示,当我去推送应用程序时,我得到一个解析错误。这是教程链接:https://gae-php-tips.appspot.com/2013/05/26/setting-up-phpmyadmin-on-app-engine/

我搜索了stackoverflow,发现了一些同样错误的问题,几乎每个人都说他们是一个缩进问题,导致它,但我已经审查了我的文件几次,没有在app.yaml文件中发现任何缩进。

这是我的app.yaml文件

application: phpmyadmin2121
version: phpmyadmin
runtime: php
api_version: 1
handlers:
- url: /(.*'.(ico$|jpg$|png$|gif$))
static_files: phpMyAdmin/'1
upload: phpMyAdmin/(.*'.(ico$|jpg$|png$|gif$))
application_readable: true
- url: /(.*'.(htm$|html$|css$|js$))
static_files: phpMyAdmin/'1
upload: phpMyAdmin/(.*'.(htm$|html$|css$|js$))
application_readable: true
- url: /(.*'.(php$))
script: phpMyAdmin/'1
secure: always
login: admin
- url: /(.+)
script: phpMyAdmin/index.php
secure: always
login: admin
- url: /
script: phpMyAdmin/index.php
secure: always
login: admin
下面是显示错误的命令行提示符: phpMyAdmin: $ appfg .py -R -A phpmyadmin2121 -V phpMyAdmin update。用法:appcfg.py [options] update | [file,…]
appcfg.py: error: Error parsing ./app.yaml: Unknown url handler type.
<URLMap 
    secure=default 
    static_files=None 
    application_readable=None 
    auth_fail_action=redirect 
    require_matching_file=None 
    static_dir=None 
    redirect_http_response_code=None 
    http_headers=None 
    url=/(.*'.(ico$|jpg$|png$|gif$)) 
    script=None 
    upload=None 
    api_endpoint=None 
    expiration=None 
    position=None 
    login=optional 
    mime_type=None
    >
  in "./app.yaml", line 8, column 1

如果其他人遇到这个问题,我也有同样的问题。必须为所有子目录添加两个空间。请确保单词与"url"一致。

行不通:

- url: /
script: phpMyAdmin/index.php
secure: always
login: admin

行不通:

- url: /
 script: phpMyAdmin/index.php
 secure: always
 login: admin

:

- url: /
  script: phpMyAdmin/index.php
  secure: always
  login: admin

同样,改变这一行来更新应用程序:

appcfg.py -R -A my_application_id -V phpmyadmin update .

:

appcfg.py --oauth2 -R -A my_application_id -V phpmyadmin update .

由于一些奇怪的原因,第一个命令要求输入您的电子邮件和密码(我的个人电子邮件不起作用)。使用第二个带有——oauth2选项的命令就可以了。

在我的例子中,不是空白问题。

我最初有app.yaml文件:

runtime: nodejs12
handlers:
- url: /.*
  secure: always
... more handlers here ...

在部署

时产生错误
Unknown url handler type.
<URLMap 
    secure=always
    ...
    >

https://cloud.google.com/appengine/docs/standard/nodejs/config/appref#handlers_element的文档表明我在处理程序元素中缺少script: auto

为了使用静态处理程序,至少有一个处理程序必须包含行脚本:auto或定义一个entrypoint元素以成功部署。

所以我更新了app。yaml:
runtime: nodejs12
handlers:
- url: /.*
  secure: always
  script: auto
... more handlers here ...

尝试为任何子条目添加空格。PHP使用与python相同的解析器。在python中,空格用于表示块。

application: phpmyadmin2121
version: phpmyadmin
runtime: php
api_version: 1
handlers:
- url: /(.*'.(ico$|jpg$|png$|gif$))
  static_files: phpMyAdmin/'1
  upload: phpMyAdmin/(.*'.(ico$|jpg$|png$|gif$))
  application_readable: true
- url: /(.*'.(htm$|html$|css$|js$))
  static_files: phpMyAdmin/'1
  upload: phpMyAdmin/(.*'.(htm$|html$|css$|js$))
  application_readable: true
- url: /(.*'.(php$))
  script: phpMyAdmin/'1
  secure: always
  login: admin
- url: /(.+)
  script: phpMyAdmin/index.php
  secure: always
  login: admin
- url: /
  script: phpMyAdmin/index.php
  secure: always
  login: admin

我也有同样的问题。教程中的错误确实是在破折号下面的行中缺少两个空格,所以从

更改
handlers:
- url: /(.*'.(ico$|jpg$|png$|gif$))
static_files: phpMyAdmin/'1
upload: phpMyAdmin/(.*'.(ico$|jpg$|png$|gif$))

handlers:
- url: /(.*'.(ico$|jpg$|png$|gif$))
  static_files: phpMyAdmin/'1
  upload: phpMyAdmin/(.*'.(ico$|jpg$|png$|gif$))