php - 如何在 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)$
关于我如何做的任何想法:
- 修复上面的 URL 错误?
- 启用调试日志以显示在我的控制台上?我刚刚得到
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
按照这里的建议,打印语句也没有按预期工作echo
。syslog(LOG_DEBUG,'test')
在我的 wp-config.php 上,我有:define('WP_DEBUG', !$onGae);
解决方案
我不知道如何让它工作。与日志记录响应无关,我遇到了这篇文章: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/ ),这是一个额外的解决方法,但通过了它。
推荐阅读
- flutter - Flutter namedRoutes 不会导航到点击的屏幕,但不会抛出错误日志
- testing - 运行测试时“毕竟”挂钩错误
- bash - When a bash script lists correspond file in directory, but not working properly?
- apache-flink - 在两个流之间进行间隔连接时,迟到的事件似乎没有被丢弃
- javascript - 为什么这个 get 方法会返回这个消息?
- closures - 如何将数据从 viewController 传递到 Xib 文件?
- css - Sublime 3 中 CSS/SCSS 结束标签的注释选择器
- ios - 如何从 Firebase Firestore 获取特定的文档 ID,其中 ID 是随机生成的并且没有唯一标识符?
- java - Java android全屏标志问题,我怎样才能让刘海/屏下摄像头型手机全屏?
- verilog - 在 ModelSim 中覆盖 default_nettype