頑張らない!でも諦めない!必死にならずにええかげん

WordPress4.0日本語をGoogle App Engine for PHPにインストールする概要

      2014/11/22

Google App EngineでPHPが動作するようになりました。
非常に安定して動作するWordPressのパッケージを見つけましたのでご紹介しておきます。
WordPressをインストールしてみたという記事が公開されていて、
そうした先人たちの情報を元にして、
WordPressのインストールを行ってみましたが、なかなか苦労しました。
何せ、書いてある通りのapp.yamlでは動かない。
自分でいろいろ書き換えてみるも思った通りにはいかない経験はされていませんか?

 

色んなサイトの記事を拝見して、ここまで書いてあれば簡単にいけそう!
そう思って始めた検証でしたが、思いのほか苦労しました。

Google App Engine for PHPが公開されたのが2014/05頃のようで、
おそらく少しずつ仕様が変わっていたりでうまくいかないんでしょうかね。

結果としてはいろいろ苦労や癖はあるのですが、
問題なくホストすることができましたので今後は実際の公開サイトで利用しようと思っています。

 

WordPressをGoogle App Engine for PHPにインストール

WordPressと言えば普通WordPress.orgからダウンロードして、
ダウンロードしたファイルをFTPアップロードするのが一般的ですが、
Google App Engine for PHP向けのWordPressとして必要なファイルがセットされたパッケージが、
GitHub上に公開されています。

一連のWordPress導入手順については以下でまとめています。

Google App Engineを利用したことがある、またバケットの操作になれている、
CloudSQLも分かっている人には1つの投稿で説明ができるとは思いますが、

こうしたHowToを読まれる方には1つの記事では伝えきれませんでした。

 

 

25_画像のアップロードと表示

画像のアップロードと表示 

 

Quick Start WordPress for Google App Engine

既にGoogle App Engine for PHPにWordPressをインストールしたことがあって、
うまく動かないといったことに直面している場合には、
以下サイトからダウンロードしたWordPressをダウンロードして試すといいかもしれません。

おそらくそうした方はうんぬんの説明は必要ないのでしょうから。

 

GitHub上に公開されているGoogle App Engine for PHP向けのWordPressは、
以下からダウンロードが行えます。

Quick Start WordPress for Google App Engine by GoogleCloudPlatform

 

01_Quick Start WordPress for Google App Engine on GitHub

Quick Start WordPress for Google App Engine on GitHub

 

アクセスしたら[Download for Windows]をクリックすることで、
Google App Engine独自のapp.yaml、php.ini、cron.yamlなどが用意されています。

02_ダウンロードファイル内の構成

ダウンロードファイル内の構成

 

また、wp-config.phpもローカル環境とのサーバー切り替え処理が組み込まれています。

 

これによって各設定ファイルのアプリケーション名や
接続情報を変更するだけで簡単にWordPressの導入が可能になります。

実際の動作環境

WordPressをGoogle App Engine for PHP上で動かしたいと思っている人は、
新しいものを試したいという人は除いて、
おそらく今利用しているサーバーの負荷が処理できないといったような、
何かしらの問題を抱えていることと思います。

私自身もその一人です。

そんな場合、やりたいことはインストールしたいことではなくて、
どのくらいのスピードで使えるのか?といった部分ではないでしょうか。

月額の課金が発生しているのでいつまで公開できるかわかりませんが、
以下で実際の環境での初期状態WordPressを確認することができます。

こちらではApacheベンチの結果もご紹介しています。

 

劇的に早いという印象ではありませんし、
有料のレンタルサーバーなどと遜色なく利用ができるといった感じです。

むしろ1つ1つの速度の違いというよりも、
Google App Engineを利用する目的は急な負荷上昇などに対して、
インスタンスを増やすことで対応することができるというスケール拡張の容易性などがあります。

その為、Googleプラットフォーム上でホストするという安定性を重視するものだと私は思います。

 

ちなみにGoogle App Engine for PHPのphpinfo()情報はGoogleさんが公開してくれています。

phpinfo() @Google App Engine for PHP

 

プロモーション(btm)

Google or AdMax Promotion (it)

Google App Engine for PHP利用上の注意点

Google App Engine for PHPでWordPressをホストする上での注意点を挙げておきます。

 

MySQLはCloudSQLを利用するしかない

外部サーバーも利用可能して接続を行うことも技術的には可能であると思います。
しかし、Google App Engineでは同じドメインでサイトを表示した際に、
表示するたびにIPアドレスが変化します。

Google App EngineのIPアドレスは以下の範囲で動的に割り当てられています。

Google ウェブマスター向け公式ブログ: App Engine の利用する IP 範囲変更のお知らせ

Google App Engine General Questions – Google App Engine — Google Developers (抜粋引用)

From this example, we see that both the 8.34.208.0/20 and 8.35.192.0/21 IP ranges can be used for App Engine traffic.

(Google翻訳)この例からは、両方がわかり8.34.208.0/208.35.192.0/21 IP範囲はApp Engineのトラフィックのために使用することができる。

実際にnslookupを実行してみると以下のように返ってきます。

“v=spf1 ip4:8.34.208.0/20 ip4:8.35.192.0/21 ip4:8.35.200.0/23 ip4:108.59.80.0/20 ip4:108.170.192.0/20 ip4:108.170.208.0/21 ip4:108.170.216.0/22 ip4:108.170.220.0/23 ip4:108.170.222.0/24 ?all”

01_nslookupの実行例

nslookupの実行例

 

一般的にレンタルサーバーなどのサービスでMySQLを外部公開する際には、
許可IPアドレスの指定が必要になります。

MySQLに対してアクセスが可能なIPアドレスやドメイン名エイリアスを登録して、
その登録されているアクセス元からのみ許可することになります。

