MaK@Net >> Plala CGI server Labo.

ぷららCGIサーバ実験室

注意:このページに書いてあることを実行、あるいは実行しようとしたことにより生じた一切の損害等について、筆者は責任を負いません。自己責任でお願いします。また、余計な規制を掛けられないためにも、あらかじめサーバの負荷などを考慮し、常識の範囲内で使用してください。

目次

  •  Cで書かれたCGIプログラムを動かす
  •  PHPを使う


    Cで書かれたCGIプログラムを動かす

    Cで書かれたCGIの導入というと、telnet接続してコンパイルするのが割とポピュラーかと思われますが、ぷららのユーザCGIサーバは残念ながらtelnet接続ができません。 しかし、shシェルスクリプトは動かせます。また、そこでは
    /usr/bin/gcc
    /usr/bin/g++
    /usr/bin/make
    などのコマンドが使えます( which gcc などとやれば所在が確認できます)。 これを利用すればCやC++のコンパイルが実現できます。

    例えば、以下のようなCプログラムを適当な名(ここでは test.c とします)でCGIサーバの適当なディレクトリにアップロードします。↓いわゆる hello, world です。(^^;

    
    #include <stdio.h>
    
    main(){
    printf("Content-type: text/html\n");
    printf("\n");
    
    printf("Hello, world.\n");
    }
    
    次に、以下のようなshスクリプトを適当な名(ここでは test.sh とします。)で先のファイルと同一のディレクトリにアップロードし、パーミッションを設定します。ぷららのCGIサーバなら、パーミッションはオーナーを7(読み書き実行可)にしておけば問題ありません。ここではとりあえず 704 にします。
    #!/bin/sh
    echo "Content-type: text/html"
    echo ""
    
    gcc -o test.exe test.c
    
    echo "OK."
    
    コンパイルに必要なファイルは用意できました。さて、このshスクリプトを呼び出して(アクセスして)みると、
    OK.
    
    と出力されます。これでコンパイル完了です。
    コンパイルで作成されたCGIプログラム test.exe を実行(アクセス)してみます。
    Hello, world.
    
    と表示されたなら、成功です。
    これを応用すれば、g++ でコンパイルしたり、Makefile に記述したものを make することもできます。

    注:なお、ここで紹介したやり方以外にも、ぷららのCGIサーバ(Linuxらしい)と同じ環境をローカルに用意して、そこでコンパイルしたものをアップするという手法もあります。が細かいスペックを私は知りません。^^;


    PHPを使う

    ぷららCGIサーバ(ここでは cgi13.plala.or.jp )にHEAD要求します。
    するとこんな返答が来ると思います。(以下は
    NetSpelunker による出力結果です。)
    >> 2002年10月28日20時58分59秒  HttpHead - cgi13.plala.or.jp
    
    HTTP/1.1 200 OK
    Date: Mon, 28 Oct 2002 11:59:00 GMT
    Server: Apache/1.3.26 (Unix) PHP/4.2.2
    Connection: close
    Content-Type: text/html
    
    Server: の行に注目。このサーバには PHP Version 4.2.2 が入っていることが確認できます。
    例えば、以下のスクリプトを拡張子 .php で保存し、CGIサーバにアップロードします。
    (パーミッションはそのままでいいです。)
    
    <html>
    <body>
    <?php
    phpinfo();
    ?>
    </body>
    </html>
    
    いまアップロードしたファイルにアクセスしてみると、phpinfo() によってPHPのいろいろな情報が出力されます。
    PHPの構文については解説書なりサイトを参照してください。
    他にもいろいろできると思いますが、私自身PHPはほとんど知らないので、このへんで…



    MaK@Net バナー
    Topへ
    mak@sky.plala.or.jp