CGI プログラムは, WWW サーバがリクエストを受けた時に「そのサーバー上」
で実行されます. ここで注意が必要なのは, RIISE の WWW サーバは Solarisと
いう OS で動いていることです. すなわち, Solaris で実行出来るプログラムで
ないと, CGI プログラムとして機能しないのです.
演習室であなた方が使っているのは NEXTSTEP という OS です. NEXTSTEP の
gcc で生成したプログラムは, NEXTSTEP でしか動きません. つまり, C 言語で
書いたプログラムは, NEXTSTEP で gcc しても CGI プログラムとして使えませ
ん.
C 言語で書いたプログラムを CGI で使いたいのであれば, Solaris でコンパ
イルする必要があります. RIISE の WWW サーバや Mail サーバは Solaris で動
いているので, これらにログインしてコンパイルできればよいのですが, これら
のサーバにはログインすることが出来ません. 不便で申し訳ないですが, サーバ
の処理能力とセキュリティの関係から, このように設定しています.
では, 手段がまったくないかというとそうでもなくて, IPC (総合情報処理セ
ンター) のユーザエントリマシンを使うという手があります. このコンピュータ
は Solaris です. また, 全学部生にあらかじめアカウントが発行してあるので,
特に手続きをすることなく使うことができます.
手順としては以下のようになります.
-
ユーザエントリマシンに遠隔ログインします.
% telnet ue.ipc.hiroshima-u.ac.jp
パスワードを問われます. (もし一度もログインしたことがなければ) 学
生証と一緒にもらった初期パスワードを入れて下さい. ログインできたら,
% passwd
というコマンドでパスワードを変更できます.
-
ソースファイル一式を RIISE から転送します.
% ftp sheep.riise.hiroshima-u.ac.jp
名前とパスワードを問われます. RIISE でのパスワードを入れます.
230 User uXXXXXXX logged in
ftp>
と表示されたらうまくつながったということです. まず
ftp> bin
と入力して下さい. あとは
ftp> cd ディレクトリ名 --- ディレクトリを変更する
ftp> dir --- ディレクトリの一覧を見る
ftp> get ファイル名 --- ファイルを RIISE → IPC に転送する
ftp> put ファイル名 --- ファイルを IPC → RIISE に転送する
などのコマンドを使って必要なファイルを転送します.
-
gcc を使ってコンパイルします. このとき, 設定ファイルやデータファ
イルなどが絶対パス名 (/で始まるパス名) で指定してある場合は注意が必
要です. IPC ではユーザのホームディレクトリは
/home/saijoX/uXXXXXXX
といった場所で, RIISE では
/home/homeX/uXXXXXXX
といった場所になっていて, 異なっているからです. 相対パス名を使う
ようにして下さい.
-
コンパイルしてできた実行ファイルを ftp を使って RIISE に転送し
ます.
-
ユーザエントリマシンからログアウトします.
-
転送されたファイルに実行属性をつけます.
% chmod +x ファイル名
|