Ubuntu LTS 8.0.4を使ってみた

Macのターミナルでほとんど用をなすので、Linuxに触らなくなってしまったのですが、Linuxディストリビューションも触っておこうということでUbuntuに手を出してみました。

Ubuntuにしたのは、セミナーで「Macじゃないノート型を持っているなと他人のパソコンを気にしていたら、Ubuntuだった」ということが最近多くなってきたから。久しぶりに使うLinuxとしていいかもしれないなと。

といっても、VMware用仮想マシンなんてものが配布されているので、ダウンロードからインストール(というかVMWare側の設定)まで10分もかからず。その後のアップデートとかVMWare Toolsのインストールのほうに手間取ったくらいです。

1CPU(MacBook Pro自体は2CPU)/メモリ512MBの環境でもサクサク動きます。

いろいろインストールしてみたんですが、Synapticパッケージマネージャを使って、ほとんどGUIで済んでしまった(何を入れればいいのかわからないと辛いけど)。今のところ、インストールしたのはこんな感じ。

・Flash Player
→ 最初、Adobeのサイトからダウンロードしようとして、うまくインストールできず。

・Apache2/MySQL/PHP
→PHPがSuhosin(Hardened PHPの)だった。

・Java(JRE)
→Selenium RCを使いたかったんです(最終的にはSelenium Gridを使いたい)。

Synapticパッケージマネージャは、APTのGUIフロントエンドらしいので、同様のことはapt-getコマンドでもできるはず。

Mac + MacPortsで十分実用的なんだけど、やっぱりUNIXとして使えるようにするまではそこそこ面倒。その点、UbuntuはGUIがMax OS Xほどじゃないけれど、UNIXとしては使いやすいような気がします。

PHPを使っていたら、XSLTProcessorクラスがない!とか言われて、慌ててphp5-xslを追加しなきゃいけなかったんですが、必要なものを追加していくというのも良いですよね。

EeePCみたいな用途なら(ブラウザでGoogle Appsを使って)、Ubuntuで十分かもしれない。

インストールメモはあるんで、あとでまとめるかも。


SSLで悩み中

Subversionのホスティングサービスを比較しようとしていたら、どうも使ってるMacBook ProのSSL接続が変なことに気づきました。

1.あるSubversionクライアントで接続すると、チェックアウトさえできない

信頼できない証明書だと、The certificate is not issued by a trusted authority.と出て、そのまま受け入れるかを聞いてくるはずなのですが、いきなりエラーになってしまうSubversionクライアントがありました。

この段階では、Subversionクライアントの作りが悪いなあと思っていたんですが、また別のところにも問題がありました。

2.ルート証明書が使われてない?

信頼できない証明書だと表示される接続先に、同じMacでもブラウザからは問題なく接続できるし、WindowsのブラウザやSubversionクライアントからもOK。

MacPortsでインストールしたwgetでも、デフォルトで入っているcurlでも証明書エラーが出ます。

ルート証明書が読み込まれてなくて、すべて信頼できない扱いになっている模様。

cURL – Extract CA Certs from Mozillaからcacert.pemをダウンロードして、

$ wget –ca-certificate=cacert.pem https;//〜

と証明書を指定してみたところ、接続できるようにはなりました。

3.LWPからは接続できる

MacPortsからインストールしたPerlからLWPでSSL接続したところ、特に問題なくつながりました。ということは、ルート証明書はどこかに入ってるということ?

で、今ここ。

いろいろググっているんですが、自前で証明書を発行する話題ばかりが引っかかってしまい、問題解決に至らず。OpenSSLの設定辺りを探ればいいんだろうか。うーむ。

どなたか手がかりでもいいんで、教えてくださーい。

<続報1>

MacPortsを入れていないMacで、curl https://〜とやってもらったところ、やはり証明書のエラーが出ました。

ということは、正常に動作するperlのLWPが特殊なのかな。wgetを入れたばかりのときはSSL接続もできた記憶があったんですが、勘違いだったのかも。

Technorati Tags: ,


VPSからレンタルサーバへ

去年の2月くらいから、アメリカにあるLinodeというVPSを使ってましたが、レンタルサーバのCORESERVER.JPに乗り換えてみました(このブログはtypepadなんで別です)。

Coreserver-1

LinodeはVPSなので、共用なんですが、専用サーバと同様にroot権限も使えます。UML(User-Mode Linux)を使って仮想化された環境を自由に使えます。僕は、CentOS 4.0を入れて使ってました。

