WordPressインストール時のデータベースをPostgreSQLに指定してハマる

f:id:ts0818:20190706113037j:plain

海外ドラマ「ウエストワールド」の第一シーズンを見終わってから、だいぶ時間が経ってしまった...あ、どうもボクです。

theriver.jp

⇧  既に、シーズン3の製作が決まったそうな...

はい、脱線しましたが、今回は、PHPCMSでお馴染みWordPress のお話。

では、レッツトライ~。

 

WordPressは素直にMySQLMariaDBを使うが吉?

何て言うか、今回、調子に乗ってデータベースとしてPostgreSQLを使ってWordPressをインストールしようとしてハマりました。

何でだろう~、って調査してたら、

medium.com

Currently, the official WordPress distribution only supports the MySQL and Maria Db database engines. A number of people have requested support for other database engines, particularly the open-source PostgreSQL

Install WordPress with PostgreSQL using Apache in 5 min

⇧  そもそも、WordPressの公式の説明で、そもそも、MySQLMariaDB以外についてのデータベースには言及してくれていないと。

多くの人々は、それ以外のデータベースを使いたいじゃん?ってことで、PostgreSQL を使ってWordPressをインストールする場合は、

Instead of PG4WP we will use the Fork version of PG4WP special thanks to the kevin for making fork version which is compatible with any version of the WordPress so far.

Install WordPress with PostgreSQL using Apache in 5 min

⇧  「PG4WP」ってプラグインを使う必要があるらしいんだけど、更新が止まっていて、最新のWordPressのインストール に対応していないため、他の人が「PG4WP」をフォークして更新したものを使えばイケるらしい。

というか、

wpdocs.osdn.jp

データベースの課題

  1. 現在のコードベースは非常に MySQL を中心としたものとなっている。WordPress はデータベースコールを実装するために ezSQL クラスを使ってはいるが、これは抽象化レイヤと呼ぶには適切ではない。異なるデータベースにおける異なる SQL 構文の実装(リテラルの引用符囲い、クエリ構文の制限、大文字小文字の区別、など)には ezSQL では対応しておらず、一般的なクエリコールが提供されているだけである。つまり、多大な数のクエリを再度書かなければならず、非常に大規模な作業となってしまう。
  2. データベースを使って動くプラグインは現在の実装に依存しており、MySQL 向けのコードになっている。もしデータベース抽象化レイヤへの完全対応に向けて WordPress のコードをすべて書き換える場合、データベース実装の急激なシフトが起こった際にはデータベースアクセスに依存するプラグインなどが使えなくなる可能性が高い。
  3. 現在の標準データベース抽象化レイヤ(ADOdbPear DB)は非常に規模が大きく複雑であり、WordPress と同様もしくはそれ以上の依存性に相当することになってしまう。これは、WordPress のポータビリティやインストールの簡単さに影響を与える可能性がある。

代替データベースの使い方 - WordPress Codex 日本語版

⇧  MySQLに依存って確かになってますね。

なんで、おそらく「PG4WP」っていうプラグインを使用することによって、PostgreSQLWordPressをインストールできるようになるってことですかね。

プラグインを作ってくれた方に感謝ですね。 

 

XREAっていうレンタルサーバーの無料枠で試してみる

まぁ、何て言うか、Googlehttps 化を進めたせいで、はてなブログhttps化したんだけど、外部の無料レンタルサーバーに配置していた「syntaxhighlighter 3.0.83」が読み込めなくなったんすよ...

理由は、外部のレンタルサーバーに配置していたリソース(「syntaxhighlighter 3.0.83」のこと)が、http として読み込まれちゃうから、

developer.mozilla.org

⇧  「混在コンテンツ」になってしまっていると...Google のブタ野郎!

結局、金か~、金出したやつの勝ちか~。

 

んで、無料レンタルサーバーで何とかできないもんかな~、と調査してて、

qiita.com

⇧  上記サイト様で、「XREA」って無料レンタルサーバーでできるよって言ってる方がおられたので、試してみるために、WordPressをインストールしようとした際に、まずハマるという(涙)。

XREA」を無料で使う場合は、

jpn.bex.jp

⇧   上記サイト様が参考になるかと。

 

というわけで、WordPressをインストール

今回は、「XREA」ってレンタルサーバーの無料枠で試すということで。

ログインに必要な情報はメールで送られてるはずなんで、メールを確認しましょう。「VALUE-DOMAIN ユーザー名」のパスワードでログインできます。

f:id:ts0818:20190706122839p:plain

何やかんやで、XREAの管理画面に入れるようになったら、「サイト設定」で、「CMSインストール」ってあるので、『WordPress x.x』をクリック。

f:id:ts0818:20190706121649j:plain

その後、「net2ftp ファイルマネージャー」をクリックで。

