WordPress の前段に CloudFront を配置する ( AMIMOTO Advent Calendar 2015 12日目 )

AMIMOTO Advent Calendar の12日目です。
アイキャッチ画像は Cloudcraft で作ってみました。カコイイ!

WordPress の前段に CloudFront を置きたいことってありますよね。
そんな時、以下の様な問題に直面するかと思われます。

  • ログイン時はプレビュー画面とか、即座に変わるようにキャッシュさせたくない
  • Nginx のログファイルに CloudFront の IP アドレスではなく、アクセスしてきた PC の IP アドレスを記録したい
  • モバイル版とPC版でテーマを切り替えたいんだけど
  • publish したときにちゃんと反映されるようにキャッシュ消したい

今日は、これらのお悩みを解決しちゃおうかなって感じです。
続きを読む

Let’s Encrypt でお手軽にSSL証明書を取得する ( AMIMOTO Advent Calendar 2015 5日目 )

AMIMOTO Advent Calendar の5日目です。
なんか、ほんのちょっと前の記事が wp-cli Advent Calendar 2014 ですね。
月日がたつのは早いもんだ。

HTTP/2の登場で、俄然注目を浴びてきたSSL証明書ですが、個人で導入しようとするといろいろとハードル高いのも事実です。
いままでは、プライベートキー作って、そのプライベートキーから CSR 作成して、CSR を認証局に提出して、認証局に対するドメイン保持証明をして、認証されたら送られてきたSSL証明書を Web サーバに設定して.
しかも、結構お高い( まぁ、年間2,000円くらいの物もありますが)

しかし、そんな僕らの悩みを解決してくれる無料でトンデモなく簡単にSSL証明書を取得できるサービスがついに開始されました!
その名も Let's Encrypt !

Let's Encrypt を使って dogmap.jp の SSL 証明書取得して HTTP/2 対応したんですが、これがびっくりぽんなくらい簡単だったんで紹介します。
参考URL: DockerでLet’s Encryptしよっか @sawanoboly
続きを読む

lsyncd でファイル変更監視して、S3にアップロードする

WordPress のメディアファイルを自動でバックアップしたり、CloudFront のオリジンにするために wp-content/uploads/ の中身を S3 にアップロードするようにしたいなぁとか言う要望が結構あります。
特に AutoScaling 構成にする場合は、ソースファイルについては git リポジトリなどで管理すればいいですが、ダッシュボードからアップロードされるメディアファイルについては git リポジトリに含めるわけに行かないっすよね。
そんな時、僕の作ったプラグイン絡新婦とか、Amazon S3 for WordPress with CloudFrontとか使うわけですが、なんと 4.3.x 系ではちゃんと動かないような気がするんです

まぁ、僕が絡新婦をメンテナンスすればいいのですが、最近 php プログラム書くの辛いので代替手段として lsyncd でファイル変更を監視して S3 に自動アップロードするようにしてみました。
参考URL: lsyncdをrsync以外の用途で使う – Qiita

続きを読む

AWS WAF で CloudFront 環境にIPアドレス制限を設定する

本番環境で CloudFront を使用しているため、ステージング環境でも CloudFront を適用したいとかって要望は多々あると思います。
ただ、ステージング環境なんで全体に公開はしたくない、IPアドレス制限とかかけたいってなりますよね。
そんな時、今までは署名付きURLとか署名付き Cookie とかで対応せざるを得ませんでした。

参考URL

結構、めんどくさい。

そんな、僕達のために re:Invent 2015 に合わせるように発表された新サービス AWS WAF という救世主が現れましたよ。
この記事では AWS WAF を使用して、IP アドレス制限された CloudFront ネットワークを作成する方法をざっくり解説してみます。

続きを読む

自作プラグインに追加した wp-cli コマンドの出力結果を整形しよう ( WP-CLI Advent Calendar 2014 18日目 )

WP-CLIアドベントカレンダーの18日目です。
昨日は @tecking さんの「ひっくり返るくらい超絶便利な wp media regenerate」でした。
今回は前回の続きです。

前回 wp-cli 対応させる方法について説明しましたが、一点出力フォーマットについて触れていませんでした。
てことで、今回はそのへんについて

続きを読む

自作のプラグインに wp-cli コマンドを追加しよう ( WP-CLI Advent Calendar 2014 11日目 )