Linode 300というプランでRAMが300 MB、Storageが8GB、$19.95。価格はそのままで、RAMとStorageがアップグレードされたり、仮想化ならではの利点もありました。

Linode

借りた当時の要望としては、インターネット上にサーバが欲しいなというのとUNIXを触りたいなというのがありました。用途からするとVPSはオーバースペックなのですが、日本のVPSと比べると価格も安いので、実験用に借りたのです。

ただ、安い仮想化環境なのでコンパイルとか負荷がかかる処理には時間がかかります。また、場所がアメリカにあるせいか、ネットワークの遅延があった気がします。

MacBook Proを買って、手元にUNIX環境は揃ってるので、インターネット上のサーバはレンタルサーバでもいいかなと思っていたら、ドメイン取得に使っているVALUE-DOMAIN.COM(お名前.comなんかと比べると安い)がCORESERVER.JPを始めたというのを聞き、試用してみました(無料のレンタルサーバXREAを元に、有料化されたものらしいです)。

選択のポイントは、PHP5(CGI版ならPHP4/5/6!も使えます)。前からサービスを提供しているところだと、まだPHP4というところが多いみたい。Zend Frameworkを試したいなとも思うし、今更PHP4の新しいコードを書きたくはないので、PHP5。

スクリプト言語は、PHPのほか、Perl/Ruby/Python。データベースもMySQL、PostgreSQL、SQLiteと使えます。

ほかには複数のドメインを設定できたり、CRONも使えたり、あとは共有SSLも使えます。

メールサーバは、多用するならGoogle Apps for Your Domainを使ったほうが楽だと思ってるので、あまり気にしませんでしたがメールマガジンとかメーリングリストも使えるみたい。

ほかの商用のレンタルサーバと比べると、設定インターフェースとかサポートとかは無骨な感じなので、ある程度技術的にわかった人じゃないと使いにくいかもしれませんが、月額500円(年額だと5000円)という低額なので十分かな。

お試し期間は15日間なんですが、このまま契約してしまう予定。

ちょっと気になったのが一点だけ。アクセス統計のページとかphpMyAdminのページとかにBasic認証でのアクセス制限がかかるはずなんですが、登録した翌朝の7時までアクセス制限されてませんでした(自分で.htaccessと.htpasswdを作っていたら、それとは別に新しくファイルが作成されていました)。

Apple Store(Japan)

Technorati Tags: ,


Emacs

テキストエディタには、CotEditorを使ってます。

WEB+DB PRESS Vol.40』を読んで、コーディングにはEmacs使おうかと思ってしまいました。昔は統合開発環境なんてなくて、会社の先輩にEmacsの使い方を教えてもらったんですよね。かなり忘れちゃってまして、久しぶり。

「Linux開発環境」では、Emacsの懐かしい便利な使い方がうまくまとまっていました。zshとかGNU screenは未体験なんで、いずれ試してみようかな。coLinuxは前使ってたんで、飽きました。

「Start! MacBook」でMacにもCarbon Emacsというバイナリパッケージがあることを知りました(WindowsでいうMeadowみたいなもんだと思います)。ほかにもいろんなバイナリがあるみたい。

Mac OS Xだと、ターミナルでemacsって打てば、最初からemacsは使えるんですが、日本語環境が整ってないようなんですよね。あとは、普通のアプリ的にも使いたいじゃないですか。

昔の設定ファイルも消えちゃってるし、いろいろやりたいことも変わってきてると思うんで、しばらくはチマチマと設定を変える日々になりそう。

“WEB+DB PRESS Vol.40″ (技術評論社)

Technorati Tags: ,


Mac OS XでSSH(3) sshfs

SSHの話は2回で終了のつもりだったんですけど()、「Linux開発環境」という特集目当てに買った『WEB+DB PRESS Vol.40』の巻頭コラム「Start! MacBook」でsshfsの話を読んで、試してみました。



“WEB+DB PRESS Vol.40″ (技術評論社)

sshfsを使うと、SFTPで接続したサーバを普通のディスクのようにマウントして使うことができます。

なにかファイルを編集したいというときに、リモートで全部の操作をするのでもなく、ローカルで編集して転送するのでもなく、リモートのファイルを直接ローカルのアプリケーションから触るというのは便利そう。

MacFUSE + sshfs

sshfsを使うには、まずはMacFUSE(GoogleがFUSEをMacに移植した模様)をインストールする必要があります。といっても、簡単です。MacFUSE-Core-0.4.0.dmgをダウンロードして、ディスクイメージに入っているパッケージをダブルクリックして、インストーラーにしたがうだけ。

