GaucheをSSHが使えないレンタルサーバーにインストール

GaucheでWebアプリを作ってみたいと思っていましたが、SSHが使える無料のレンタルサーバーが見つからなかったので、
SSHが使えないところ(land.to)にインストールしてみました。
自分のパソコンでコンパイルしたものをアップロードするという方法です。
他のレンタルサーバーにも応用できるかもしれません。
「アカウント名」というところは、自分のアカウント名に置き換えてください。
land.toでは、アップロードできるディレクトリの絶対パスが「/home/httpd/アカウント名」になっているので、
「/home/httpd/アカウント名/bin」や「/home/httpd/アカウント名/lib」、「/home/httpd/アカウント名/share」のような場所に入ります。
ちなみに、land.toでは「/home/httpd/アカウント名/public_html」の中身が公開されるようになっています。

まず自分のパソコンでGaucheをビルドする

Ubuntu 9.10でビルドしました。
ビルドの前に、

sudo mkdir -p /home/httpd/アカウント名/

として、サーバーのディレクトリと同じ名前のディレクトリを用意しておきます。
サーバーのディレクトリと同じ名前にしておかないと、共有ライブラリの関係でうまくいかないので同じ名前にします。
まず、ホームディレクトリにGaucheのtgzファイルをダウンロードしておきます。

tar xzf Gauche-0.9.tgz

で解凍して、

cd Gauche-0.9

Gaucheディレクトリに移動してから、

./configure --prefix=/home/httpd/アカウント名

で、インストール先ディレクトリを指定してconfigureし、

make

でビルド、

sudo make install

Gaucheをインストールします。

サーバーにアップロード

lftp アカウント名@アカウント名.サーバー名.land.to

でlftpを起動し、パスワードを入力してログイン、

lcd /home/httpd/アカウント名/

で、ローカルのカレントディレクトリを、Gaucheをインストールしたディレクトリに移動してから、

cd /

でサーバー側のカレントディレクトリも移動、

mirror -R

でアップロードします。
このままだと、シンボリックリンクが無いため共有ライブラリを読み込めないので、

lcd /home/httpd/アカウント名/lib

cd /lib

としてから、

put libgauche.so.0

put libgauche.so

で共有ライブラリをアップロードしておきます。

exit

FTPを切断すれば、インストール完了です。

使ってみる

これを使ってGaucheCGIを使うには、一行目のshebang行を「#!/home/httpd/アカウント名/bin/gosh」にする必要があります。
今回は、こんなコードを書きました。

#!/home/httpd/tana/bin/gosh
(display "Content-type: text/html\n\n")

(display "<html><body>Hello, Gauche CGI!</body></html>\n")

これをサーバーにアップロードして、ブラウザからアクセスすると
「Hello, Gauche CGI!」と書かれたページが出てくるはずです。

ちなみに、今回作ったプログラムは、http://tana.pv.land.to/ ここで動いています。