2009年5月アーカイブ


Perl5.10以前ではPseudo-hashesを使っても「Pseudo-hashes are deprecated」とWarningが出るだけだったが、Perl5.10では使えなくなっている。Restricted hashesを使うように推奨されている。

もちろん、Pseudo-hashesは使わないほうがいいのだが、どうしてもという時がある。
その時は、Class::PseudoHash モジュールを使うとPseudo-hashesをPerl5.10でも使えることができる。みたい。。


参照:Pro Perl
通常root権限がないとCPANモジュールをインストールする時に権限がなくてエラーが発生する。
これを回避することができる。自分にフルアクセスがあるホームディレクトリに全部入れることができる。

perl -MCPAN -e shell

cpan[6]> o conf makepl_arg "LIB=~/perl/lib \
    > INSTALLMAN1DIR=~/perl/man/man1 \
    > INSTALLMAN3DIR=~/perl/man/man3"
    makepl_arg         [LIB=~/perl/lib INSTALLMAN1DIR=~/perl/man/man1 INSTALLMAN3DIR=~/perl/man/man3]
Please use 'o conf commit' to make the config permanent!
↑フルパスじゃないとダメみたい

cpan[3]> o conf makepl_arg "LIB=/mnt/nfs/home/tkobayashi/perl/lib \
    > PREFIX=/mnt/nfs/home/tkobayashi/perl \
    > INSTALLMAN1DIR=/mnt/nfs/home/tkobayashi/perl/man/man1 \
    > INSTALLMAN3DIR=/mnt/nfs/home/tkobayashi/perl/man/man3"
    makepl_arg         [LIB=/mnt/nfs/home/tkobayashi/perl/lib PREFIX=/mnt/nfs/home/tkobayashi/perl INSTALLMAN1DIR=/mnt/nfs/home/tkobayashi/perl/man/man1 INSTALLMAN3DIR=/mnt/nfs/home/tkobayashi/perl/man/man3]
Please use 'o conf commit' to make the config permanent!

↓これでちゃんと値が入力しているかチェック
cpan[5]> o conf makepl_arg
    makepl_arg         [LIB=/mnt/nfs/home/tkobayashi/perl/lib PREFIX=/mnt/nfs/home/tkobayashi/perl INSTALLMAN1DIR=/mnt/nfs/home/tkobayashi/perl/man/man1 INSTALLMAN3DIR=/mnt/nfs/home/tkobayashi/perl/man/man3]
Type 'o conf' to view all configuration items

この修正をコミットしておく
cpan[3]> o conf commit
commit: wrote '/mnt/nfs/home/tkobayashi/.cpan/CPAN/MyConfig.pm'
これだけだとインストール先のディレクトリがPerlのライブラリパスに含まれていないので、せっかくインストールしたモジュールが使えない。そこでPERL5LIBという環境変数を設定する。

export PERL5LIB=/mnt/nfs/home/tkobayashi/perl/lib:/mnt/nfs/home/tkobayashi/perl/lib/site_lib

.bash_profileなどにこの設定を書き込んでおくとそのユーザでは常に野良インストールしたモジュールが使えるようになる。逆に言えばこの設定を無効にすることで、いつでも元の環境に戻すことができる。
1.PUTTYGENを使って、「ec2-add-keypair gsg-keypair」で取得したkeyをコンバートする。
a. Load押してid_rsa-gsg-keypairファイルを選択。
b. 「Save private key」をクリックし、PUTTY用Keyファイルを作成する。
2.PUTTY.EXEを起動する。左メニュー「Connection」→「SSH」→「Auth」の「Authentication parameters」にある「Private key file authentication」にPUTTY用Keyファイルを設定する。
3.左メニュー「Session」の 「Host Name」にホスト名を入れ、「Open」をクリック。
4.コンソールが出てきたら、「root」を入力したら入れる
Elasticfox Firefox Extension for Amazon EC2を使ってEC2を操作してみる

1.ここからFirefoxのプラグインをインストール
http://developer.amazonwebservices.com/connect/entry.jspa?externalID=609

2.Firefoxのツールに新しく追加された「Elasticfox」をクリック
3.左上にある「Credentials」をクリック
4.「Account Name」、「AWS Access Key」、「AWS Secret Access Key」を入力し「Add」をクリックすると、アカウントが追加される。
5.「Credentials」タブの横にある↓(下矢印)をクリック。先ほど入力したAccount Nameが表示されるのでそれを選択すると「Machine Images(AMIs)」タブにたくさんの利用可能なAMIが表示される。

