我正在关注如何在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
以下是显示错误的命令行提示符:
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
答案 0 :(得分:12)
如果有其他人遇到此问题,我遇到了同样的问题。您必须为所有子目录添加两个空格。确保单词与“url”一致。
不起作用:
- url: /
script: phpMyAdmin/index.php
secure: always
login: admin
不起作用:
- url: /
script: phpMyAdmin/index.php
secure: always
login: admin
WORKS:
- 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选项的第二个命令就可以了。
答案 1 :(得分:5)
就我而言,这不是 空格问题。
我最初有app.yaml文件:
runtime: nodejs12
handlers:
- url: /.*
secure: always
在部署时产生了错误
Unknown url handler type.
<URLMap
secure=always
...
>
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
部署成功。
答案 2 :(得分:2)
尝试为任何子项添加空格。 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
答案 3 :(得分:2)
我有同样的问题。本教程中的错误确实是短划线下方行上的两个缺失空格,因此从
更改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$))
...