f:id:ts0818:20190706122113j:plain

指定したフォルダに、WordPressのファイル群がインストールされます。

f:id:ts0818:20190706122241p:plain

「wp-config.php」ってファイルは、初期状態だと存在しないので、「wp-config-sample.php」をコピーして、リネームして「wp-config.php」ってファイルを作成します。

「wp-config.php」の内容は、

medium.com

⇧  上記サイト様の「Step 4: Configure the wp-config.php」を参照ください。

 

確認できたら、一旦、「サイト設定」に戻って、「データベース」をクリックで、データベースを作成しときます。

f:id:ts0818:20190706122635p:plain

PostgreSQLでデータベースを作成しました。 

f:id:ts0818:20190706123238p:plain

⇧  データベースも用意できたので、

「PG4WP」をダウンロードします。

https://github.com/kevinoid/postgresql-for-wordpress にアクセスし、

github.com

「Clone of download」をクリックで、

f:id:ts0818:20190706123954p:plain

今回は、git でzipファイルをダウンロードするため、URLをコピーしました。gitコマンドとかをインストールしてない場合は、「Download ZIP」をクリックでダウンロードできます。

f:id:ts0818:20190706124203p:plain

git コマンドでダウンロードしてみました。

f:id:ts0818:20190706124729p:plain

f:id:ts0818:20190706124858p:plain

ダウンロードしたZIPファイルの中の、「pg4wp」ってフォルダを「wp-content」フォルダに配置する必要があると。

f:id:ts0818:20190706125131p:plain

XREA」の管理画面の「サイト設定」>「net2ftp ファイルマネージャー」だと、フォルダでアップロードができないので、今回はフリーソフトFFFTP使いました。(Windows環境なら、WinSCP とかのほうが良いかも)

f:id:ts0818:20190706130612j:plain

アップロードできました。

f:id:ts0818:20190706130710p:plain

XREA」の管理画面の「サイト設定」>「net2ftp ファイルマネージャー」で、さきほどアップロードした「pg4wp」フォルダの中の「db.php」ファイルを選択した状態で「コピー」で。

f:id:ts0818:20190706131034p:plain

そしたら、「ターゲット ディレクトリ」を変更します。

f:id:ts0818:20190706131303p:plain

「ターゲット ディレクトリ」変更後、f:id:ts0818:20190706131805p:plainをクリックで。

f:id:ts0818:20190706131712p:plain

コピーされたらしい。

f:id:ts0818:20190706131929p:plain

「wp-content」の「db.php」が更新されたのかよく分からん...使いづらいUIだな~。

f:id:ts0818:20190706132100p:plain

ブラウザで「[標準のホームページURL]/[WordPressを配置したディレクトリ]/wp-admin/install.php」にアクセスすると、WordPressのインストール画面が表示されました。

f:id:ts0818:20190706132808j:plain

インストールできたようです。

f:id:ts0818:20190706133106p:plain

ログインしてみます。 

f:id:ts0818:20190706133247p:plain

ログインできました。

f:id:ts0818:20190706133716p:plain

何て言うか、「XREA」の「net2ftp ファイルマネージャー」がむちゃくちゃ使いづらいかな...まぁ、無料で使わせてもらうから文句は言えないですかね...

PostgreSQLでのWordPressの使用は、「PostgreSQL for WordPress (PG4WP)」に影響するので、安定しないかもですかね...

 

ちなみに、「syntaxhighlighter 3.0.83」の読み込みをhttps 化したい の件は、「XREA」さんだと、「public_html」ディレクトリに配置したファイルに対して、共有SSL URLでアクセスさせることができるそうです。

f:id:ts0818:20190706160428p:plain

もしくは、CDNから読み込むのでも良いかもですね。

cdnjs.com

 

共有SSL経由でアクセスさせたら、「syntaxhighlighter 3.0.83」が機能するようにはなったのですが、『Uncaught RangeError: Maximum call stack size exceeded』ってエラーが...

ちょいと、調査が必要ですかね...はてなブログの月間アーカイブのリストも表示されなくなるし...やる気が出ないっすね...

 

2019年7月8日(月)追記:↓ ここから

sin-note.blogspot.com

exq.blog.fc2.com

⇧  上記サイト様を参考にsyntaxhighliter v4 に変更したら、『Uncaught RangeError: Maximum call stack size exceeded』ってエラーもなくなり、はてなの月間アーカイブも復活しました。

ちなみに、『Uncaught RangeError: Maximum call stack size exceeded』は、

qiita.com

⇧  上記サイト様によりますと、再帰処理で、return がされないことによる場合が濃厚ということらしいっす(涙)。

syntaxhilighter 3.8.03 のバグですかね...

 

今回はこのへんで。