pecl_http を Mac OS X Leopard のApache で使うために大切なこと
PEAR やPECL のインストールは適当にぐぐればおk。
PHP 5.2 以上の場合には go-pear.phar を使うことに注意。
sudo pecl install pecl_http のあとに
php.ini の extension_dir と extension を編集。
php -m することでモジュールの読み込みを確認できるが、
Apache httpd の再起動時にエラーログが吐かれる。
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-20060613/http.so' - (null) in Unknown on line 0
10.5: Install tips for PHP's pecl_http on 64-bit Intel Macs - Mac OS X Hints
に書かれているとおり /System/Library/LaunchDaemons/org.apache.httpd.plist を修正することで
Apache は32bit モードで起動され、pecl_http をロードできるようになる。
さくらVPS と Linode を比較する
さくらインターネットの田中邦裕様が 格安の低価格VPSを比較する - さくらインターネット創業日記 というエントリを書かれていたので、
(さくらVPS への移行を検討していたのにうっかり継続契約してしまった)Linode との比較をしてみる。
プラン名 | さくらのVPS | Linode | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
512 | 1G | 1.5G | 4G | 8G | 512 | 768 | 1024 | 1536 | 2048 | 4096 | 8GB | ||
初期費用(円) | 0 | 2,980 | 4,980 | 9,980 | 19,980 | $0 | $0 | $0 | $0 | $0 | $0 | $0 | |
月額(円) | 980 | 1,480 | 1,980 | 3,980 | 7,980 | $19.95 | $29.95 | $39.95 | $59.95 | $79.95 | $159.95 | $319.95 | |
年払い割引 | 1か月分割引 | 10% discount(2年契約で15% discount) | |||||||||||
試用期間 | 2週間 | 記載なし | |||||||||||
メモリ容量 | 512MB | 1GB | 1.5GB | 4GB | 8GB | 512MB | 768MB | 1GB | 1.5GB | 2GB | 4GB | 8GB | |
HDD容量 | 20GB | 30GB | 50GB | 120GB | 240GB | 16GB | 24GB | 32GB | 48GB | 64GB | 128GB | 256GB | |
SWAP設定 | ○ | ○ | |||||||||||
リモート コンソール | ○ | ○ | |||||||||||
固定IP | v4 | ○ | ○ | ||||||||||
v6 | × | × | |||||||||||
追加IP | × | ○ 月額$1.00 | |||||||||||
IP逆引き | ○ | ○ | |||||||||||
仮想化プラットフォーム | KVM完全仮想化 | Xen完全仮想化 | |||||||||||
OS | CentOS | ○ | ○ | ||||||||||
Debian | ○ | ○ | |||||||||||
Ubuntu | ○ | ○ | |||||||||||
Fedora | ○ | ○ | |||||||||||
FreeBSD | ○ | × | |||||||||||
現在のキャンペーン | |||||||||||||
その他 | 試用期間中は2Mbps制限 試用期間中はOP25Bあり | プランごとに転送量の上限あり メモリ、HDD、転送量の上限は料金を支払うことで「個別に」追加、増設可能 |
※ Linode では最大でメモリ20GB までのプランを用意しているが、さくらVPS にあわせた形とする。
プラン名 | さくらのVPS | Linode | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
512 | 1G | 1.5G | 4G | 8G | 512 | 768 | 1024 | 1536 | 2048 | 4096 | 8GB | ||
年間の利用額(円) | 10,780 | 19,260 | 26,760 | 53,760 | 107,760 | $215.46 | $323.46 | $431.46 | $647.46 | $863.46 | $1727.46 | $3455.46 | |
メモリ1MBあたり(円) | 21.0 | 18.8 | 17.4 | 13.1 | 13.2 | $0.42 | $0.42 | $0.42 | $0.42 | $0.42 | $0.42 | $0.42 | |
HDD 1GBあたり(円) | 539.0 | 642.0 | 535.2 | 448.0 | 449.0 | $13.46 | $13.47 | $13.48 | $13.48 | $13.49 | $13.49 | $13.49 |
見て分かるとおり、上位プランを使ってもメモリやHDD の単価はほぼ変わらない。
ライトユーザからすると安心して下位プランを選択できるが、上位プランを選ぶ人は……。
また、私の契約している512 プランで unixbench を行ったところ、スコアは1223.8だった。
※ スコアに大きな影響は与えていないと思うが、いくつかのサービスが稼動している。
さくらVPS(980)は1200〜1500 なので、ほぼ同じくらいということにしておこう。
コストパフォーマンスではさくらVPS、 柔軟なカスタマイズや8GB を超えるメモリが必要ならばLinode と言ったところだろうか。
※ 単純なマシンスペック以外の付加サービスについては、さくらVPS 側を調べていないので比較していない点に注意。
http://twitter.com/#!/kunihirotanaka/status/42367374313271296 とのご質問をいただいたので
さくらVPS についても簡単ではあるが調査を行って比較した。
# 5分探してなかった機能、サービスは×としているので、誤っている場合はご指摘いただきたい。
プラン名 | さくらのVPS | Linode |
---|---|---|
HDD, メモリの増設 | × | ○ |
リサイズ(運用開始後のプラン移行) | × | ○ |
ネームサーバ | △ (別途契約) | ○ |
ディスククローン | × | ○ |
IP フェイルオーバー | × | ○ |
バックアップサービス | × | ○ (有償) |
その他、Linode では Linode - Cloud Servers といった機能やサービスを利用できる。
# ネームサーバはドメイン取得代行業者から無償で提供されていることが多いので特に困らないが、一応。
表だけで比較すると、さくらVPSェ……となってしまうかもしれないが、
ターゲットとするユーザ層や、価格が違うので仕方ないという面もある(さくらVPS は格安が売りなのだ)。
# ディスククローンやIP フェイルオーバーを必要とするユーザが果たしてどれだけいるだろうか。
# 高可用性を求められる小中規模の商用利用ならばLinode のほうがよいのかもしれない。
ただし、柔軟なスペックの変更やバックアップサービス(専用サーバにはある)は
間違いなくユーザの利便性の向上につながるので、ぜひご検討いただきたい。
また、Linode は海外にデータセンタがある点などについても留意しなければならない。
この点については、 のFAQ や、
2ch の を参考にしていただきたい。
さて、そもそも私がLinode を利用し始めた理由は、当時の日本には海外と比較して
まともなVPS を提供する企業がなかったためである。
が、私のようなライトユーザにとっては、さくらVPS は十分に検討対象となり得るし、
欲しい機能があればTwitter を使って社長に直接意見を言うことで「やりましょう!」と
なるかもしれない。
今後のさくらVPS のさらなる機能の拡張、サービスの展開に期待したい。
最後にこっそりと、referral code とreferral URL を載せておく。
code : 4375366bd5f28af0004c7e7d82f5607cd7df1993
URL : http://www.linode.com/?r=4375366bd5f28af0004c7e7d82f5607cd7df1993
モバイルSuica が有効期限切れで使えなくなったときの対処法
先日、札幌のファミリーマートでモバイルSuica を使って買い物をしようとしたところ、
「カード有効期限異常 エラーコード:69」というエラーに遭遇して、家まで財布を取りに帰る羽目になった。
Google で検索してみると、以下のようなページに突き当たった。
しかたなく家に帰って調べてみるとSuicaを半年間使わないと勝手にロックがかかって、
チャージも使うことも出来なくなってしまうようです。
そんなこと どこにも書いてなかったような気がします(おいらが気付かなかっただけか?)。
ロックを解除してもらうには近くのJRの駅に持って行かないとダメみたい。
札幌に住んでいる身としては、ロックの解除のためにJR東日本管轄の駅まで行くのは
正直厳しいものがあったので、ほかに解除する方法がないのかモバイルSuica コールセンター(048-645-7007)に
連絡をして確認してみたので、結果を以下にまとめる。
まず、モバイルSuica に有効期限があることについて、どこに記載されているのか教えてもらった。
(Suica電子マネーが利用できない場合)
第6条 利用者には、以下の各号に定める場合においては、第4条に基づくご利用ができないことをあらかじめご承認いただきます。(snip)
(5) ICカード等の発行事業者の定めるものに加えて、Suica電子マネーの利用又はSuica電子マネーのチャージのいずれかの取扱いを行った日の翌日を起算として、当社の定める一定期間これらの取り扱いが行われなかった場合。ただし、発行者が別に定めるところにより発行する記名人式のICカード等に限ります。
(snip)
と、これだけである。一定期間が具体的に半年であるとか
利用できなくなった場合にどうすればいいのかということについては記されていない。
で、本題の解除方法だが、具体的に以下のとおりである。
基本的にはICチップの情報を書き換える操作を行うことでロックを解除できる。
- (Kitaca が利用できる)改札を通る
ロックされている状態でも改札を通過することはできるらしい。
JR東日本の改札の場合は、有人での対応となるため
みどりの窓口などでICチップの情報の書き換えをしてもらう。
- クレジットカードによるチャージを行う
- コールセンターに連絡して、再発行してもらう
連絡をした翌日5時にICチップのデータの書き換えが行われるのでアプリから操作を行う
最後に、コールセンターで対応してくださった方に、これらの対処方法を
ホームページに載せていただけるようお願いしておいたので、
もしかしたらそのうち公式サイトでも公開されるかもしれない。
Google Chrome で導入した拡張一覧
Firefox が重くなってきたので、普段使い用にGoogle Chrome を導入してみた。
素のままじゃとても使えないので、導入した拡張をまとめてみる。
Firebug は入れていない。必要なときはFirefox を起動する。
dat 落ちしたスレをmimizun などから探して自動変換
広告ブロック
Amazon のCD ジャケット画像をダウンロード
Gmail の広告削除、フッタ削除、選択メールのハイライト
livedoor Reader で全文取得
Migemo サーバ(後述のMigemoFindInPage に必要)
Exif 表示
livedoor Reader で、fc2 などリファラをチェックしてるサイトの画像表示
Google Mail 新着チェック
livedoor Reader から開いたページをバックグラウンドのタブ化
Migemo でページ内検索
livedoor Reader のフィードにはてなブックマーク数とlivedoor クリップ数を表示
マウスジェスチャ(右クリックメニューの表示がダブルクリックになる)
# Chrome Gestures のMac 版はうまく動作しない
スクロールを滑らかにする(気がする)
任意のサイトにユーザスタイルシート適用
最近閉じたタブ、関連するタブの表示
はてなブックマークに関するいろいろ
ニコニコ動画の動画ダウンロード
EC2 カスタマイズAMI 関連コマンドまとめ
AMI の作成*1
ec2-bundle-vol -d /mnt --privatekey /mnt/pk-XXXXX.pem --cert /mnt/cert-XXXXX.pem --user <アカウントナンバー>
AMI のアップロード
ec2-upload-bundle --bucket <バケット名>*2 --manifest image.manifest.xml --access-key <アクセスキー> --secret-key <シークレットキー>
AMI の登録
ec2-register <バケット名>/image.manifest.xml
AMI の登録解除
ec2-deregister
AMI の削除
ec2-delete-bundle --bucket <バケット名> --manifest image.manifest.xml --access-key <アクセスキー> --secret-key <シークレットキー>
mobirc とmod_proxy を連携させる
mobirc を使うためにport 5678 を空けるのはださいので
mod_proxy と組み合わせるための備忘録。
mod_proxy と組み合わせたときの問題点として以下が挙がった。
ぐぐっても情報が出ないのだが、私の環境だけなのだろうか。
仕方ないのでApache のRequestHeader を使ってmobirc にケータイのリモートアドレスを渡し、
それを使ってIP アドレスチェックをするようにした。
httpd.conf
RequestHeader set X_FORWARDED_FOR %{Remote_Addr}e ProxyPass / http://127.0.0.1:5678/ ProxyPassReverse / http://127.0.0.1:5678/
mobirc/extlib/HTTP/Session/State/MobileAttributeID.pm
if ($self->check_ip) { # my $ip = $ENV{REMOTE_ADDR} || $req->address || die "cannot get address"; my @forwarded_for = $req->headers->header('X_FORWARDED_FOR'); my $ip = $forwarded_for[1] || $req->address || die "cannot get address"; if (!$ma->isa_cidr($ip)) { die "SECURITY: invalid ip($ip, $ma, $user_id)"; } }
mobirc/lib/App/Mobirc/Web/C/Account.pm
# if ($ma->isa_cidr(req->address)) { my @forwarded_for = req->headers->header('X_FORWARDED_FOR'); if ($ma->isa_cidr($forwarded_for[1])) { session->set('authorized', 1); return redirect('/'); } else { return redirect('/account/login?invalid_cidr=1'); }
mobirc/extlib/HTTP/Session/State/MobileAgentID.pm にも類似の箇所があったのだが
こちらは修正しなくても今のところ問題が出ていないので放置している。
これでIP アドレスのチェックをパスできるが、チャンネルに入ろうとすると
Can't locate object method "is_foma" via package "HTTP::MobileAttribute::Agent::DoCoMo" at /path/to/mobirc/lib/App/Mobirc/Pictogram.pm line 53.
と怒られる。自分しか使わないので
mobirc/lib/App/Mobirc/Pictogram.pm
if ($ma->is_docomo) { # if ($ma->is_foma) { 'I.uni' # } else { # 'I.sjis' # }
ちなみに、FOMA から利用するときはURL にguid=ON を付けなくてはいけないのも注意。
mod_rewrite とmod_asis を使って任意のステータスコードを返す
あるディレクトリ以下に限り、存在しないファイルにリクエストされたときに
404 ではなく204 を返す必要があったので以下のような設定をした。
.htaccess の場合
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^.*$ /path/to/204.asis
httpd.conf の場合
RewriteEngine On RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f RewriteRule ^/path/to/.*$ /path/to/204.asis
204.asis
Status: 204 No Content Content-type: text/html
mod_asisを使うと、ステータスコードも含めてテキストに書いたままの内容で
ブラウザにレスポンスが送信される。
204.asis の下に改行を二つ入れているのはそのため。
はじめはmod_asis の存在を知らず以下のようなCGI をでっち上げていた。
204.cgi
#!/usr/bin/perl use strict; print "Status: 204 No Content\n"; print "Content-Type: text/plain\n\n"; __END__
IRC でアドバイスをくれたhasegaw blog の中の人に感謝(2回目)。