ホームページ作成・CGI_________ |
CGIの予備知識2 |
絶対パスと相対パス
WWWサーバーの中を動き回るためには、いくつか理解しておくべき用語があります。中でも絶対パスと相対パスについては必須となりますが、その前にUNIXのディレクトリ用語について説明しましょう。
・カレントディレクトリ |
現在ユーザー自身がいるディレクトリのことで、作業ディレクトリとも呼ばれます。pwdコマンドでカレントディレクトリの名前、つまり今あなたがどこにいるのかを知ることができます。 |
・サブディレクトリ |
カレントディレクトリの中にあるディレクトリ。 |
・ホームディレクトリ |
ユーザー個人のディレクトリ。例えば、ユーザー名がvaioならばホームディレクトリは/home/vaioとなります。ユーザーはホームディレクトリより下に格納されているファイルならすべてをコントロールすることができます。 |
・ルートディレクトリ |
ファイルシステムの最上位レベルであり、/(スラッシュ)で表されます。 |
・絶対パス(絶対ファイル名) |
ファイル階層のどこにいても有効なファイル名で、/(スラッシュ)で始めて、そのファイルまでのフルパスを指定することで取得することができます。例えばホームディレクトリの中のfoldというディレクトリの中にvaio.htmlというファイルがあるとすると、/home/fold/vaio.htmlが絶対ファイル名になります。 |
・相対パス(相対ファイル名) |
相対ファイル名はカレントディレクトリを基準としてファイルを指定します。上記の例で/homeにいる場合であれば、vaio.htmlの相対ファイル名はfold/vaio.htmlになります。(図1参照) |
ディレクトリ間の移動
あるディレクトリから別のディレクトリに移動するにはcdコマンドを使います。例えばホームディレクトリ(/home)にいるときにfoldディレクトリに移動したければ、下記のコマンドを使います。
cd fold
ホームディレクトリに戻る、つまりカレントディレクトリの親ディレクトリに移動するには、
cd /home
で戻れますが、この他にも便利な省略記法があります。
cd ..
上記のようにダブルドット(..)を使うことで、1レベル上の親ディレクトリに移動することができます。
下記に簡略化表現をまとめます。
表現例 | 意味 |
. | カレントディレクトリ |
.. | 親ディレクトリ |
~ | 自分のホームディレクトリ |
~vaio | ユーザーvaioのホームディレクトリ |
図1
・ファイル「vaio.html」に対する表現
例 | 意味 |
/home/fold/vaio.html | 絶対パス表記 |
./vaio.html | 相対パス表記 |
vaio.html | 相対パス表記から、”./”を省略 |
~/vaio.html | ~を用いた表現 |
~fold/vaio.html | ~foldを用いた表現 |
CGIを動かすためには、この絶対パスと相対パスの表現は必須です。どちらでも表現できるようにしておきましょう。
CGIとSSIの違い
以上、簡単に解説してきましたが、最後にCGIとSSIの違いについて復習しておきましょう。
CGI
訪問者がブラウザを介してサーバーに送ったURLリクエストに対してhttpデーモンがサーバー内で処理を行い、その結果をブラウザに返します。従来の単純なHTMLスクリプトは、作成したページの内容をそのまま単純にブラウザに表示するのに対して、CGIの場合は表示内容が動的に変化したページの実現が可能となります。CGIスクリプトのファイル名は.cgiが一般的で、サブルーチンファイルは.plなどがあります。
サブルーチン
同じ処理を何回も繰り返したり他のスクリプトでも使いたいような処理があるとき、その都度記述していたのでは面倒な上間違いを起こしたり、やたらと長いスクリプトになってしまいます。そこで、別ファイルに"よく使うプログラム"としてあらかじめ記述しておき、必要に応じてメインファイルへ呼び出して使うと便利です。その"よく使うプログラム"のことをサブルーチンといいます。
SSI
SSIは、訪問者がブラウザを介してサーバーに送ったURLリクエストに対して、HTMLスクリプトの中にコメント文の形式で「SSI実行命令文」を記述することによりCGIを実行させ、間接的にhtmlファイルへ結果を表示させることができます。SSIの実行結果はそのページのHTMLスクリプト内の「SSI実行・命令文」と置き換えられて表示されますので、訪問者がhtmlのソースを表示してもSSI命令は表示されません。(つまり仕込むことができます)1行のタグでCGIの実行結果やサーバーのパラメータを返してくれるので、アクセスカウンタや、訪問者がページを訪れた時点での現在時刻表示とかによく利用されています。SSIを実行するためのファイル名は.shtmlが一般的ですが、設定により.htmlでも使用することができます。
稀に自分で.htaccessファイルを作成して、ディレクトリ内に置いておかなければならない場合もあります。その場合、.htaccessファイルに次の一行を記述します。
AddType text/x-server-parsed-html .html
最後に基本的なSSIの書式を記しておきます。もし、あなたの加入しているプロバイダがSSIを許可しているのであれば、すぐにホームページ内に組み込むことができます。
基本的なSSIの書式は以下の通りです。
<!-- #命令 オプション = "引数" -->
・例
最終更新日: <li>最終更新日:<!--#echo var=" LAST_MODIFIED" --><br> 現在時刻: <li>現在時刻:<!--#exec cmd=" date" --><br> アクセスログをとる場合:(ログ取りcgiスクリプトをacclog.cgiとした場合) <!--"exec cgi="./acclog.cgi"--> |
CopyRight (C) 2000-2013 by T.Shiraishi All right reserved 無断転載禁止/リンクフリー |