Google App Engine -PHP-从作曲家 - WordPress提供静态文件



我在应用引擎上有一个非常基本的应用程序,使用PHP 7.2。

在GAE PHP 7.2上安装WP的正式文档中,他们编写了一个复制WordPress文件的脚本,然后您提交和部署它们。

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

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这样的URL返回404。

有什么想法?

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

  • can statically serve仅文件直接部署
  • 不能 statically serve任何文件由作曲家安装

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

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

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

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

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

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

那是您的文件嵌套的方式吗?wp目录是您项目根源吗?

相关内容

  • 没有找到相关文章

最新更新