У меня есть очень простое приложение на App Engine, настроенное на PHP 7.2.
В официальной документации по установке WP на GAE PHP 7.2 они написали скрипт, который копирует WordPress.файлы, а затем вы фиксируете и развертываете их.
Эта конфигурация композитора использует johnpbloch/wordpress
вместе с composer/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
file:
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'
она работает.
НО она не будет обслуживать статические файлы.Переход к URL-адресу, например <project>.appspot.com/wp-includes/images/media/audio.png
, возвращает 404.
Есть идеи?