WordPressは、Webサイト、ブログ、またはアプリケーションの作成に使用できるオープンソースソフトウェアです。 WordPressのインストールに追加する多くのデザインと機能/プラグインがあります。 WordPressは無料のソフトウェアですが、要件に応じて、WordPressを改善するための多くの商用プラグインがあります。
WordPressを使用すると、コンテンツを簡単に管理でき、非常に柔軟です。下書きを作成し、公開をスケジュールし、投稿の改訂を確認します。コンテンツを公開または非公開にし、パスワードで投稿とページを保護します。
WordPressを実行するには、少なくともPHPバージョン5.2.4以降、MySQLバージョン5.0以降(またはMariaDB)、およびApacheまたはNginxが必要です。これらのバージョンの一部はEOLに達しており、サイトがセキュリティの脆弱性にさらされる可能性があるため、環境に応じて利用可能な最新バージョンをインストールする必要があります。
ご覧のとおり、現在、WordPressはMySQLおよびMariaDBデータベースエンジンのみをサポートしています。 WPPGはPG4WPプラグインに基づくプラグインであり、PostgreSQLデータベースをバックエンドとしてWordPressをインストールして使用する可能性を提供します。これは、MySQL固有の関数への呼び出しを、それらを他のデータベース関数にマップする一般的な呼び出しに置き換え、必要に応じてその場でSQLクエリを書き換えることによって機能します。
このブログでは、WordPress 5.1.1とHAProxyを備えた1つのアプリケーションサーバー、同じサーバーに1.5.18、2つのPostgreSQL 11データベースノード(マスタースタンバイ)をインストールします。すべてのオペレーティングシステムはCentOS7になります。データベースとロードバランサーのデプロイには、ClusterControlシステムを使用します。
これが基本的な環境です。ここに表示されているように、高可用性機能を追加することで改善できます。それでは、始めましょう。
データベースの展開
まず、PostgreSQLデータベースをインストールする必要があります。このため、ClusterControlがインストールされていることを前提としています。
ClusterControlから展開を実行するには、[展開]オプションを選択し、表示される指示に従います。
PostgreSQLを選択するときは、SSHでサーバーに接続するためのユーザー、キー、またはパスワードとポートを指定する必要があります。また、新しいクラスターの名前と、ClusterControlに対応するソフトウェアと構成をインストールさせる場合も必要です。
SSHアクセス情報を設定した後、データベースユーザー、バージョン、およびdatadir(オプション)を定義する必要があります。使用するリポジトリを指定することもできます。
次のステップでは、作成するクラスターにサーバーを追加する必要があります。
サーバーを追加するときに、IPまたはホスト名を入力できます。
最後のステップで、レプリケーションを同期にするか非同期にするかを選択できます。
ClusterControlアクティビティモニターから新しいクラスターの作成ステータスを監視できます。
タスクが完了すると、ClusterControlのメイン画面にクラスターが表示されます。
クラスタを作成したら、ロードバランサ(HAProxy)や新しいレプリカの追加など、いくつかのタスクを実行できます。
データベースインフラストラクチャ全体のClusterControlSingleコンソールClusterControlのその他の新機能を確認するClusterControlを無料でインストールロードバランサーの導入
ロードバランサーの展開(この場合はHAProxy)を実行するには、クラスターアクションで[ロードバランサーの追加]オプションを選択し、要求された情報を入力します。
IP /名前、ポート、ポリシー、および使用するノードを追加するだけで済みます。デフォルトでは、HAProxyは2つの異なるポート(1つは読み取り/書き込み、もう1つは読み取り専用)を使用してClusterControlによって構成されます。読み取り/書き込みポートでは、マスターのみがUPです。障害が発生した場合、ClusterControlは最も高度なスレーブをプロモートし、HAProxy構成を変更して、新しいマスターを有効にし、古いマスターを無効にします。このようにして、障害が発生した場合の自動フェイルオーバーが可能になります。
前の手順に従った場合、次のトポロジが必要になります。
したがって、HAProxyを使用してアプリケーションサーバーに単一のエンドポイントを作成します。これで、アプリケーションでこのエンドポイントをローカルホスト接続として使用できます。
WordPressのインストール
アプリケーションサーバーにWordPressをインストールし、ローカルHAProxyポート3307を使用してPostgreSQLデータベースに接続するように構成しましょう。
まず、必要なパッケージをアプリケーションサーバーにインストールします。
$ yum install httpd php php-mysql php-pgsql postgresql
$ systemctl start httpd && systemctl enable httpd
最新のWordPressバージョンをダウンロードして、Apacheドキュメントルートに移動します。
$ wget https://wordpress.org/latest.tar.gz
$ tar zxf latest.tar.gz
$ mv wordpress /var/www/html/
WPPGプラグインをダウンロードして、wordpressプラグインディレクトリに移動します。
$ wget https://downloads.wordpress.org/plugin/wppg.1.0.1.zip
$ unzip wppg.1.0.1.zip
$ mv wppg /var/www/html/wordpress/wp-content/plugins/
db.phpファイルをwp-contentディレクトリにコピーします。次に、それを編集して、「PG4WP_ROOT」パスを変更します。
$ cp /var/www/html/wordpress/wp-content/plugins/wppg/pg4wp/db.php /var/www/html/wordpress/wp-content/
$ vi /var/www/html/wordpress/wp-content/db.php
define( 'PG4WP_ROOT', ABSPATH.'wp-content/plugins/wppg/pg4wp');
wp-config.phpの名前を変更し、データベース情報を変更します。
$ mv /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php
$ vi /var/www/html/wordpress/wp-config.php
define( 'DB_NAME', 'wordpressdb' );
define( 'DB_USER', 'wordpress' );
define( 'DB_PASSWORD', 'wpPassword' );
define( 'DB_HOST', 'localhost:3307' );
次に、PostgreSQLデータベースにデータベースとアプリケーションユーザーを作成する必要があります。マスターノード:
$ postgres=# CREATE DATABASE wordpressdb;
CREATE DATABASE
$ postgres=# CREATE USER wordpress WITH PASSWORD 'wpPassword';
CREATE ROLE
$ postgres=# GRANT ALL PRIVILEGES ON DATABASE wordpressdb TO wordpress;
GRANT
そして、pg_hba.confファイルを編集して、アプリケーションサーバーからの接続を許可します。
$ Vi /var/lib/pgsql/11/data/pg_hba.conf
host all all 192.168.100.153/24 md5
$ systemctl reload postgresql-11
アプリケーションサーバーからアクセスできることを確認してください:
$ psql -hlocalhost -p3307 -Uwordpress wordpressdb
Password for user wordpress:
psql (9.2.24, server 11.2)
WARNING: psql version 9.2, server version 11.0.
Some psql features might not work.
Type "help" for help.
wordpressdb=>
次に、Webブラウザでinstall.phpに移動します。この場合、アプリケーションサーバーのIPアドレスは192.168.100.153であるため、次の場所に移動します。
http://192.168.100.153/wordpress/wp-admin/install.php
管理セクションにアクセスするためのサイトタイトル、ユーザー名、パスワード、および電子メールアドレスを追加します。
最後に、[プラグイン]-> [インストール済みプラグイン]に移動し、WPPGプラグインをアクティブ化します。
結論
これで、単一のエンドポイントを使用してPostgreSQLでWordPressを実行できるようになりました。 ClusterControlでクラスターアクティビティを監視して、さまざまなメトリック、ダッシュボード、または多くのパフォーマンスと管理機能を確認できます。
PostgreSQLでWordPressを実装する方法はいくつかあります。別のプラグインを使用するか、通常どおりWordPressをインストールして後でプラグインを追加することもできますが、いずれの場合も、前述のように、PostgreSQLはWordPressで正式にサポートされていないため、必要に応じて徹底的なテストプロセスを実行する必要があります。このトポロジを本番環境で使用してください。