我在应用引擎上有一个非常基本的应用程序,使用PHP 7.2。
。在GAE PHP 7.2上安装WP的正式文档中,他们编写了一个复制WordPress文件的脚本,然后您提交和部署它们。
此作曲家配置将johnpbloch/wordpress
与composer/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_dir
或static_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
目录是您项目根源吗?