続いて、sshfs。sshfs-0.3.0.dmgをダウンロードして、sshfs.appをアプリケションにドラッグ&ドロップするだけです。

あとは、sshfs.appを起動すると接続先を聞いてくるので、接続します。そうすると、ほかのディスクに並んで、リムーバルディスクのようにマウントされます。マウントしてしまえば、sshfs.appは終了させても大丈夫みたい。

MacFusion

MacFUSE + sshfsよりも、もっと便利に使えるのが、MacFusion(sshfsなしでMacFUSEだけでも動作するみたい)。ブックマークが使えるし、キーチェーンにも対応してるのでパスワードを毎回入れなくて良いし、いろんなサーバを切り替えるのに良さそう。

起動時に自動でマウントとかもできるみたい。

あと、MacFusionには、CurlFTPFSというのが入っているおかげか、FTPもマウントできるようです。Mac OS XのFinderからもFTPでブラウズはできたはずだけど、いまいちな使い勝手なので。

パーミッションの変更とかはできないようなので、Cyberduckも併用すると思うけど、普段はMacFusionで十分かも。

ほかのファイルシステム

MacFusionに含まれているっぽいCurlFTPFSみたいに、MacFUSEでは、いろんなファイルシステムが使えます。NTFS-3gSpotlightFSGMailFSiTunesFSなんかがあるみたい。機能は名前から想像できる通り。

まだ勉強中で全部わかってないんだけど、FUSEっていうのは、ファイルシステムを簡単に実装できるようにOSにAPIを追加してくれるライブラリみたいなもの。僕は自分でファイルシステムを作れないと思うけど、スキルのある人が手軽に作ってしまえるという環境はすごい。

Gmailをストレージとして使うだけなら、gDiskみたいな専用のアプリもあったけど、MacFUSEのおかげでファイルシステムとしてアクセスできることで、ほかのアプリケーションからも使いやすくなる。

Windows版は今のところないので、UNIXベースなMac OS Xに感謝ですね。

Technorati Tags: ,


Mac OS XでSSH(2) Fugu/CyberDuck/ForkLift

前回からSSHの続き。続いて、ファイル転送の話。

FTPよりもセキュアに、ということで、SFTPを使います。

sftp

ターミナルを起動して、

$ sftp username@hostname

とすると接続できます。もちろん、SSHで接続する際に生成した暗号鍵が使われます。

ftpコマンドに慣れてるなら、これで十分。特にソフトを入れなくてもいいのは楽ですね。

でも、専用のクライアントがあったほうが普段は便利だなあと思うので、物色してみました。

Sftp

Fugu

まずは、Fugu。基本的な感じ。

接続が切れた時に、再接続ができないことが多発したり、なんか使い心地がよろしくなかったりしたので、すぐに別のを探してしまいました。

Cyberduck

黄色いアヒルのアイコンがかわいいCyberduck。接続維持のNOOPを送ることができたり、ブックマークごとにローカルのディレクトリを指定できたり、使いやすい。FTPでも使えるし。

ForkLift

$29.95と有料ですが、ForkLiftというのも便利そうでした(未使用)。

FTP/SFTPに加えて、Amazon S3(Simple Storage Service) に接続したり、ローカルを介さずにサーバ間でファイルを転送するFXPが使えたり(Macでは初らしい)、Bluetoothで接続したり、なんか高機能。

ForkLiftもおもしろそうだけど、現状はCyberduckを普段使うことにしました。

Amazon S3は使ってみようかと思っているんですが、使うにしても無料のAmazon S3 Firefox Organizer(S3Fox) (Firefoxのプラグイン)とかもあるし、有料ならJungleDisk(S3をローカルのディスク感覚で使えるWin/Mac/Linux対応のアプリケーション。$20)とかのほうが便利かなとか。

大事なデータはJungleDiskでAmazon S3にバックアップとかしておくと、幸せかもしれない。

Technorati Tags: , ,


Mac OS XでSSH(1) iTerm

自分で持ってるサーバでは、鍵交換方式のSSHで接続できるようにしています。

というわけで、今日は、Mac OS Xで使えるSSH関連のソフト&設定を紹介。UNIXの話が半分くらい入ってますけどね。

ターミナル

標準のターミナルの代わりに「iTerm」を使ってます。

初めは標準のターミナルでも十分かなと思ってましたけど、いろいろ便利っぽいところがあるので乗換。

