我正在遵循如何在谷歌应用程序引擎上安装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
。
所以我更新了app。yaml:为了使用静态处理程序,至少有一个处理程序必须包含行脚本:auto或定义一个entrypoint元素以成功部署。
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$))
…