2

我在 App Engine 上有一个非常基本的应用程序,使用 PHP 7.2 设置。

GAE PHP 7.2 上安装 WP 的官方文档中,他们编写了一个复制 WordPress 文件的脚本,然后你提交并部署它们。

此作曲家配置johnpbloch/wordpresscomposer/installers, 一起用于下载 WordPress 并将其安装到wp文件夹中composer install,因此我不必提交或部署此代码。

composer.json文件:

{
  "require": {
    "php": ">=7.2",
    "ext-phar": "*",
    "ext-zip": "*",
    "paragonie/random_compat": "^1.3",
    "symfony/console": "^3.0",
    "google/cloud-tools": "^0.8.5",
    "johnpbloch/wordpress": "^5.0.1",
    "vlucas/phpdotenv": "^2.5",
    "composer/installers": "^1.6"
  },
  "require-dev": {
    "phpunit/phpunit": "^5"
  },
  "extra": {
    "installer-paths": {
      "wp/wp-content/mu-plugins/{$name}/": ["type:wordpress-muplugin"],
      "wp/wp-content/plugins/{$name}/": ["type:wordpress-plugin"],
      "wp/wp-content/themes/{$name}/": ["type:wordpress-theme"]
    },
    "wordpress-install-dir": "wp"
  }
}

.gcloudignore文件:

.gcloudignore

# Git
.git
.gitignore

# PHP Composer dependencies
vendor
wp

app.yaml文件:

runtime: php72

handlers:    
- url: /(.*\.(gif|png|jpg|htm|html|css|js))$
  static_files: wp/\1
  upload: wp/.*\.(gif|png|jpg|htm|html|css|js)$

因此,GAE 成功部署并构建了该项目。

默认处理程序 ( index.php) 似乎可以访问vendor文件夹,例如在编写require __DIR__.'/wp/index.php'它的时候。

但它不会提供静态文件。转到类似<project>.appspot.com/wp-includes/images/media/audio.png返回 404 的 URL。

有任何想法吗?

4

3 回答 3

2

截至 2019 年 1 月,Google App Engine PHP 7 Standard 中没有此类选项。

  • 只能 直接部署statically serve文件。
  • 不能 由 composer 安装statically serve任何文件。

我的意思是在你的(阅读更多statically serve中使用static_dirstatic_files处理程序。app.yaml

此信息来自与 Google 支持代表的讨论。

我正在等待支持团队创建功能请求,并将在此处附上链接。

于 2019-01-10T13:48:34.543 回答
0

您的 app.yaml 正在引用wp/目录,而您的 URL 正在查找wp-includes/目录。有关详细信息,请参阅static_files的文档。

于 2018-12-18T21:49:38.787 回答
0

app.yaml的设置方式,调用<project>.appspot.com/wp-includes/images/media/audio.png将尝试从目录上传:

/wp/wp-includes/images/media/audio.png

你的文件是这样嵌套的吗?该wp目录是否位于项目的根目录?

于 2018-12-18T22:15:07.517 回答