このサーバのフロントエンドをapacheからnginxに入れ替えた。
passenger経由で動かしていたredmineがとても遅いというクレームがあったのと、最近apacheいじってなくて設定にちょっと不安が出てきたので。つーかnginxのが設定項目が少なくて楽だし。
参考にしたのはここここここ。init scriptとかまんまコピペですいません。

More »

WP Rails Authenticateに手を加える過程で便利だったのが、FIrebugのプラグインFirePHP。php内でデバッグログを出力させてFirebugのコンソールに表示することができる。ちょっとしたプラグインの改造にはとても便利。
ライブラリは直接埋め込んでもいいが、WordpressならSimple WP FirePHPというプラグインがあるので、これを入れるだけでいい。
で、プラグインの適当な所に

FB::group('group one');
FB::log($object, 'some object data');
FB::groupEnd();

とか埋め込んでやればFirebugに表示される。文字列だけではなく、配列だのハッシュだのを放り込んでも適当に整形してくれる(rubyのppっぽく)。なお、groupは表示を分けてくれるだけなので無くても良い。
ついでに、cookieの内容が見れるFireCookieなんてのもある。全くFirebug様々です。しかしあのGっぽいアイコンだけはどうにかならないものか…

懲りずにRailsとWodpressの認証を結合する試みの続き。
integration apiを使って一定の成功は見たものの、実はdevelopment環境(cookieセッション)でしか動かなかった。production環境はmemcachedセッションを採用しているが、integration apiはcookieセッションとActiveRecordセッションにしか対応してない。memcachedセッションに対応させようと色々やってみたが挫折した。遺憾ながらこの手は放棄するッ!
と言うわけでもう一つのプラグイン、WP Rails Authenticateを使ってみることにした。

More »

RailsとWordPressをシングルサインオンで繋ぐIntegration APIというプラグインがあるらしい。
MOONGIFTさんの記事を見てから一度使ってみたいと思ってたんだけど、使えそうな案件があったので試してみた。
簡単に仕組みを説明すると、Rails側にセッションと認証情報を提供するAPIを用意し、WordpressのプラグインからJSONで認証情報を貰ってくるというもの。APIはcookie名やログインURLを提供するconfg_infoと、cookieを認証情報にデコードするuserの二種類しかないシンプルなもの。

ところが、記事中のサイトが既にドメインごとなくなっていていきなりつまづく。ええええ…
githubを探し回ると、gravis’s integration_apiが見つかった。こ、これかな。
ちなみにWordpressのプラグインの方はRails Integration APIという名前で公式からダウンロードできる。
既にこの時点で「メンテナンスされてないんじゃないか」という疑念が走るが、まぁ実験ということでとりあえず使ってみる。(と言うか既に手段が目的化しているのであった)

More »

WordPressで作ったブログを非公開にする方法。
(もちろんこのブログではやってません)
とりあえず.htaccessでBASIC認証にしてみたが、この方法だとフラッシュアップローダが使えないという制約がある(ブラウザによってはフリーズしてしまう)。
というわけでもう少しスマートに、Wordpressの認証を使うようにしてみる。
phpを直接書き換える方法もあるが、Registered Users Onlyというそのまんまなプラグインがあるので頼ることにした。
これをインストールすると、閲覧しようとしただけで認証を求めるようになる。
警告メッセージを日本語化するには、75行目の$errorの中身を書き換え…てしまったけど今みたらtemplate.poっていう国際化対応っぽいファイルがあった。こっちをいじった方がスマートかも知れない。まぁいっか。

ついでにTwitpressで更新情報をTwitterに投げるようにしたけど、ちゃんと動作するかな…しませんね。ちぇ。
追記。php5-curlをインストールしてapacheを再起動したら動作しました。

「すまーとふぉん」とかいうのがはやっているそうなので、このブログも対応してみました。
まぁ、WPTouchを入れただけなんだけどね。
iPod touchしか持ってないので動作確認はmobile safariのみです。

ついでにGoogleでホストされているjQueryを使う方法を参考に、テーマのヘッダ(header.php)に以下のコードを挿入。

<script src="http://www.google.com/jsapi"></script>
<script>
  google.load("jquery", "1.3.2");
  google.load("jqueryui", "1.7.1");
</script>

これでJQueryが使えるようになる。
JQueryを有効にすると、スマートフォン用ページの最後に自動的に「Load more entries」ボタンが付いて、古いエントリをたどれるようになる。
「Mobile Theme」スイッチに触れるとPC用ページに切り替えてくれる(あんま使わないと思うけど)。
ちなみに元に戻すボタンは表示されたPC用ページの一番下。

さらに、せっかくJQueryを入れたのでjQuery Lightboxプラグインを入れて画像表示をモーダルウィンドウにしてみました。
まぁ、あんま画像ないけど。

なんつーかいっつもハマるので(3回目くらい)メモ。

画像をアップロードした後、「小中大」などのサイズが選択できない(オリジナルサイズしか選べない)場合はphp-gdが入ってない。
FreeBSDでphp5の場合、/usr/ports/graphics/php5-gdをインストールすればOK。
今回は途中libpngで引っかかった(共有ライブラリpng.6が見つからないと出たが、これは以前のバージョンのlibpngが入っているためで、/usr/ports/graphics/pngをアップグレードするなりインストールし直すなりすればいい)。
なお、インストール後に/usr/local/etc/php/extensions.iniにextension=gd.soを追加しろと出てくるけど、portsで入れていれば自動的に追加されているはず。

ちなみに既にアップロードしたメディアはリサイズできないので(アップロードの時点でリサイズされているため)、php-gdを入れたらアップロードからやり直すべし。

外部ブログを使おうと思って色々見て回ったけど、自分で色々試したいので自前のサーバでWordPressを運用することにした。
と言うわけでプラグインを入れまくる。

まず、ソースを書いたりしたかったのでsyntax highlighter
http://wppluginsj.sourceforge.jp/syntax-highlighter/
入れてから気づいたけどLISPに対応してない。がーん。いや.emacsくらいしか書きませんけど。

誰も気づいてくれないと寂しくて死んじゃうのでGoogle XML Sitemap
http://www.arnebrachhold.de/redir/sitemap-home/

素敵な本を紹介したいので(棒読み)Amazon Widget Shortcodes
http://case.oncle-tom.net/code/wordpress/

実は使い方がよく分かってないので試しに貼ってみよう。

お、でけた。

最後にtwitterの公式ウィジェットをsidemenuに埋め込んで終わり。
→ウィジェットから「テキスト」で貼り付けるように変更。