Google App Engine"解析./app.yaml时出错:未知的网址处理程序类型"

Mic*_*lia 6 php python mysql google-app-engine phpmyadmin

我正在关注如何在Google App Engine上安装PHPMyAdmin的教程,我完全按照指示操​​作,当我去推送应用程序时,我收到了解析错误.这是教程链接:https: //gae-php-tips.appspot.com/2013/05/26/setting-up-phpmyadmin-on-app-engine/

我搜索了Stackoverfllow并发现了一些同样错误的问题,几乎每个人都说他们是一个导致它的缩进问题,但我已经多次查看了我的文件,但是在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
Run Code Online (Sandbox Code Playgroud)

以下是显示错误的命令行提示符:

Michaels-MacBook-Air:phpMyAdmin Mike $ appcfg.py -R -A phpmyadmin2121 -V phpmyadmin update.用法:appcfg.py [options] update | [档案,......]

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
Run Code Online (Sandbox Code Playgroud)

Gre*_*ina 13

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

不起作用:

- url: /
script: phpMyAdmin/index.php
secure: always
login: admin
Run Code Online (Sandbox Code Playgroud)

不起作用:

- url: /
 script: phpMyAdmin/index.php
 secure: always
 login: admin
Run Code Online (Sandbox Code Playgroud)

作品:

- url: /
  script: phpMyAdmin/index.php
  secure: always
  login: admin
Run Code Online (Sandbox Code Playgroud)

此外,更改行以从此更新应用程序:

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

对此:

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

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

  • 这就是我讨厌 YAML 的原因。需要非常好的视力来判断你是否拥有正确的空间数量。 (2认同)

tru*_*ted 10

就我而言,这不是空格问题。

我最初有 app.yaml 文件:

runtime: nodejs12

handlers:
- url: /.*
  secure: always
Run Code Online (Sandbox Code Playgroud)

部署时产生错误

Unknown url handler type.
<URLMap 
    secure=always
    ...
    >
Run Code Online (Sandbox Code Playgroud)

https://cloud.google.com/appengine/docs/standard/nodejs/config/appref#handlers_element 上的文档表明script: auto我的处理程序元素丢失了。

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

所以我更新了我的 app.yaml:

runtime: nodejs12

handlers:
- url: /.*
  secure: always
  script: auto
Run Code Online (Sandbox Code Playgroud)

成功部署。