2009年3月12日木曜日

ロリポップでcgi

ホームページに昔作ったiGoogleのガジェットを載せようと思ったのだが、どうもページのデザインとガジェットのイメージが合わなくてしっくりこない。結局ガジェットをのっけるのは止めて、ホームページ用にデータを吐き出すようにして、JavaScriptで表示するようにしました。
簡単な作業で出来るつもりが、いろいろ問題があったのでメモしときます。

まず、JavaScriptでXMLHttpRequestを使って別サーバー(この場合GoogleAppEngineのサーバ)にリクエストを送ることが出来ない!って事を知らずに「なんで、自サーバへのファイルにはアクセスできるのに、アプリサーバのファイルが読めないんだろう?」って1時間ほど悩みました。
セキュリティ保護の為に自サーバ以外へのアクセスは禁止されてるって事みたい

しょうがないので、自サーバにcgiスクリプトを置いて、cgi経由でアプリサーバのデータを取得する様にしました。
ホームページはロリポップのサーバにあるので、ロリポップが許可しているcgiのrubyを使ってみることにしました。rubyは初めてですが、アプリサーバからデータ読むだけなので、簡単にこんな感じにしました

#!/usr/local/bin/ruby
require 'net/http'
print "Content-Type: text/html\n\n"
Net::HTTP.get_print 'forlune.appspot.com', '/week3'

これで良いのか?ってのはよくわかりませんがとりあえず動けばいいかなと...
でロリポップのサーバに置いても動きませんでした。

最初は print "Content-Type: text/html\n\n" が抜けていて、これが無いとサーバがエラーを出すらしい
更にWindowsの秀丸エディタで書いたスクリプトは改行コードがCR+LFになっていて、改行コードをLFにしないといけなかった

もしかして当たり前の事なのかも知れないけど、トータルで半日悩みました...

1 件のコメント:

匿名 さんのコメント...
このコメントはブログの管理者によって削除されました。