月毎覚書
2009年6月
table of contents
- 20090628:MacOS Xで、MSの.chmファイルを閲覧する
- 20090628:TextMateのバックスラッシュ入力方法
- 20090624:MacPortsで自動作成される利用者がログイン画面に登場する
- 20090623:Mediapartners-Googleが来てる?
- 20090623:コーヒーモニターとか
- 20090623:サイトをつくりはじめる
- 20090621:WEB画面取得サイトを使う
- 20090620:画像大きさ変更用道具
- 20090620:時計表示リンクというのがあるんだ
- 20090619:IEは、CSSのmarginをちゃんと認識しないわけだな
- 20090619:MacOSXの標準emacsを使う
- 20090616:Product Advertising API (旧 AmazonアソシエイトWebサービス)の署名認証に関するお知らせ
- 20090613:Kohanaで仮サイトを作る
- 20090611:zenphotoに決定
- 20090609:くやしいのでMySQLを入れたが、はまり続ける
- 20090608:dfgalleryではまり、日和見
- 20090607:Kohanaを使い始める
- 20090607:phpの入れ直し:PostgreSqlも入れる
- 20090607:iTunesライブラリの再構成
- 20090607:MacOS XにMovableType4を入れる
- 20090605:MacOSXで、MovableType用ImageMagick (PerlMagick)を入れる方法
- 20090606:mod_rpafでは接続制限ができない件
- 20090606:リバースプロキシのリモートホストIP取得のためにmod_rpafをインストール
- MacOSXで、グループメンバーに新利用者を加える
- 20090603:web環境の整理:
20090628:MacOS Xで、MSの.chmファイルを閲覧する
http://chmox.sourceforge.net/。ありがたいです。
20090628:TextMateのバックスラッシュ入力方法
option + ¥ で出来る。http://wiki.fdiary.net/textmate/?HowToInputBackSlash
20090624:MacPortsで自動作成される利用者がログイン画面に登場する
いまやapacheサーバーと化したmac mini 君に、ひさしぶりに画面共有でログインしようとしたら、先日入れたpostgresqlの利用者名が画面に登場していた。なんだかなあw
20090623:Mediapartners-Googleが来てる?
まだ公開登録は考え中で、誰も知らない筈のこのサイト、http://bsn.river.tcであるが、Mediapartners-Googlegoogle がlogに残っていた。http://www.seo-diary.com/p_158/index.htmlによればgoogleのAdSenseを付けたら来るbotだということなのだが。
20090623:コーヒーモニターとか
ところで、感想をblogに書くという条件のコーヒーモニタープレゼントに、さっき応募しました。当選したら、その感想を(骨格ができたら)最初に書き始めようと思います。当たればいいなあ(アピール).
20090623:サイトをつくりはじめる
2009年6月半ばから、頁をつくりはじめました。6月23日現在、頁の骨格をKohanagoogle で作ってる最中です。
20090621:WEB画面取得サイトを使う
うゑぶ頁を作っていて、閲覧関係で困ることは2つある。
一つはブラウザ別の「見栄え」を調べたい、いま一つは、途中でreverse_proxyを入れたり、中にcURLの処理を入れたりして作ったアプリの頁が、グローバルIPからはマトモに接続出来ているかを調べたい。
これを2つとも同時に解決するには、外部IPから、OS別の20近いブラウザを入れた機械から、逐一接続することだが、さすがにあり得ない。
というわけで、指定したURLの画面を取ってくれるサイトを使ってみた。大昔、40ドル/monthというサイトを使ったことがあったので、多分いまなら日本でもあるだろうということで探したら、http://screenshots.jpというのがあった。。
URL(orブラウザ)別、合計50個閲覧コースの、900円/月というやつです[1]。
20090620:画像大きさ変更用道具
頁づくり準備も佳境に入り?、MacOS X用の道具を探す。
デジカメールXを使い始める。PNGも読み込めるので、ありがたく使わせていただく。[2]。
20090620:時計表示リンクというのがあるんだ
http://www.clocklink.com/で配布しているswf形式の時計表示リンク。一日で2300万ビューがあるらしい。
クリック広告を受け入れれば自由利用可能。下に掲載の時計は、USAワシントン州のHarborstone Credit Unionという信用組合のHomePageとリンクされている。
コードはたったこれだけ。すばらしい
<script src="http://www.clocklink.com/embed.js"></script> <script type="text/javascript" language="JavaScript"> obj=new Object;obj.clockfile="harborstone001-gray.swf";obj.TimeZone="JST"; obj.width=150;obj.height=150;obj.Place="";obj.wmode="transparent"; showClock(obj);</script>
20090619:IEは、CSSのmarginをちゃんと認識しないわけだな
個人的にはIEを使うことはない[3]とはいえ、頁を公開するとなると、対応が必要になります。普通は、ブラウザの中央になるように頁を置きたいわけですから。単にbodyでmargin:0 autoでOKかと思ったら、IEは効いてくれない。頁全体が、左寄せのまま。。。
text-alignを使ってこれを回避するしかないようで、CSSを使って綺麗な構成をしているサイトのCSSを幾つか眺めてわかったのは、
body要素全体をtext-align:center;とする。
その上で、#wrapperなどの名前で頁全体を囲い、
---
#wrapper
{
margin:0 auto;
text-align:left
}
で、中央に戻せばいい。なるほど。
でも、上の#wrapperでmargin-top,padding-topがIEでは効かない。。。これだと下の画像のように、頁上部のスキマを表示できないのである(左はWindows版IE7、右はMac OS X版FireFox 3)。
20090619:MacOSXの標準emacsを使う
Mac mini内部でUTF-8ファイルを書き換える作業が増えてきたので、emacs -nw モードでの.emacsの設定を行う。感謝=> Beginning OS X 10.5/インフラ整備編
20090616:Product Advertising API (旧 AmazonアソシエイトWebサービス)の署名認証に関するお知らせ
表記のメール がAmazonから舞い込んだ。Amazon アソシエイト Web サービスの仕様がかわり、Amazon のアソシエイトDataBaseを利用するさいに、電子署名付きの要求が必要となる。署名なしの場合、2009年8月15日をもって拒絶されるらしい。
別に商用で使っている訳ではないが、使えなくなるのは痛い。個人的な覚えを頁で書いてるばあい、結構、利用するからだ。
[PHP] Amazon Product Advertising API で認証付きリクエストを送る方法まとめというサイトの説明が判りやすいので、ありがたい。試してみようと思います[4]。
20090613:Kohanaで仮サイトを作る
一応、Kohanaで作った。最低限の機能は、動いているみたい。そろそろ、頁公開の準備をしたい・・・・が、頁がない!
ちょっとKohanaの覚えなどを書いて、yahooあたりに登録しようと思う。
20090611:zenphotoに決定
dfgalleryは、URI(routerまわり)、cURLあたりの扱いがちょっと変なのだろうと見切りをつけて、他の写真アルバム を探したところ、zenphotoに決定。MySQLを入れているので、問題なし。スクリプトの中身を眺めたが、扱いやすそうである。
20090609:くやしいのでMySQLを入れたが、はまり続ける
dfgallery試用のために、結局MySQLを入れたのだった。launchctl unload /Library/LaunchDaemons/org.macports.postgresql83-server.plistで、portgresを停止。
phpをportで再構築。
---
sudo port installed |grep php php5 @5.2.9_2+apache2+macosx+mysql5+pear+sqlite+tidy (active) php5 @5.2.9_2+apache2+macosx+pear+postgresql83+sqlite+tidy phpmyadmin @3.1.5_0 (active)
となっている。コマンドラインの道具(mysql)はよくわからないので、phpmyadminもportでinstallしている。
DB接続は問題なくなったので一応サイトが出来たが、uploadが変。うまく動作しない。今日はこの程度で許してやるよ dfgallery
20090608:dfgalleryではまり、日和見
ところが、install時にpostgresにテーブルが出来ない。app/controles/admin/setup.phpの_run_initial_upgrade()で、app/libraries/Upgrade_Manager.phpをloadして、$result = $this->upgrade_manager->execute ( '2000/Task_2000_1', $args );してるあたりで、おなくなりになってるようだ。本家サイトのbbsをざっと覗いた限りでは、mod_rewrite,cURLに関する質問ばかりで、この点について触れてる記事はなかった。MySQLの普及率の高さを示す出来事。
ソースを見ると、DB毎の分岐もなしにIF NOT EXISTSとか、int(10)とかunsignedとかMySQL独自仕様てんこもりのCREATE文を検索してる。Postgresql対応を銘打ってるアプリなのに、これでは使えないではないか。
多分2000/Task_2000_1のSQLを書き直せば動くとは思うが、面倒。さりとて、MySQLを入れるのも面倒。というか上で見るような標準から外れすぎるところがあるので好きじゃないので、どうしようか考えつつ本日はオシマイ。
20090607:Kohanaを使い始める
うえぶ頁をPHP化するのに、フレームワークの選択をする。電脳網を探しているとKohanaというFWが面白そうなのでいじることにした。
20090607:phpの入れ直し:PostgreSqlも入れる
下で書いたMovableType4を画像貯蔵庫にするという案だけど、ちょっと気に入らないので、方針を速攻変更し、 dfgallery_v2.005.zipというのを試してみることにする。postgresかmysqlが必要なので、portgresを入れる。設定は、MacでPostgreSQLをインストールするCommentsAdd Star、が簡潔かつ要を得ている。
更に、MacOS X用pgadmin3 = http://www.postgresql.org/ftp/pgadmin3/release/v1.8.4/osx/を日常的に使ってるiMacに入れる。
自分のiMacからも接続できるように、/opt/local/var/db/postgresql83/defaultdb/postgresql.confでホスト書き換え。pg_hba.confも同様に。でも後者は必要あるのか?。
なお、MacPortsで入れたときのpostgresqlの動作は下記のようになっている
40353 ?? Ss 0:00.00 /opt/local/bin/daemondo --label=postgresql83-server --start-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql83-server/postgresql83-server.wrapper start ; --stop-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql83-server/postgresql83-server.wrapper stop ; --restart-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql83-server/postgresql83-server.wrapper restart ; --pid=none44132 ?? S 0:00.33 /opt/local/lib/postgresql83/bin/postgres -D /opt/local/var/db/postgresql83/defaultdb
次にPHP5を入れ直す。
port install php5 +apache2 +macosx +pear +sqlite +postgresql +gd +curl
20090607:iTunesライブラリの再構成
Webサーバー設定の過程でmac mini君のディレクトリやファイルをいろいろいじったので、iTunes用のxmlが変になってしまった。再構築する。→やりかた:http://support.apple.com/kb/HT1473?viewlocale=ja_JP
20090607:MacOS XにMovableType4を入れる
blogを使うかどうかは判らないのだけれど、静止画を扱うのにMovable Type4は便利そうなの入れる。下のImageMagickもその前提だった。
http://www.movabletype.jp/documentation/linux.htmlを参考にして、各種ディレクトリを配置する。なお、cgi-binディレクトリは作っていないので、cgiディレクトリに.htaccessで以下を記載
---
Options +ExecCGI AddType application/x-httpd-cgi .cgi
データベースはPHP標準で使えるSQLiteにする。
少し考える必要があったのは、MTのperlスクリプトのperl版。MTは/usr/bin/perlを指定しているのだが、Mac Portでperl の版を上げると/opt/local/bin/に入る。新版を使いたいので、MT側を書き直すか、mv /usr/bin/perlして、/opt/local/bin/のperlから/usr/bin/にシンボリックリンクを張るか。
システム側をいじりたくないので、MTを書き換えることにした。変更は、昔からお世話になってる NAKAMURA Hiroshi氏のperlスクリプト replaceで。
---
replace '#!/usr/bin/perl -w' '#!/opt/local/bin/perl -w' -r
で、動いた。嬉しいです。PHOTO貯蔵庫
---
20090605:MacOSXで、MovableType用ImageMagick (PerlMagick)を入れる方法
Mac portやCPANでは、うまくいかない。。Web検索で見ると、原因はライブラリ関係の不整合らしい。整合をとるよりはソースから入れるのが簡単。
verion 6.3.2で試したが、ImageMagickの本体をmake install後、cd PerlMagickで、perl Makefile.PL;make;make installで問題がなかった。
20090606:mod_rpafでは接続制限ができない件
mod_extract_forwardedというのを利用すると可能になるらしい。一瞬考えたが、電脳検索の様子を見ると、あまり使われてなさそうなので採用はしないことにした。
近々PHP化の予定なので、PHP側で対応する予定(REMOTE_HOSTはmod_rpafのおかげで取得出来るようだから).
20090606:リバースプロキシのリモートホストIP取得のためにmod_rpafをインストール
miniと玄箱を弄り始めたら、ちょっと面白くなってきて、公開Webなどを作ってみようかと思い始めている。となると、ログをちゃんととらなければいけない。このままでは、miniに接続してくるIPは全部玄箱のIPになるので、miniのapacheでログをとるためにリモートIPの記録が必要。
昔poundを使っていた頃はpound側でX-http-forwardヘッダの設定をした記憶がある。apache2のreverse proxyでは、後方サーバで動くapache2にmod_rpafモジュールを組み込めばIP取得が可能であるそうだ。
portではモジュールがないので、ソースから入れる。
- gmakeを使うので port install gmake
- 最新版のmod_rpaf-0.6をtar zxvf
- MakefileでAPXS2=/opt/local/apache2/bin/apxsに修正
- make rpaf-2.0;make install-2.0
- *confで、LoadModuleし、RPAFenable Onして、RPAFproxy_ipsでプロキシ側のIPを指定
これでログが取れる。ただしどこまでそのIPを信頼すればいいかは不明。
MacOSXで、グループメンバーに新利用者を加える
htmlファイルを簡単に編集したいので、apache2の利用者・グループを独自に作ってグループに編集利用者も所属させる。
/etc/groupだけですませればいいんだけど、無理なのが辛い。dsclコマンドを使う。
dscl . -read /Groups/グループ名
dscl . -read /Users/ユーザ名
で中身を確認。
dscl . -append /Groups/加えたいグループ名 GroupMemberShip ユーザ名
で付け加えることが出来るようだ。
なお各利用者の所属gid,uidを調べるには
id 利用者名
で可能。
しかるのち、おもむろにchown -R 自分:apacheのグループ ./htdocsして、find ./htdocs ¥! -name ".htaccess" -type f -exec chmod 660 {} \;find ./htdocs -type d -exec chmod 750 {} \;とかを発行しておく。
20090603:web環境の整理:
目的と方法
Webサーバだった(と言っても、ちょっとしたメモを書いて置いていた未公開Webだけど)Mac mini君が家出した。で、この機会にweb環境の整理を行う。
Web環境の変更
いままで: ROUTER-->[DMZ]192.168.x.Z=apache2 今後: ROUTER-->[DMZ]192.168.x.Z=apache2 reverse proxy-->192.168.y.Z=apache2
機械がなくなったのに、サーバーを増やすには訳がある。
家出した子の力量に匹敵する機械が、内側(192.168.y.0/24)にしかないからだ。そこでもっぱらiTunesサーバ役のもうひとつのmini君に、Webの仕事 も受け持ってもらうことにする。
iTunesのコンテンツを外[DMZ]に出すのは嫌なので、弱小機械(玄箱)を、リーバスプロキシの受け口として置く。プロキシとは言え玄箱の能力が試される瞬間である。
設定
まず、ルータの設定。YAMAHA RTX1000。x.Zとy.Zの間のHTTP port通信を可能にする必要がある。ついでに、各種設定を見直す。次のYAMAHAサイトのURLを参考。http://netvolante.jp/solution/int/case4.html久しぶりなのでtftpの仕方を忘れてしまってた。http://www.kuwazou.net/blog/cat38/yamaha_rtx1000/
つぎにdebian ETHCが動いてる玄箱に、apache2を入れる。apg-get install apache2、でOK。
起動は、/etc/init.d/apache2らしい。
/etc/apache2以下にモジュールON/OFFとconfファイル。ディレクトリベースの管理となる。各ファイルは「a2dismod a2dissite a2enmod a2ensite」コマンドをつかってavaiable<->enable化するとのこと。debianでapacheを動かすのははじめてなので、最初は戸惑った。以下最低限の設定方法
- proxy.conf,proxy.load,proxy_http.loadをenableにする
- proxy.conf内のAllow from を allに変更
- site-enabled内のファイルでVirtualHostの設定。例はこれ。内側のapache2の設定でHost Nameベースに対応するために、プロキシ側で、ProxyPreserveHost Onが必須。
参照サイト:http://www.asahi-net.or.jp/~aa4t-nngk/apache3.html
リバースプロキシ用apache2のダイエット
上記サイトを参考に、可能な限りモジュールを削る。
proxy,proxy_httpdをenableにした場合の↓初期状態
---
ls etc/apache2mods-enabled/ mods-enabled/alias.load mods-enabled/authz_host.load mods-enabled/dir.conf mods-enabled/proxy.conf mods-enabled/status.load mods-enabled/auth_basic.load mods-enabled/authz_user.load mods-enabled/dir.load mods-enabled/proxy.load mods-enabled/authn_file.load mods-enabled/autoindex.load mods-enabled/env.load mods-enabled/proxy_http.load mods-enabled/authz_default.load mods-enabled/cgid.conf mods-enabled/mime.load mods-enabled/rewrite.load mods-enabled/authz_groupfile.load mods-enabled/cgid.load mods-enabled/negotiation.load mods-enabled/setenvif.load
・・・面倒なので、後回しにする。
20090603:dnsmasqのログ調べ
dnsmasqを動かしていてdynamic dns名をlocalからの問い合わせすると、時間がかかったので、原因究明のためのログをとる必要がでた。ログをとるには、/etc/dnsmasq.confの下記の行のコメントを外す。/var/log/syslogに書き込まれる。なお放置しているとファイルが膨大になるので、原因がわかったらコメントアウトするのを忘れないように。
# For debugging purposes, log each DNS query as it passes through # dnsmasq. #log-queries
20090601:MacOSXのsshポート番号変更について
/System/Library/LaunchDaemons/ssh.plistのkey要素 SockServiceNameのstring要素のssh部分をポート番号に変更する。