- EDB
- PostgreSQL
新ツール Postgres Workload Report によるパフォーマンス診断~データベース管理の未来を共に創る!~
EDB Postgres Workload Reportsは、Postgresデータベースのパフォーマンス診断とトラブルシューティングを強化する新しいツールです。OracleのAWRに似た詳細なレポートを提供し、データベースの問題を迅速に特定・解決できるようサポートします。本記事では概要と利用手順をご紹介します。
|
当記事はエンタープライズDB社のブログ記事の翻訳の紹介および弊社考察を加えています。
Mohsin Ejaz. (2020, Sep, 23). How to deploy WordPress with highly available PostgreSQL.
The EDB Blog.
https://www.enterprisedb.com/postgres-tutorials/how-deploy-wordpress-highly-available-postgresql
WordPressは、デフォルトのデータベース管理システムとしてMySQLを使用しています。PostgreSQLを使用したいユーザーからは、"MySQLではなくPostgreSQLでWordPressを使用する方法はありますか?"という質問がよくあります。
このガイドでは、その方法の概要をご紹介します。
WordPressは、Webサイトやブログ、アプリケーションを作成するためによく使われるオープンソースソフトウェアです。WordPressには多くのデザインや機能、プラグインが用意されており、インストールしたWordPressに追加することができます。また、必要に応じて使用できる多くの商用プラグインも用意されています。
柔軟なコンテンツマネジメントシステム(CMS)により、コンテンツの管理が容易になります。下書きの作成、公開スケジュールの設定、記事の修正状況の確認などが可能です。また、WordPressには、コンテンツの公開、非公開を選択することができ、投稿やページをパスワードで保護することもできます。WordPress は無料で、Free Software Foundation の GPLv2(またはそれ以降)のライセンスのもとで利用できます。
WordPressを動作させるには、最低でもPHPバージョン5.2.4以上、データベース(ここではPostgreSQLを使用します)、ApacheまたはNginxサーバーが必要です。また、環境に応じて最新のバージョンをインストールするようにしてください。なぜなら、これらのバージョンの中には製造中止になっているものがあり、サイトがセキュリティ上の脆弱性にさらされる可能性があるからです。
前述の通り、WordPressはデフォルトではMySQLデータベースエンジンを使用しています。もし、WordPressをPostgreSQLで使用したい場合は、何らかのプラグインが必要になります。PostgreSQL for WordPress(PG4WP)はそのようなプラグインのひとつで、PostgreSQLデータベースをバックエンドとしてWordPressをインストールして使用することができます。
今回の例では、OSにCentos 7を使用しています。
上述したように、Centos7 Linuxサーバーには、以下の項目をインストールする必要があります。
・WebサーバーとしてのApacheまたはNginx
・PHPバージョン5.6以上(ここではv7.4を使用します)
・任意のバージョンのPostgreSQL(ここではv12を使用しています)
システムのファイアウォール/iptablesやSELinuxが、必要なPORTをブロックしていないことを確認する必要があります。そうしないと、適切なユーザー権限の問題に直面する可能性があります。
SELinux を無効にするには、以下のコマンドを使用します。
sudo setenforce 0
SELinux を無効にした後はシステムのアップデートを行い、システムが最新の状態であることを確認します。これは、次のコマンドを実行することで行うことができます。
sudo yum clean all sudo yum -y update
この操作は、システムソフトウェアの使用年数やインターネットの速度によって時間がかかる場合があります。
Apacheをインストールするには、以下のコマンドを実行する必要があります。
sudo yum -y install httpd
これでApacheがインストールされ、下記のようなインストール完了のメッセージが表示されます。
|
次に、以下のコマンドを実行して、サービスを開始します。
sudo systemctl start httpd
Apacheを起動時にスタートさせ、手動でのコマンドを必要とせずに自動的に起動させたい場合は、次のように実行します。
sudo systemctl enable httpd
Apacheが起動していることを確認するには、以下のコマンドでステータスを確認します。
sudo systemctl status httpd
このコマンドを実行すると、以下のようにサービスステータスが実行中(running)と表示されます。
|
また、任意のブラウザを開き、「localhost」またはシステムのIPを入力して起動確認することもできます。これにより、以下に示す「Testing 123」のページが表示されます。
|
以上でApacheの設定は完了です。
最新バージョンのWordPressは、PHPバージョン5.6以上で動作します。以下では、PHPの最新安定版であるバージョン7.4をインストールする手順をご紹介します。
まず、必要なリポジトリを追加する必要があります。以下のコマンドを実行してください。
sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm sudo yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
必要なリポジトリをインストールしたら、次のコマンドを実行して、PHP 7.4をインストールします。
sudo yum -y install yum-utils sudo yum-config-manager --enable remi-php74 sudo yum -y install php php-cli
完了すると、次のようなインストール完了メッセージが表示されます。
|
これでPHPがインストールされましたが、PHPをPostgreSQLと一緒にセットアップする必要があります。そのためには、以下のコマンドを実行して他のモジュールをいくつかインストールする必要があります。
sudo yum -y install php-mysqlnd php-pgsql
完了すると、以下のようなインストール完了メッセージが表示されます。
|
PHP v7.4をインストールした後は、Apacheのサービスを再起動する必要があります。これは、以下のコマンドを実行することで行うことができます。
sudo systemctl restart httpd.service
PostgreSQLをインストールするには、まずリポジトリをインストールする必要があります。これは、以下のコマンドを実行することで行うことができます。
wget https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
リポジトリファイルのダウンロードが完了したら、次のコマンドを実行してインストールします。
sudo rpm -ivh pgdg-redhat-repo-latest.noarch.rpm
これによりリポジトリがインストールされます。完了したら、PostgreSQLのインストールに進ことができます。ここでは、以下のコマンドを実行して、バージョン12をインストールします。
sudo yum install -y postgresql12-*.
以上でPostgreSQLのインストールが完了です。
PostgreSQLのインストールが完了したら、クラスタの設定を行う必要があります。そのためには、「/usr/pgsql-12/bin/」にあるbinディレクトリを参照し、以下のコマンドを実行します。
sudo su - postgres cd /usr/pgsql-12/bin/ ./initdb -D /tmp/testdata --no-locale -E UTF8
これにより、以下のようにデータベースが初期化されます。
|
次に、以下のコマンドを実行してサービスを開始します。
./pg_ctl -D /tmp/testdata start "-o -p 5444"
データベースを作成するには、ターミナルを開き、PostgreSQLのbinディレクトリに移動して、以下のコマンドを順に実行します。
sudo su - postgres psql -p 5444 create database testdb; create user testuser with password 'testpassword'; grant all privileges on database testdb to testuser;
これにより、以下のように、testtdb と testuser が作成され、必要な権限が付与されます。
|
今度は、WordPressの最新バージョンをダウンロードします。
Apacheサーバーのディレクトリ(/var/www/html)に移動し、以下のコマンドを実行してファイルをダウンロードします。
wget https://wordpress.org/latest.zip
ダウンロードが完了したら、フォルダを解凍して、内容を必要なフォルダにコピーします。ここでは、「var/www/html」に「test-with-postgres」という名前のフォルダを作成しました。この作業は、以下のコマンドを実行することで行うことができます。
wget latest.zip mkdir test-with-postgres cp -rp wordpress/* test-with-postgres/
問題を回避するために、WordPressの設定を行う前にPG4WPプラグインをインストールすることをお勧めします。これは、プラグインが正常に読み込まれるようにデータベースを起動するのに役立ちます。
オリジナルのPG4WPプラグインは、WordPressのサイトにあります。時間が経つにつれ、多くの改良がなされ、人々はpg4wpプラグインのフォークされたバージョンをリリースしました。今回の例では、Kevin Locke氏が開発したバージョンを使用します。これまでのところ、どのバージョンのワードプレスとも互換性があることがわかっています。
フォークされたバージョンをクローンする必要があるので、git が必要になります。git をインストールするには、次のコマンドを実行します。
yum install git
wp-contentディレクトリ(今回は「/var/www/html/test-with-postgres/wp-content」にあります)に行き、以下のコマンドを使ってPG4WPプラグインをクローンします。
git clone https://github.com/kevinoid/postgresql-for-wordpress.git
コンテンツを wp-content ディレクトリに移動します。
mv postgresql-for-wordpress/pg4wp pg4wp
また、db.php ファイルを wp-content ディレクトリにコピーする必要がありますが、これは以下のコマンドを実行することで可能です。
cp pg4wp/db.php db.php
wp-config-sample.php というサンプルファイルが webroot ディレクトリ(ここでは「/var/www/html/test-with-postgres」)に作成されます。ディレクトリに移動してコピーを作成し、以下のコマンドを実行して wp-config.php という名前に変更します。
cd /var/www/html/test-with-postgres cp -rp wp-config-sample.php wp-config.php
これで、ステップ6で作成したデータベース名、ユーザー名、パスワードを使って、wp-config.phpファイルを以下のように設定することができます。
// ** MySQL settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define( ‘DB_NAME’, ‘testdb’ ); /** MySQL database username */ define( ‘DB_USER’, ‘testuser’ ); /** MySQL database password */ define( ‘DB_PASSWORD’, ‘testpassword’ ); /** MySQL hostname */ define( ‘DB_HOST’, ‘localhost’ ); /** Database Charset to use in creating database tables. */ define( ‘DB_CHARSET’, ‘utf8’ ); /** The Database Collate type. Don’t change this if in doubt. */ define( ‘DB_COLLATE’, ‘’ );
これでWordPressをインストールする準備が整いました。
「http://localhost/test-with-postgres/wp-admin/install.php」にアクセスして、以下のようにサイト名、ユーザー名、パスワード、メールアドレスを入力します。
|
“Install WordPress” を押すと、確認のメッセージが表示されます。
|
これで完了です!
新しく作成したWordPressサイトの管理画面にログインするには、「http://localhost/test-with-postgres/wp-admin/」にアクセスし、ステップ10で使用した認証情報を入力します。
また、「http://localhost/test-with-postgres/」にあるデフォルトのWordPressページにアクセスすることもできます。
PostgreSQLがバックエンドとして使用されていることを確認するために、クラスタにログインし、以下のコマンドを実行してデータベース内のレコードを確認します。
sudo su - postgres psql -U testuser -p 5444 testdb \dt
このコマンドを実行すると、現在のデータベース内のすべてのリレーションが表示されるので、WordPressが作成したテーブルを見ることができ、PostgreSQLがWordPressのバックエンドとして使用されていることを確認できます。
|
この記事を参照していただき、PostgreSQLを使ったWordPressの展開が容易にできることを理解していただけましたら幸いです。
(以上、EDB社ブログ記事より翻訳)
オープンソースのCMS 「WordPress」は非常に有名で、Webページの作成や更新を手軽にできるシステムとしてシェアを拡大しています。そのため、これからご利用される方も多くいるはずです。PostgreSQL ユーザーの方は、WordPress のバックエンドの DB を PostgreSQL に置き換えることで運用スキルを引き続き活用することができますので、これから WordPress を構築される機会がありましたら当記事を参考にご検討いただけましたら幸いです。
2017年に中途入社。Oracle Database、EDB Postgres/PostgreSQL のサポート経験を経て、2020年からバックサポートを担当。DBとアプリケーションを繋ぐミドルウェア製品のスペシャリスト。トレンドな技術は積極的に触れるほど好奇心旺盛。最近はプロアクティブなサポートを目指して粉骨砕身。趣味はボードゲーム。...show more
■本記事の内容について
本記事に示した定義及び条件は変更される場合があります。あらかじめご了承ください。
■商標に関して
・Oracle®、Java、MySQL及びNetSuiteは、Oracle、その子会社及び関連会社の米国及びその他の国における登録商標です。
・Amazon Web Services、AWS、Powered by AWS ロゴ、[およびかかる資料で使用されるその他の AWS 商標] は、Amazon.com, Inc. またはその関連会社の商標です。
文中の社名、商品名等は各社の商標または登録商標である場合があります。
EDB Postgres Workload Reportsは、Postgresデータベースのパフォーマンス診断とトラブルシューティングを強化する新しいツールです。OracleのAWRに似た詳細なレポートを提供し、データベースの問題を迅速に特定・解決できるようサポートします。本記事では概要と利用手順をご紹介します。
35年以上教育事業を展開しているアシストが新たに取り組み始めた「ポスグレ学園」。連載10回目となる今回の記事では、OSS-DB Gold試験対策問題集 出版の経緯や内容を 新校長 我妻にインタビューしました。
EDB社のAjit Gadge氏を招き「PostgreSQLユーザーに捧ぐ、EDBを使ったDB機能向上とコスト削減の両立」セミナーを開催しました。DB市場の現状やトレンド、EDBの最新動向について紹介しております。アシストセッションのアーカイブ配信の視聴申し込みも可能です。ぜひご覧ください。