LoginSignup
1
0

More than 5 years have passed since last update.

WordPress in AppEngine SE でのプラグイン管理

Posted at

この記事の目的

  • AppEngine Standard Environment(SE)上でWordpressを動かす際のプラグイン管理方法の紹介

動作環境

  • PHP 7.2.9
  • Google Cloud SDK 220.0.0
  • Wordpress 4.9.8

本題

AppEngine SEでWordPressを開発・デプロイのベース作成にはWordPress on App Engine Standard for PHP 7.2 を使いました。

本題のプラグイン管理についてですが、AppEngineはapp.yamlという設定ファイルがあるディレクトリをルートディレクトリとして、それ以下にあるファイルを全てまとめてAppEngine上にデプロイします。
そのファイル群+オプションでいくつかのPHP Extensionsによってアプリケーションを構成するため、デプロイ時にはデプロイを実行する環境にWordPressのコアファイル及びプラグインを含めたファイルが全て存在する必要があります。
プラグインを全てリポジトリに含めることも出来なくはないですが、サイズとメンテナンス性の観点から取りたくない方法なので、どのプラグインのどのバージョンを利用しているのかのみを管理します。

プラグインをコード管理したい場合にWP-CLIを使ってインストールとアクティベートを自動化する方法もありますが、AppEngine SEではローカルファイルの書き込みができないため、この方法はとれません。
なので、今回はcomposerを使って、開発/デプロイ時にプラグインをインストールする方法をとります(プラグインのアクティベートはデプロイ後にWordpressの管理画面から行います)。

composerによるWordPressプラグインの管理

composerでWordPressのプラグインを管理するためにはWordPress Packagistを使います。
WordPress Packagistはプラグインをホスティングしているリポジトリで、これをcomposerのrepositoriesに追加することで管理を可能にします。
以下がcomposer.jsonのサンプルです。repositoriesプロパティにhttps://wpackagist.orgを追加していて、requireプロパティで必要なプラグイン(例)を指定しています。

composer.json
{
  "name": "sample",
  "authors": [
    {
      "name": "author",
      "email": "sample@example.com"
    }
  ],
  "repositories": [
    {
      "type": "composer",
      "url": "https://wpackagist.org"
    }
  ],
  "minimum-stability": "dev",
  "require": {
    "wpackagist-plugin/addquicktag": "2.5.*",
    "wpackagist-plugin/advanced-custom-fields": "5.7.*",
    "wpackagist-plugin/all-in-one-seo-pack": "2.9.*",
    "wpackagist-plugin/gcs": "0.1.4",
  }
}

これらのプラグインはwp-content/pluginsディレクトリにインストールされます。
vendorディレクトリにインストールされないのは、これらがtype:wordpress-pluginを指定されているためで、composerはこのtypeのパッケージのインストール先をデフォルトでwp-content/pluginsに指定します。
これはその他のFW等でも適用されていることもあり、詳しい説明はこちらに書かれています。
インストール時のプラグインのパッケージ名称は

などで探してみてください。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0