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
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らしい)と同じ環境をローカルに用意して、そこでコンパイルしたものをアップするという手法もあります。が細かいスペックを私は知りません。^^;