Google App Engine - PHP - Служить статическим файлам из Composer - WordPress - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть очень простое приложение на 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.

Есть идеи?

Ответы [ 3 ]

0 голосов
/ 19 декабря 2018

Как настроен ваш app.yaml, вызов <project>.appspot.com/wp-includes/images/media/audio.png попытается загрузить из каталога:

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

Это способ размещения ваших файлов?Каталог wp находится в корне вашего проекта?

0 голосов
/ 10 января 2019

По состоянию на январь 2019 года в Google App Engine Standard 7 такой опции нет.

  • Вы можете statically serve только файлы, которые непосредственно развернуты .
  • Вы не можете statically serve любые файлы , установленные композитором .

К statically serve я имею в виду использоватьОбработчики static_dir или static_files в вашем app.yaml ( читать больше ).

Эта информация получена в ходе обсуждения с представителем службы поддержки Google.

Я жду в Службе поддержки, чтобы создать запрос на добавление функции, и прикреплю ссылку здесь.

0 голосов
/ 19 декабря 2018

Ваш app.yaml ссылается на каталог wp/, а ваш URL ищет каталог wp-includes/.Подробнее см. Документацию static_files .

...