1.Amazon Web Servicesでアカウント作成する(amazon.comで登録済みだったらそのままでOK)
http://aws.amazon.com/

2.運用するサービスを選ぶ: Amazon EC2
Amazon Simple Storage Service も自動的に選択される(データ保存に必ず必要)

3.メールにAccess Identifiers(認証キー)へのリンクを送ってくれる。

コマンドプロンプトからコマンドを使用する方法
4.EC2 API Toolsをダウンロードする
これを使ってPCからインスタンスを起動したりコントロールする
参考:http://developer.amazonwebservices.com/connect/entry.jspa?externalID=351&categoryID=88

5.EC2 API Toolsをセットアップ
a. ダウンロードしたディレクトリをunzipしてc:\aws\ec2-api-tools という感じで置く
b. 環境変数設定をする
C:\> set EC2_HOME=<path-to-tools>
C:\> set  PATH=%PATH%;%EC2_HOME%\bin

参考:http://docs.amazonwebservices.com/AmazonEC2/gsg/2007-01-19/setting-up-your-tools.html#set-aes-home

6.認証情報をToolsに登録する
a. Amazon Web Servicesページに行ってX.509 Certificateを作成する
そしたらPrivate KeyファイルとX509認証書ファイルがダウンロードできるようになる。ダウンロードして、c:\aws\ec2\ に置いておく。
b. 環境変数設定をする
C:\> set EC2_PRIVATE_KEY=C:\aws\ec2\pk-<*****>.pem
C:\> set EC2_CERT=C:\aws\ec2\cert-<*****>.pem
*環境セットアップはここで終わり*

7.接続の確認
次のコマンドを入力し、いくつかのインスタンスが表示されれば、接続成功。
C:\>ec2-describe-images -o self -o amazon

8.SSH接続するためのKeypairの作成
C:\>ec2-add-keypair gsg-keypair
このときに出力されたキーをファイルとして保存しておこう。
-----BEGIN RSA PRIVATE KEY-----

-----END RSA PRIVATE KEY-----
Puttyなどで接続する際に必要になってくる。
コピーする時は上記のコメントも含める。
保存するファイル名は「id_rsa-gsg-keypair」。

9.インスタンスの起動
C:\>ec2-run-instances ami-25b6534c -k gsg-keypair
ami-25b6534c はFedora4Core、Apache 2.0、MySQL 4.1、PHP 5.0が入っている

10.インスタンスの状態の確認(How to Check the instance)
C:\>ec2-describe-instances <インスタンスID>

11.アクセス可能にするポートを開放
C:\>ec2-authorize default -p 22
C:\>ec2-authorize default -p 80

この時点でURLにアクセスしたらApacheテストページが出てくる

12.インスタンスを終了
CMD シャットダウン中
C:\>ec2-terminate-instances i-XXXXXXXX
INSTANCE i-71ee2318 running shutting-down

CMD シャットダウン完了
C:\>ec2-terminate-instances i-XXXXXXXX
INSTANCE i-71ee2318 terminated terminated


下記のコマンドはJSTとして表示してくれる
dateしてもUTCのまま。

tkobayashi@koba206:~$ zdump Japan
Japan  Tue May 19 22:33:59 2009 JST
tkobayashi@koba206:~$ date
Tue May 19 13:34:08 UTC 2009


サーバーのタイムゾーンをJapanに変更すれば、dateした時にJSTで表示してくれます。

root@koba206:/etc# ln -sf /usr/share/zoneinfo/Japan /etc/localtime
root@koba206:/etc# date
Tue May 19 22:41:23 JST 2009


先月に非公式iPhoneテンプレートfor MTを試してみたが、いくつか問題があり面倒だった。

最近Six Apartから公式プラグインがリリースされたみたいなので、早速使って入れてみた。
インストールの方法は超簡単。
ダウンロードした2つのディレクトリを mt-static/plugins/iMTと plugins/iMTに置くだけ。
iPhoneでアクセスすれば自動的にiPhone用のUIを表示してくれるので。
これはいい!


と思って使ってみたら、管理画面側だけiPhoneのインターフェースになるみたい。そりゃそうだよね。自動的にiPhoneからアクセスしてるかどうかを確認して、それようのページを表示するには静的ページじゃダメだもんな。残念><