CakePHP のマニュアルは、github で公開されている。
https://github.com/cakephp/docs
これを Mac に入れて、オフラインでも(飛行機の中でも)見れるようにしてみた。
$ mkdir CakeDoc
↑ ディレクトリ名は何でもOK
$ cd CakeDoc
$ git clone https://github.com/cakephp/docs.git .
$ sudo easy_install sphinx
$ sudo easy_install sphinxcontrib-phpdomain
$ make html
ここまですると、 CakeDoc の中に build/html というディレクトリが出来ていて、そこに en, ja などなど マニュアルの HTMLファイルができている。
コメントなし »
投稿者: lllnorikolll, カテゴリ: Mac, tags: VPN
特定のサーバにSSH接続をする際、VPNを経由しないと接続できないような制限をもうけられていることがあった。
MacのVPN接続設定のオプションで、「すべてのトラフィックをVPN経由で送信」にチェックを入れておかないと、サーバにアクセスできなかった。が、これではVPNを経由する必要のないデータまでVPNを経由するようになってしまう。
サーバに接続する場合にのみ、VPNを経由するような設定をした。
参考にしたのは、こちら
以下のように編集し保存。
#!/bin/sh
if [ "$4" = "YYY.YYY.YYY.YYY" ]; then
/sbin/route add -net XXX.XXX.XXX.XX1 ZZZ.ZZZ.ZZZ.ZZZ
/sbin/route add -net XXX.XXX.XXX.XX2 ZZZ.ZZZ.ZZZ.ZZZ
/sbin/route add -net XXX.XXX.XXX.XX3 ZZZ.ZZZ.ZZZ.ZZZ
/sbin/route add -net XXX.XXX.XXX.XX4 ZZZ.ZZZ.ZZZ.ZZZ
fi
XXX.XXX.XXX.XX1〜4 は、VPN経由させたいサーバのIP。
YYY.YYY.YYY.YYY は、VPN経由した際のローカルIP。
ZZZ.ZZZ.ZZZ.ZZZ は、VPN経由した際のゲートウェイのIP。
参考サイトでは、interface-name が ppp0 かどうかで分岐していたが、VPN接続先が複数あったため、VPN経由した際のローカルIPで分岐するようにした。
# 2011/05/02 追記
# VPN経由した際のローカルIPが固定でなかったので、条件部分を書き換え
if [[ ! -z `echo "$4" | egrep "^YYY.YYY.YYY.[0-9]+$”` ]]; then
#if [ "$4" = "YYY.YYY.YYY.YYY" ]; then (←古いこっちはコメントアウト)
/sbin/route add -net XXX.XXX.XXX.XX1 ZZZ.ZZZ.ZZZ.ZZZ
/sbin/route add -net XXX.XXX.XXX.XX2 ZZZ.ZZZ.ZZZ.ZZZ
/sbin/route add -net XXX.XXX.XXX.XX3 ZZZ.ZZZ.ZZZ.ZZZ
/sbin/route add -net XXX.XXX.XXX.XX4 ZZZ.ZZZ.ZZZ.ZZZ
fi
ファイルのパーミッションを変更
sudo chmod 744 /etc/ppp/ip-up
最後に、VPN接続設定の「すべてのトラフィックをVPN経由で送信」のチェックをはずして変更を保存適用。