こうした範囲指定で許可をすることを認めているサービスはあまり見かけませんので、
実質的に外部のMySQLサーバーをデータ元として利用することが困難になります。

 

結果としてCloudSQLを利用するしかない事から、
無料枠のないCloudSQLを利用した課金が月額または従量制で必要になります。

 

CloudSQLは外部から操作可能

ちなみにCloudSQL自体には外部からMySQLのroot権限でアクセスして、
データの操作を行うことができます。

ですので、MySQL Workbenchから接続してデータ操作を行うことさえできます。

 

サイト上(バケット)に対するファイル操作

WordPressに限らず表示する画像コンテンツなどをアップロードして、
サイトを運用していくとファイルがどんどん増えていきます。

Google App EngineではFTPアクセスによるファイル操作が一切行えません。

アップロードしたファイルはすべてバケットと呼ばれるファイル領域に保存されます。

09_バケット内にアップロードされたファイル

バケット内にアップロードされたファイル

 

またCloudSQLに対してインポートするSQLファイルなども、
一旦はバケット上にアップロードしたうえで実行する流れになります。
※SQLの直接実行は「Google APIs Console」から実行可能

 

18_bucketパスの入力

bucketパスの入力

 

ファイル操作はバケット上で行うのが流儀です。

その為、バケットに対するファイル操作を行う為のプラグインの導入が必須になります。

GitHubからダウンロードしたWordPressには元からこのプラグインが含まれています。

 

サイトの引っ越し時にファイルの抜出が困難

サイトの引っ越しといったようなファイルをごっそりと移動するような場合には、
サーバー上のファイルの抜出が非常に困難になります。

とは言え、レンタルサーバからGoogle App Engineに移動するというのが、
既に他の選択肢がなく移動しているでしょうから、
そうそう移動することもないかもしれませんが。

引っ越しするというとConpute Engineに対して移動して、
自身でVMを管理してサイトを公開するようなケースでしょうか、
Amazonに移行するケースもあるかもしれませんね。

そうした将来にサイトを引っ越すとなった時にこのバケット内のファイルを、
どうするかという問題が付きまといます。

 

キャッシュによって更新されないことも

WordPressのキャッシュプラグインなどでも同じことが言えると思いますが、
Google App Engineでは特に何もすることなくキャッシュが有効になっています。

その為、キャッシュを利用している意識がなくてもキャッシュが有効になっており、
サイトをデプロイした結果が反映されないということにも出会うことと思います。

キャッシュは一括して削除することでしかできませんので、
反映されない場合にはキャッシュを解放することになります。

キャッシュの解放手順については以下でご紹介しています。

 

03_Flush Cacheの実行

Flush Cacheの実行

 

頻繁にキャッシュを開放することはそもそもキャッシュされていることによるメリットを、
一旦リセットしてしまうことになり、あまり頻繁に行いたいものではありません。

キャッシュによって使用帯域を節約できているものを、
敢えて再度データを取得させる結果にもなりますので、
従量制課金であるこうしたサービスでは実行することに抵抗がある機能です。

ページスピードとこうした効率化は表裏一体で、
キャッシュされているページが提供されているという意識でサイトを運営しておかないと、

変更が反映されないと慌ててしまうことになります。

 

さいごに

このように一定の流儀と癖はありますが、

個人的にはこうしたデータストレージ周りの不便さを覚悟することができるのであれば、
Google App Engine上でWordPressを利用することのメリットは多くあると思います。

今後は実際に運用するサイトを Google App Engine上で公開していきたいと思っています。

 

参考

今回、WordPressをGoogle App Engine for PHPにインストールするに当たって、
以下のサイトにてGoogle App Engineの基本的な流儀などを学ばせて頂きました。

書いてあるまんまで私にはうまく導入することができませんでしたが、
大変助かりました。ありがとうございます。

Blog @vierjp : 29.Google App Engine for PHPでWordPressを動かしてみた

皆さんいろいろと苦労されているようですね。

GoogleAppEngine(GAE)でWordPressを動かす手順 – いろいろ試行錯誤

takahara氏にはいつもお世話になっています。

Google App Engine (GAE)でPHPもMySqlを使えるようになったことでWrodPressが使えるよw …

 


*本ページ内に記載されされた各社ブランド、サービス名、商標、登録商標については、
各社ブランドのロゴや商標等に関する帰属についてをご確認ください


最後までお読みいただきありがとうございました。

アイキャッチ画像に利用させて頂いております、各社ブランドのロゴやシンボルに関しては、
各社ブランドのロゴや商標等に関する帰属についてをご確認頂けますようお願い致します。

AdMax Promotion

ブログ記事のご紹介
すべて展開 | すべて省略

Rakuten Promotion

ページ
すべて展開 | すべて省略

 - Google App Engine, WordPress

  関連記事

eye_wordpress
wordpressの投稿で「続きを読む(read more)」を表示する方法

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_wordpress
WordPressの独自ショートコード埋め込みにJavaScript外部ファイルを指定する

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_wordpress
08.カルーセル-Jetpack by WordPress.com

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_wordpress
WordPress4.0以降のサイトの言語変更による日本語化

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_wordpress
Jetpack by WordPress.comはユーザーごとに連携が必要

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_digg
Digg™への共有をJetpack by WordPress.comで行う動作

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_wordpress
印刷をJetpack by WordPress.comで行う動作

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_wordpress
12.一括検索-Jetpack by WordPress.com

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_wordpress
11.VaultPress™-Jetpack by WordPress.com

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_wordpress
wordpressがエラーとなった場合に最初に確認すべきこと

Google or AdMax Promotion(it) 禁断の機能がau公式 …