いきなり fc2 ブログがソースを OSS として公開したらしいので Nginx + php-fpm で動かしてみました。
fc2blog/blog
実際に動かしてみたサイトがこれ
test.dogmap.jp
いきなり fc2 ブログがソースを OSS として公開したらしいので Nginx + php-fpm で動かしてみました。
fc2blog/blog
実際に動かしてみたサイトがこれ
test.dogmap.jp
動画ファイルの配信だけ Web サーバ本体では無くて、別のサーバから配信したいけど WordPress とかいじりたくなかったので Nginx だけいじって対応しましたよってお話です。
いわゆるオレオレCDN( Nginxを使ったオレオレCDNの構築 )ですな。
構成的には上図のようになります。
要望的には html とか css, js, なんかは web サーバから配信したいんだけど、ネットワーク帯域を消費しまくる動画ファイル ( mp4, webm, ogv, flv… ) だけは別サーバで配信したい。
素早く対応したいから WordPress のプラグインとか作らないで、Nginx の設定だけで済ませたいって感じです。
どうやって実現したかというと…
続きを読む
気がついたら 1, 2 月はブログ書いてませんでした。
Amazon Linux 上の suexec のホームディレクトリを変更したくて rpm のソース取ってこようとしたんだけど yumdownloader
でソースを取って来ることができなかったんで、自分用のメモ。
Amazon Linux で rpm のソースを取ってくるには yumdownloader
ではなくて get_reference_source
コマンドを使うんですってよ奥さん。
参考: SIOS "OSSよろず" ブログ出張所: ソースの入手と再ビルド ~ Amazon Linux AMI (EC2) 編
注意: 上記 URL だと --aws-account-id=XXXX-XXXX-XXXX
っていうパラメータが必要って書いてあるけど、いまは要らないようです。
以下、手順
続きを読む
WordPress の管理画面を IP アドレスで制限することは Brute Force Attack に対して有効です。
たとえば Nginx を使っている場合、以下のような設定で許可された IP アドレス以外からのログインを拒否することができます。
server { location /wp-admin { allow 192.168.0.1; deny all; : } location = /wp-admin/admin-ajax.php { allow all; : } location = /wp-login.php { allow 192.168.0.1; deny all; : } }
また、IP アドレスによるログイン制限を行うプラグインもいくつかあるようです。
ただし、これらの方法だとリバースプロキシ配下のサーバの場合、期待した動作になりません。
# リバースプロキシサーバからは、実際にアクセスしてきたクライアントの IP アドレスは http ヘッダ X-Forwarded-For にセットされて来るため
そこで、簡単な PHP スクリプトを書いて対応しました。
続きを読む
WordPress で DB サーバを分散処理したいとか思ったことありませんか?
以前、MariaDB Galera Cluster を使って DB サーバをクラスター構成にする方法を解説しました。
しかし、ここではもっと簡単に MySQL のマスター/スレーブ構成によるレプリケーション機能を使って読み込み先と書き込み先の DB を分ける手法について解説します。
Amazon RDS のリードレプリカ機能を使えば、WordPress のプラグイン(正確にはドロップイン)を設置して、ちょっと設定するだけですが、ここでは一応 MySQL でマスター/スレーブ構成のレプリケーションする方法についても解説します。
構成は、上のアイキャッチのような感じです。
続きを読む
Vagrant 流行ってますね。
ローカル環境での WordPress の開発でも使用できるので、どんどん使用しましょう。
WordPress のローカル環境で Vagrant を使うのであれば 10up 社が提供してくれている Varying Vagrant Vagrants (VVV) を利用するのが便利です。
インストールするには、以下の URL を参考にすれば良いんですが、ついでなんでやりかた書いておきます。
10up/varying-vagrant-vagrants
前提として git が使用できるようになってないと何もできません。
Mac 環境であれば Xcode 入れて、Homebrew 入れて brew install git して git をインストールしておきましょう。
インストール方法は、そこら中に書いてあるので、ここでは割愛します。
Xcode インストールしただけでも git が付属していますが、Xcode 同梱の git は ver.1.7.x系と古いので、brew から git をインストールした方が幸せになれます。
私の作ったプラグイン「Google Maps Anywhere」はメンテナンスを停止しています。
Google Maps API ver.2 までしか対応していないため、ver.3 に対応した「Simple Map」プラグインへの移行をお勧めします。
Simple Map の説明については、みやさんのブログを参考にしてください。
Simple Map – 超簡単&スマフォ対応のGoogle Map | firegoby
この二つのプラグインはショートコードで Google Maps を表示するという同機能を持っています。
パラメータに着いても互換性がありますが、ショートコードタグが異なりますので、過去記事に Google Maps Anywhere で埋め込まれたショートコードを書き換えてあげる必要があります。
続きを読む
WordPress 3.6.1 が出たので、記念に wp-cli の紹介。(なんの記念だ)
wp-cli は、WordPress への各種の操作(本体のインストール・アップデートから plugin、theme のインストール・アップデートまで、すべてのことが!)をコマンドラインから行えるようにするツールです。
# curl https://raw.github.com/wp-cli/wp-cli.github.com/master/installer.sh | bash
これだけで ~/.wp-cli/bin/wp というコマンドが使えるようになります。
wp-cli が正常にインストールできたか確認するには、以下のコマンドで確認できます。
# ~/.wp-cli/bin/wp --info PHP binary: /usr/bin/php PHP version: 5.4.19 php.ini used: /etc/php.ini WP-CLI root: /root/.wp-cli/vendor/wp-cli/wp-cli WP-CLI config: WP-CLI version: 0.11.2
インストール後にディレクトリ名つけないで使えるように .bash_profile 等を修正して PATH を通してあげてください。
PATH=${PATH}:${HOME}/.wp-cli/bin
タイトルで言い切ってますが…
WordPress のフィードで表示件数をダッシュボードで入力された値では無く、他の値に変更しようとしてハマったのでシェア。
通常 WordPress で表示件数を変更する場合は、pre_get_posts アクションフックを使って以下のように posts_per_page オプションを指定してやります。
codex にも書いてあるので、これで安心のはずです。
<?php function my_pre_get_posts( $query ) { if ( is_admin() || ! $query->is_main_query() ) return; if ( is_home() ) { // Display only 1 post for the original blog archive $query->set( 'posts_per_page', 1 ); } } add_action( 'pre_get_posts', 'my_pre_get_posts', 1 );
これをフィードの時にのみ変更しようとして、以下のようなコードを書いたけど、期待通りに表示件数が変更されませんでした。
<?php function my_pre_get_posts_for_feed( $query ) { if ( is_admin() || ! $query->is_main_query() ) return; if ( is_feed() ) { // Display 50 posts for the feed $query->set( 'posts_per_page', 50 ); } } add_action( 'pre_get_posts', 'my_pre_get_posts_for_feed', 1 );