設定が有効かどうかを調べるために、↓のコマンドで確認。設定した分の行が表示されればOK。(VPN接続中のみ表示される。切断すると表示されないことも合わせて確認。)
netstat -rn | grep ZZZ.ZZZ.ZZZ.ZZZ
これでVPNを接続するたびにこの設定が有効化され、特定の接続先のみVPN経由されるようになる。
ためしに確認くんを開くと、VPN経由しないIPから接続していると表示され、その状態のままサーバにVPN経由で無事SSH接続することができた。
コメントなし »
PHPマニュアルがSVN管理されるようになり、以前のCVSからのビルドとは少し変わったのでメモ。
SVNのインストール
$ sudo port install subversion
PhDのインストール
$ sudo pear channel-discover doc.php.net
$ sudo pear install doc.php.net/phd
$ sudo pear install doc.php.net/phd_php
SVNからから日本語ドキュメント関連のファイルを取得
$ svn co http://svn.php.net/repository/phpdoc/modules/doc-ja phpdoc
↑英語版のマニュアルにしたい場合は、doc-ja の部分を doc-en にしてください。
マニュアルのビルド
$ cd phpdoc
$ php doc-base/configure.php --with-lang=ja
↑英語版のマニュアルにしたい場合は、デフォルトが en なので –with-lang オプションをつけなくてOK。
$ phd -d doc-base/.manual.xml -P PHP -f xhtml
phpdocディレクトリの中に output というディレクトリが作成される。
phpdoc/output/php-chunked-xhtml/index.htmlをブラウザで開く。
完成☆
ちなみに、configure のオプションは他にもいろいろあるようです。以下のように -h でヘルプが表示されます。
$ php doc-base/configure.php -h
コメントなし »
MacOS 10.5 Leopard から MacOS 10.6 Snow Leopard にアップグレード後、Xcode3.2とmacports1.8を入れたメモ。
まずは Snow Leopard のインストールDVDから Xcode3.2 をインストール。
Xcodeのインストールが終わったら、http://www.macports.org/install.phpからSnow Leopard用の Mac OS X Package Installer をダウンロードし、インストール。
インストールが終わったら、↓のコマンドを実行。
コメントなし »
さて、かなり気になっていたZend_Tool関連のお話です。
CakePHPにはbakeというコマンドがありますが、Zend Frameworkはzfコマンドが使えるようになったようです。(といってもかなり前から・・・私がいかにZendFrameworkサボっていたかがわかってしまいます・・・)
http://framework.zend.com/manual/ja/zend.tool.framework.clitool.html
↑のマニュアルを参考にしました。
phpがインストールされていて、ZendFrameworkソースファイルを取得していることを前提に進めます。
ちなみに私はmacportsのphp5をインストールしています。
ZendFrameworkは/projects/zf/library/Zend/となるように置いています。
まず、
which php
/opt/local/bin/php
でphpバイナリがあるパスを確認します。この場合は、/opt/local/binがそうです。
http://framework.zend.com/svn/framework/standard/trunk/bin/
cdコマンドで移動し、上記URLにあるzf.phpとzf.shをコピーします。
zf.shはzfとリネームします。
次にphp.iniでZendFrameworkをinclude_pathに追加します。
(既に設定してある場合は省略)
正しくinclude_pathに指定されたか、を確認します。
php -i | grep include_path
include_path => .:/projects/zf/library => .:/projects/zf/library
これでzfコマンドが使えるようになります。
コメントなし »
Mac用のtwitterやWassrのクライアントは、幅をとるものが多く、twitterとWassrそれぞれアプリを立ち上げて見るのがつらい。。。
Windowsだと、twit+twit4WSを縦に並べて使うのがすき。
wasacoは悪くないんだけれど、reply文中に@がつかないのが不便。
wasacoも夏ライオンも、もうちょいスリムになってくれるとうれしい。
WassrだけGTalk経由にして、Adiumで見ていた時もあったけれど、アイコンが出ないのが不便。
で、いろいろ探していたら、Afficheurというアプリを発見。
twitter、Wassrの他にもTumblr、jaiku、identi.ca、Jiskoにマルチポストできる。
リストも設定したサービスすべての発言をまとめてくれる。
Replyするときは、発言する先をReply元のみにセットしてくれる。
素晴らしい。
コメントなし »
githubにgit pushしようとしたら、↓のようなメッセージがでた。
SSH Keyの設定は、githubの説明(ここ)のとおり設定してある。
$ git push origin master
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
よくよく.~/.sshの中を見ると、configというファイルができていた。
中身を見てみると、↓のようになっている。
んっ?id_dsa???そりゃ動くわけないわ。。。id_rsaだもん。。。
$ cat config
Host github.com
User git
Port 22
Hostname github.com
IdentityFile ~/.ssh/id_dsa
TCPKeepAlive yes
IdentitiesOnly yes
というわけで、「IdentityFile ~/.ssh/id_dsa」部分を「IdentityFile ~/.ssh/id_rsa」に書き換え。
ついでに、同じく~/.sshの中にあるknown_hostsというファイルから、「github.com」で始まる一行を削除。
気を取り直してgit pushすると、できた☆
コメントなし »
CORESERVERにSSH接続する際の手順が面倒だ。。。
1.管理画面上からホストを登録しなくてはいけない。
2.ホストを登録してからSSH接続できるようになるまで数分かかる。
3.SSH接続の際のパスワードがCORESERVERから発行されたものなので、覚えていられない。
と、思っていたら、どうやらSSH公開鍵認証でSSH接続ができるとのこと。
やってみた。
結果。。。
ホスト登録しているIPからは、SSH公開鍵認証できたが、IPが変わると管理画面上からホスト登録しなおさなくてはいけないようなので、パスワードをコピペする手間が省けた程度のメリットだろうか。。。
[CORESERVER側で下準備]
まずはSSHでCORESERVERにログイン。
(CORESERVER管理画面でssh登録を事前にすませておく)
ssh [ユーザー名]@s[数字].coreserver.jp [ユーザー名]@s[数字].coreserver.jp's password:
パスワードを入力し、Enter。
ホームディレクトリに.sshというディレクトリを作成し、その中にauthorized_keysというファイルを作成。
$ mkdir .ssh
$ mkdir chmod 700 .ssh
$ cd .ssh
$ touch authorized_keys
[Mac側でSSH公開鍵を作成]
ターミナル上で「ssh-keygen」と打つと、「/Users/[ユーザー名]/.ssh/id_rsa」というファイルで作ってよいか聞かれる。
パスやファイル名を変更したい場合は、直接指定。
聞かれたとおりでよければ何も書かずにEnter。
パスフレーズを2回聞かれるので、入力してEnter。
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/[ユーザー名]/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
[SSH公開鍵ファイルをMacからCORESERVERにコピー]
作成した鍵ファイルをscpコマンドでCORESERVERにコピー。
(鍵ファイルへのパスは、↑でEnter file in which to save the keyで聞かれたときのもの)
$ scp /Users/[ユーザー名]/.ssh/id_rsa.pub [ユーザー名]@s[数字].coreserver.jp:~/.ssh
[ユーザー名]@s[数字].coreserver.jp's password:
id_rsa.pub 100% 638 0.6KB/s 00:00
[CORESERVER側で鍵ファイルを設定]
authorized_keysファイルにid_rsa.pubの内容を追記。
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[今後SSH接続するときは]
↓だけで、パスフレーズを利用してログインできるようになる。
$ ssh [ユーザー名]@s[数字].coreserver.jp
コメントなし »
MacOS10.5Leopardでブラウザをスクリーンキャプチャしてくれるフリーソフトを探していたら、firefoxのアドオンがあった。
Screengrab!
http://www.screengrab.org/
とりあえず入れて使ってみたところ、なかなかいい感じ。
PNGとJPGを選んで保存できる。
スクロールのある画面全体や、選択した範囲だけ、ウィンドウなど、
キャプチャする範囲も選べる。
保存をする先を選択するウィンドウ上部になにやらあやしげな文字化けが発生するが、使用している分には、特に問題はない。
気に入った。
1 コメント »
ZendFrameworkはSubversion(以下SVN)から取得して常に最新版での動作を確認することができる。
(マニュアルの1.2. インストール参照)
このSVNリポジトリにはdocumentationディレクトリもあり、各国の言語でのマニュアルも日々更新されている。
MacBookAirはHDD容量が少なめなため、SVNから取得した最新マニュアルの日本語版のみをHTML作成したい。できればZendFramework日本語マニュアルを自分が見やすいと思うような好みのデザインにCSSで変更したい。
というわけで、翻訳の神id:m-takagiさんに色々と助けていただきながら作成してみた。
下準備 – MacPortsからautoconfとlibxsltをインストール
ZendFrameworkのマニュアルはDockBookというもので書かれているため、SVNから取得できるのはxmlファイルとテンプレートとなるデザインのみ。
これをHTMLにするにはMacにautoconfとlibxsltというものをMacPortsからインストールする。
MacPortsのインストールについては前回の記事を参照。
ターミナルを立ち上げ、以下のコマンドでautoconfとlibxsltをインストール(若干時間がかかる)
$ sudo port install autoconf
$ sudo port install libxslt
SVNから日本語マニュアルHTML作成に必要なもののみ取得
SVNからのソースの取得方法は、ここでは省略する。(取得方法については他サイトを参考に)
SVNから下記の2ディレクトリ以下のもののみチェックアウトする
なぜ英語版も必要かは後述。
チェックアウト完了後、ターミナルを起動。
作成されたjaディレクトリにcdコマンドで移動。
下記コマンドをうつ。
$ autoconf
$ ./configure
$ make
makeと打ったあと、
warning: failed to load external entity “module_specs/Zend_Dojo-View-Helpers.xml”
というワーニングがいくつか出るが、id:m-takagiさんによると、jaディレクトリにファイルが無いワーニングで、ファイルが無い場合はenディレクトリから英語版のものを利用することになっているので、問題ないとのこと。
このような部分で英語版を利用するのでenもSVNから取得していた。
warningが出た後しばらくそのまま待っていると、writing ……とファイル作成中の表示が出てja/html以下にhtmlファイルが作成される。(全ファイルを作成するまでに結構時間がかかる)
できたーーー。と感動していると、実はja/html/imagesディレクトリが無くて一部画像が表示されないので、以下2ファイルを本家マニュアルから拝借し、ja/html/imagesディレクトリを作成してgifファイルをpngファイルに変更し、保存。
pngファイルにするのが面倒な場合は、手元にある適当な画像を置いてもOK。
ja/html/index.html
このファイルをブラウザで開くと、ZendFrameworkマニュアル日本語版が見れる。
あとはSVNをupdateするたびにコマンドでhtmlを作成しなおせばOK。
HTMLのデザインを変更するには、
ja/html/dbstyle.cssファイルでCSSを書き換えてあげればよい。
2 コメント »