首页 > 解决方案 > 如何在 Google App Engine 本地运行 Wordpress 博客

问题描述

在GAE 教程上的Wordpress 之后,我成功地将我的博客部署到了 App Engine。

但是,我希望能够在我继续开发时在本地运行我的博客,以便我可以检查错误日志等。使用GAE 开发服务器,我尝试像这样运行它:

dev_appserver.py --log_level=debug app.yaml --php_executable_path=/usr/local/bin/php

但我遇到了这个问题:

The url "/" does not match any handlers.

我没有更改我app.yaml的文件或任何其他文件(由教程中的 wp-gae.php 步骤自动创建的文件)。它看起来像这样:

# App Engine runtime configuration
runtime: php72

# Defaults to "serve index.php" and "serve public/index.php". Can be used to
# serve a custom PHP front controller (e.g. "serve backend/index.php") or to
# run a long-running PHP script as a worker process (e.g. "php worker.php").
entrypoint: serve gae-app.php

service: test-wp

# Defines static handlers to serve WordPress assets
handlers:
- url: /(.*\.(htm|html|css|js))
  static_files: \1
  upload: .*\.(htm|html|css|js)$

- url: /wp-content/(.*\.(ico|jpg|jpeg|png|gif|woff|ttf|otf|eot|svg))
  static_files: wp-content/\1
  upload: wp-content/.*\.(ico|jpg|jpeg|png|gif|woff|ttf|otf|eot|svg)$

- url: /(.*\.(ico|jpg|jpeg|png|gif|woff|ttf|otf|eot|svg))
  static_files: \1
  upload: .*\.(ico|jpg|jpeg|png|gif|woff|ttf|otf|eot|svg)$

- url: /wp-includes/images/media/(.*\.(ico|jpg|jpeg|png|gif|woff|ttf|otf|eot|svg))
  static_files: wp-includes/images/media/\1
  upload: wp-includes/images/media/.*\.(ico|jpg|jpeg|png|gif|woff|ttf|otf|eot|svg)$

关于我如何做的任何想法:

  1. 修复上面的 URL 错误?
  2. 启用调试日志以显示在我的控制台上?我刚刚得到INFO 2019-05-29 10:58:02,913 module.py:861] test-wp: "GET / HTTP/1.1" 404 -我已经尝试了这两个标志--log_level=debug,并且--dev_appserver_log_level=debug按照这里的建议,打印语句也没有按预期工作echosyslog(LOG_DEBUG,'test')在我的 wp-config.php 上,我有:define('WP_DEBUG', !$onGae);

标签: phpwordpressgoogle-app-enginedev-appserver

解决方案


我不知道如何让它工作。与日志记录响应无关,我遇到了这篇文章:https ://introvertedengineer.com/2017/02/20/appengine-and-wordpress-guide/

这说明了使用 GAE 可能不是最好的方法:

与 App Engine 打交道时,房间里的大问题是您的应用程序无法访问文件系统。这是什么意思?好吧,你不能自动更新 WordPress,你不能安装插件,你不能安装主题等等。如果你习惯于通过 WordPress 管理员来做这些事情,你会失望的。然而,像所有事情一样,有一个解决方法!

我首先尝试只运行本地 Google App Engine SDK 并以这种方式启动我的 App Engine 应用程序。然而,事实证明,在本地您仍然没有文件系统访问权限——是的,即使在本地主机上!因此,您需要运行本地 FTP 服务器,然后让 WordPress 通过 FTP 而不是直接在文件系统上进行更改。完成本地更改后,您可以使用 Google 的 SDK 将新版本的应用程序部署到生产实例。

由于 GAE 现在支持 PHP 7,这篇文章有点过时了,但文件系统方面似乎仍然是正确的(希望被证明是错误的)。

我最终使用 MAMP 在本地运行 wordpress ( https://www.mamp.info/en/ ),这是一个额外的解决方法,但通过了它。


推荐阅读