・タブ表示できる

・ブックマークが使える

・Growl通知に対応

日本語関連の設定

日本語のファイル名を見たり、日本語を入力したりするための設定。いろんなサイトの設定を参考にしたので、自分用メモ。

~/.bash_profile

alias ls=’ls -vF’

export LANG=ja_JP.UTF-8

~/.inputrc

set convert-meta off

set meta-flag on

set output-meta on

SSH

ようやくSSHの話。まずは、鍵の生成です。

$ ssh-keygen -t rsa -v

~/.sshの中に公開鍵と秘密鍵が生成されるので、公開鍵のほうを接続先のサーバに登録。

これでターミナルから、

$ ssh username@hostname

と入力すると、鍵の生成時に入れたパスフレーズを聞かれ、正しく入力すると、無事に接続できます。

接続先のブックマーク

接続先は1つなんですが、毎回入力するのが面倒なので、ツールを使ってみます。

まずは、いろんなサイトで見かけたJellyfiSSHというのを使ってみました。このソフト自身はSSHクライアントではなくて、ターミナルかiTermを起動してSSH接続をしてくれるだけなんですよ。

便利なんですが、iTermのブックマークでも、起動時のコマンドに「ssh username@hostname」と書いておけば、同じことができるんですよね。最近、ランチャーみたいなソフトが好きじゃないので、iTermに一本化することにしました。

パスフレーズを入れるのが面倒?

キーチェーンと連動して、毎回接続時にパスフレーズを入れなくても接続できるようにするツール。

SSHKeychain

SSH Agent(Universal Binary版はこちら

便利そうだということはわかります。接続時の儀式としてパスフレーズを入れるのは、今のところは苦じゃないので、未使用です。

後半、紹介しておきながら使ってないんですが、使い方によっては便利だと思うんで書いておきました。

Technorati Tags: ,


ParosでHTTPキャプチャ on Mac

Webページのブラウズ中、どんな通信が行われているかを見るためのツールの話です。

たいていはリクエストとレスポンスのHTTPヘッダを見ることができれば十分なのですが、ボディのほうも見たくなることがあります。たとえば、通信してるけど動作が変とか、FlashとかAjaxなアプリが行ってる通信の中身とか。

Windowsで使っていたParosがMacでも使えました。ParosはJavaで書かれていて、Requirementは「Cross-platform, Java JRE/JDK 1.4.2 or above 」です。Mac OS X 10.4.10では、最初から1.5.0_07のJREが入ってます。

インストールはかんたんです。ParosのDownloadからClick Here、Downloadと進み、安定版の最新であるVersion 3.2.13の「paros-3.2.13-unix.zip」をダウンロードします。適当なディレクトリに展開して、そのディレクトリにターミナルで移動(Windowsのコマンドプロンプトみたいなもの)。

$ chmod +x startserver.sh

$ ./startserver.sh

でParosを起動します(Windows用のstartserver.batもあるので、Windowsな方はそちらを)。

あとは、ブラウザのインターネット接続のプロキシに「localhost」と「8080」を指定します。

これで、ブラウザで行われる通信はすべてParosがプロキシとなって、通信内容が記録されます。SSLの接続では証明書関連のアラートが出ます。まさにParosが傍受してるわけなので、ここではOKを押せば通信が行われます。

Parosで記録された通信内容のまとまりは、セッションとして保存しておいて、あとから見ることもできます。

ParosではHTTPボディの確認だけでなく、XSSとか脆弱性のスキャンとか、通信内容の改ざんとかもできるんですが、その辺はドキュメントで。

※8/22追記

利用している際は気づかなかったのですが、ホームディレクトリにparosディレクトリが作成されます。Parosの設定などが保存される模様。

ほかにも似たツールを紹介だけしときます。

ヘッダのみ見ることができるツール

なぜかFirefoxのアドオンで4種類。ヘッダだけ見るなら、LiveHTTPHeadersが使いやすいけれど、ほかの機能目当てにいくつか使っています。

LiveHTTPHeaders

Firebug

Tamper Data

Web Developer 1.1.2 日本語版英語版は1.1.4

ボディも見ることができるツール

どちらもWindows時代に使ってみたんだけど、Parosがしっくり来たような記憶が。Macでは試してません。

Burp proxy

これもJava。一応、Windows/Linux対応だけど、Macでも動くかも。

Fiddler

Windows版のみ。Microsoft製。

Technorati Tags: