我正在学习如何将现有的PHP项目转移到gCloud。为此,我创建了一个AppEngine项目,并将代码放在那里。
除了PHP文件之外,一切似乎都正常工作。
当我启动我的项目时,索引文件会启动(如app.yaml中所指定的(,然后在PHP应该执行的地方,它会呈现index.html文件。这创建了一个致命的索引调用循环PHP调用索引调用PHP:(
我确信我的app.yaml错了,但我不知道问题出在哪里。
我的yaml看起来是这样的:
runtime: php55
api_version: 1
threadsafe: true
handlers:
- url: /dialpad_research/(.*.(appcache|manifest))
mime_type: text/cache-manifest
static_files: dialpad_research/static/1
upload: dialpad_research/static/(.*.(appcache|manifest))
- url: /dialpad_research/static
static_dir: dialpad_research/static
# image files
- url: /dialpad_research/static/(.*.(bmp|gif|ico|jpeg|jpg|png))
static_files: static/1
upload: static/(.*.(bmp|gif|ico|jpeg|jpg|png))
# dialpad root
- url: /dialpad_research.*
static_files: dialpad_research/static/index.html
upload: dialpad_research/static/index.html
- url: /dialpad_research/api/(.+.php)$
script: api/1
感谢您的帮助。
文件夹结构如下:
Root
|
---- app.yaml
---- dialpad_research (folder)
|
---- static (folder with index file)
---- api (folder with PHP files)
您必须小心正则表达式的匹配。此url模式:
- url: /dialpad_research/static
将匹配:
- url: /dialpad_research/static(anything to follow)
因此,它永远不会到达下面的处理程序:
- url: /dialpad_research/static/(.*.(bmp|gif|ico|jpeg|jpg|png))
相同:
- url: /dialpad_research.*
在那之后,它永远无法到达:
- url: /dialpad_research/api/(.+.php)$
重新排列处理程序,使它们不会短路。
接下来,/api/
和/static/
不在根目录下,因此它们的路径不正确。见下文:
handlers:
- url: /dialpad_research/(.*.(appcache|manifest))
mime_type: text/cache-manifest
static_files: dialpad_research/static/1
upload: dialpad_research/static/(.*.(appcache|manifest))
# image files
- url: /dialpad_research/static/(.*.(bmp|gif|ico|jpeg|jpg|png))
static_files: dialpad_research/static/1
upload: dialpad_research/static/(.*.(bmp|gif|ico|jpeg|jpg|png))
- url: /dialpad_research/api/(.+.php)$
script: dialpad_research/api/1
- url: /dialpad_research/static
static_dir: dialpad_research/static
# dialpad root
- url: /dialpad_research.*
static_files: dialpad_research/static/index.html
upload: dialpad_research/static/index.html