CGI(Common Gateway Interface)
Apacheサーバー構築法 - 第11回 動的コンテンツを作る「CGI」の基本:ITproを見ながら遊んでみる。
前処理(mod_cgiモジュールの導入)
mod_cgiモジュールがデフォルトで有効であることを確認
# /usr/sbin/apache2ctl -M Loaded Modules: (snip) cgi_module (shared) (snip) Syntax OK
CGIを実行するディレクトリの設定
こちらもデフォルトで設定済み
# vi /etc/apache2/site-available/default (snip) 33 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 34 <Directory "/usr/lib/cgi-bin"> 35 AllowOverride None 36 Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 37 Order allow,deny 38 Allow from all 39 </Directory> (snip)
簡単なスクリプトを作成する
別途、勉強しよう。
#!/usr/bin/perl # 上の1行の前には空行も空白文字もはいらないようにしてください。 # perlのパス名はプロバイダや環境に合わせて変更してください。 # # CGIのヘッダを書き出します。通常は text/html を指定します。 # print "Content-type: text/html\n"; print "\n"; # # HTMLを書き出します。 # "〜\n" の 〜 の部分に HTML を記述しますが、ダブルクォーテーション( " ) # を用いる際は " の代わりに ' を用いるか、\" のように、バックスラッシュ( \ ) # を前に置いてください。 # print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"\n"; print " \"http://www.w3.org/TR/html4/loose.dtd\">\n"; print "<html lang=\"ja\">\n"; print "<head>\n"; print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n"; print "<title>cgi.cgi</title>\n"; print "<link rel=\"shortcut icon\" href=\"favicon.ico\">\n"; print "</head>\n"; print "<body>\n"; print "<h1>CGIのテスト</h1>\n"; # # HTMLの終わりの部分を書き出します。 # print "</body>\n"; print "</html>\n"; print "\n";
スクリプトをアップロード
# pwd;ls -l cgi.cgi /usr/lib/cgi-bin -rwxr-xr-x 1 ee83126 ee83126 1021 2009-05-18 01:54 cgi.cgi
ターミナル上で実行してスクリプトの動作を確認
# ./cgi.cgi Content-type: text/html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>cgi.cgi</title> <link rel="shortcut icon" href="favicon.ico"> </head> <body> <h1>CGIのテスト</h1> </body> </html>