WP-CLIアドベントカレンダーの11日目です。
昨日は @tecking さんの「bashかわいいよbash-さくらのレンタルサーバでも『WP-CLI』の入力補完機能を」でした。
今回は、自作のプラグインに wp-cli 用のコマンドを追加する方法についてです。
最近、Theme Check プラグインを wp-cli 対応させるコードを書いてプルリクした(まだ、マージされてない)ので、それを元に解説します。
wokamoto/theme-check

実際に追加したのは theme-check.php の下3行と、wp-cli.php です。
続きを読む

Chef で wp-cli を管理するためのレシピ ( WP-CLI Advent Calendar 2014 4日目 )

WP-CLIアドベントカレンダーの4日目です。
昨日は @tecking さんの「レンタルサーバに『WP-CLI』をサクっと入れるシェルスクリプト作ってみたよ」でした。
てわけで、今回の僕の記事はインフラ自動化フレームワーク Chef用の wp-cli レシピについて解説します。
Chef ってなんなの?って人はおググりください。
要するにインフラの構成管理を自動化するためのツールです。

wp-cli のインストールは通常公式サイトにもあるように github で公開されているリポジトリから wp-cli.phar を取ってきて実行権限を与え、パスが通っているところに置いてあげます。

$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
$ chmod +x wp-cli.phar
$ sudo mv wp-cli.phar /usr/local/bin/wp

ただ、これだと wp-cli のアップデートがあった時に再度手動でダウンロードして置き換えてあげないといけません。
めんどくせーですよね。
そんなわけで Chef の登場です。この github リポジトリを clone して適切にアップデートできるようにレシピを書いてあげましょう。
続きを読む

WordPress JSON REST API に独自の endpoint を追加する

先日、参加してきた WordCamp San Francisco 2014 でも話題になってた WP JSON REST API に独自の endpoint を追加する方法です。
# WordCamp San Francisco とか WordCamp Kansai とかのイベントにも参加してるんですけど、ブログ書いてないすいません

まず WP REST API とは、なんぞやって話ですが
これは、WordPress Ver.4.1 もしくはそれ以降のバージョンで本体に組み込まれる予定の機能です。
現在はプラグインとして提供されていますので、これをインストールすることで利用できるようになります。
WordPress › JSON REST API (WP API) « WordPress Plugins
この API を使うことで、WordPress に関するありとあらゆる操作が REST API 化され、結果が JSON で返ってきます。
例えば、この投稿に関する情報は以下の URL から取得できます。
https://dogmap.jp/wp-json/posts/3136

この API に対して独自の endpoint を追加する方法について解説します。
詳しいことは、以下の URL を参照してください。
Extending the API – WP REST API Documentation
続きを読む

WordPress プロフェッショナル養成読本

WordPress プロフェッショナル養成読本」という本を、@naokomcさん、@428designさん、@masatoshisomeyaさんとかと一緒に書きました。
と言っても、例のごとく出版社の人とは一度も会ったこと無いんですけどね。
もっぱら、やりとりはメールか Facebook だけ。現行の入稿も技評さんの GitLab サーバへの push で送るというリモートワークっぷり。
まったく良い時代になったもんです。
WordCamp Tokyo 2014 の会場内で先行販売されるようですので、そちらに行く予定のある人はぜひー

さて、僕が書いたのは第6章「WordPress ユーザのための Nginx 入門」って所です。
仕事でよく使う Nginx をネタにしてインストールから設定まで、はじめて Nginx 触る人でもなんとか WordPress を動かせるようにするところまではサポートしてるはずです。
(若干、駆け足気味ですが)

以下、僕の章の目次

  • Nginx とは? – Nginx のサーバ構成や特徴
  • Nginx で WordPress を利用するには – インストールと設定
  • Nginx の設定(基本編) – WordPress の運用に役立つ
  • Nginx の設定(応用編) – リバースプロキシ、ロードバランサ

続きを読む

BASHの脆弱性でCGIモードで動いてるPHPにアレさせてみました

タイトルはパクリ
元記事: BASHの脆弱性でCGIスクリプトにアレさせてみました – ブログ – ワルブリックス株式会社

sakura のレンタルサーバが cgi モードで php 動かしてるよなーと思ってテストしてみたらできました。
# テストスクリプトは削除済みです。
続きを読む