GAEでWordPressを運用する上でつまづいたところ

参考資料

WordPressをGAEにデプロイする方法は英語記事ですが公式のものがあり、これを参照するのが良いと思います。

Run WordPress on Google App Engine standard environment

Cloud Storageにアップロードされたファイルのフォルダ構造

WordPressからファイルをアップロードすると1/2019/11/xxxx.jpgのようにWordPressで設定したフォルダ構造の前に1というフォルダが作られます。
この数字は何かというと、get_current_blog_id()で返却される値です。
マルチブログ機能に対応するためのもので、復数ブログを運用することを想定されているようです。

デプロイするファイル

ローカルで開発してそのままデプロイするとwp-content/uploads/など不要なファイルもデプロイしてしまいます。
基本的にWordPress用の.gitignoreで除外されているファイルはアップロードされるべきではありません。
GAEにデプロイするとき除外するファイルを指定する.gcloudignoreにこれらのファイルを含めても良いですが、デプロイするときに最新のファイルをcloneしてきてそれをデプロイした方が安全な気がします。
その上で.gcloudignoreは以下のように私はしています。

1
2
3
4
5
6
7
.gcloudignore
.DS_Store
app.yaml
cron.yaml
dispatch.yaml
.git
.gitignore

デプロイ用のシェルは以下のようにしています。
最新だけcloneしてきて、デプロイして、消すという手順です。

1
2
3
4
5
git clone --depth 1 git@github.com:kido0617/xxxxxxx.git
cd xxxxxxx
gcloud app deploy app.yaml cron.yaml
cd ../
rm -rf xxxxxx

siteamp.xmlが読めない

Google XML Sitemapsプラグインを使用しているのですが、/sitemap.xmlにアクセスするとParse error: syntax error,でアクセスできず。
GAE上でファイルは動的に生成できないのでその関係かと思いましたが、このプラグインは動的に生成はしていないようです。
結果はshort_open_tagがOnでxmlが読み込めていないのが原因でした。
php.iniにshort_open_tag = Offを追加して解決しました。

WordPressカテゴリの記事