C 言語で作ったプログラムは CGI として使えないのですか?


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 です. また, 全学部生にあらかじめアカウントが発行してあるので, 特に手続きをすることなく使うことができます.

手順としては以下のようになります.

  1. ユーザエントリマシンに遠隔ログインします.

    % telnet ue.ipc.hiroshima-u.ac.jp

    パスワードを問われます. (もし一度もログインしたことがなければ) 学 生証と一緒にもらった初期パスワードを入れて下さい. ログインできたら,

    % passwd

    というコマンドでパスワードを変更できます.

  2. ソースファイル一式を 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 に転送する

    などのコマンドを使って必要なファイルを転送します.

  3. gcc を使ってコンパイルします. このとき, 設定ファイルやデータファ イルなどが絶対パス名 (/で始まるパス名) で指定してある場合は注意が必 要です. IPC ではユーザのホームディレクトリは

    /home/saijoX/uXXXXXXX

    といった場所で, RIISE では

    /home/homeX/uXXXXXXX

    といった場所になっていて, 異なっているからです. 相対パス名を使う ようにして下さい.

  4. コンパイルしてできた実行ファイルを ftp を使って RIISE に転送し ます.

  5. ユーザエントリマシンからログアウトします.

  6. 転送されたファイルに実行属性をつけます.

    % chmod +x ファイル名

戻る