インターネット活用塾 6−(4)絶対パス、相対パス、フルパスの説明

絶対パス、相対パス、フルパス、path?

絶対パス、相対パス、フルパスの説明。
IT用語のパス(path)って何。フルパスで指定?
パス(path)はこのようになっています。

1.パスの概略
 パソコン上やネット上には多数のファイルやフォルダがありますので、閲覧や送受信したいファイルやフォルダを指定する必要があります。
 このファイル等の指定方法をパスと言い、「絶対パス」「相対パス」「フルパス」などがあります。

パスの概略はこのようになっています。
絶対パス 都道府県、市町村名など住所を指定して行き先を説明する方法
相対パス 現在地から信号を3つ進み、右に曲がって3件目のように現在地を元に行き先を説明する方法
フルパス 訪問者には見せたくない場所は省略して入れなくし、家族には倉庫など全ての道筋を説明する

2.なぜ同じパスでは駄目なのか
(1)絶対パスと相対パス
 隣の家の場所を聞かれた時に、都道府県市町村などの住所を答えるのではなく「隣」と答えます。
逆に、大阪から東京ディズニーランドの場所を聞かれた時に、現在地を始点として「この先の交差点を右に曲がり、地下鉄に乗り、新幹線に乗って・・・」と説明する人もいません。このように相対的に説明するか、絶対的に説明するのか、場合によって区分けする必要があります。

 全て絶対パスを使用した場合、ホームページ上の画像を全てhttpで指定すると、画像毎にドメインからIPを探し、サーバーを呼び出して、ファイルを探し・・・と煩雑になります。同じサーバーなら相対パスであればこのようにIPなどを探す必要がありません。

また、プログラムで書き込み命令を実行する時、httpから(外部から)データの書き込み命令などがあった時にはセキュリティ確保のため拒否しなければサーバー内のファイルは外から自由に書き換えられてしまいます。このようにデータの書き込みなどの命令は相対パスで指定しなければ拒否されます。

逆に他サーバーは相対的な場所ではありませんので、絶対パスで指定する必要があります。
このような理由から場合によって「絶対パス」と「相対パス」を切り分けて使用する必要があります。

(2)パス、フルパス
 外からの訪問者は玄関やリビングしか行きませんが、家族は倉庫や物置にも入ります。
このように外の人には複雑なパスを省略させて綺麗に見せると同時に、細かなところには入れなくします。
逆に管理者はサーバー内のいろいろなプログラムを実行したり、ファイルを操作しますので、パスは省略しません。
このように全てのパスを省略しないものを「フルパス」と言います。

3.絶対パス
 絶対パスは装置内の上部から、特定のファイルやフォルダの場所を指し示すルートになります。
PCでは「C:・・・\index.htm」のようにドライブからファイルなどを\で区切って場所を指定します。
WEBでは「http://ドメイン/フォルダ名/ファイル名」のように、サーバーのURL、サーバー内の格納場所、ファイル名を指定し、そのファイルがネット上のどこに存在しているかを指定しています。

例)このページの絶対パスの説明
http://www.chama.ne.jp/download/web/path.htm
http://www. WEBの
chama.ne.jp 「chama.ne.jp」サーバー
download 「download」というフォルダ内の
web 「web」というフォルダ内の
path.htm 「path.htm」というファイル

4.相対パス
現在地から相対的にファイル等の場所を指定します。
相対パスのルールは難しくありません。
ルール1: 「../」フォルダを一つ上に上がる
ルール2: 「フォルダ名/」フォルダ内に入る
ルール3: 画像やホームページを閲覧する時は「public」「www」などは省略する
ルール4: プログラムがファイルの書き込みなどを行なう場合「public」「www」などは省略出来ない

5.相対パスの例
例えば、下記のようなディレクトリ構造の場合の相対パスは下記のようになります。
[cgi-bin]
[aaa]
A.cgi
[www] (publicやhome htmlなどサーバーによって名前が異なります)
[bbb]
B.htm
C.gif

(1)B.htmからA.cgiにデータを送信したい場合
../../cgi-bin/aaa/A.cgi
B.htmlを起点とし
../ ../ cgi-bin/ aaa/ A.cgi
一つ上に上がる
(bbbの階層に)
更に一つ上に上がる
(www cgi-bin階層に)
cgi-binに入る aaaに入る A.cgiを指定
これで、B.htmからA.cgiにデータを送信出来るようになります。

(2)A.cgiの画面にC.gifを掲載したい場合
../../bbb/C.gif
A.cgiを起点とし
../ ../ bbb/ C.gif
一つ上に上がる
(aaaの階層に)
更に一つ上に上がる
(www cgi-bin階層に)
bbbに入る
(閲覧時、wwwは省略)
C.gifを指定

(3)A.cgiがB.htmを書き換える場合
../../www/bbb/B.htm
A.cgiを起点とし
../ ../ www/ bbb/ C.gif
一つ上に上がる
(aaaの階層に)
更に一つ上に上がる
(www cgi-bin階層に)
wwwに入る bbbに入る C.gifを指定
(ファイルの読み込み、書き込みなどのプログラム処理時は「www」などは省略出来ません。)

6.フルパス
通常、WEBサーバーではドライブ内の指定フォルダ内の「public」や「html」「home」「www」などのフォルダ内にホームページなどを保存しています。これらのフォルダのうち、WEB上に公開しているフォルダのみ指定すればファイルの特定が可能ですので、通常のパスは「public」などのフォルダ名は省略しています。
通常のURL:http://www.chama.ne.jp/index.htm
もし省略しなかった場合:http://www.chama.ne.jp/c:/www/chama/home/index.htm
のように長くなってしまいますし、cドライブ等を指定すると全てのファイルにアクセス出来てしまいます。
そのため、httpからアクセスする際はApachにより指定したフォルダを省略してアクセスするようになっています。
上記の場合「c:/www/chama/home/」を省略するようになっています。

この省略を行なわないパスが「フルパス」になります。
サーバー内でコマンドを実行する場合など、サーバー内のプログラムから特定のファイルなどを指定する場合、省略すると使用出来ないプログラムやファイルが出てしまいますので、フルパスで指定するようになっています。

※フルパスを知る方法
FTPソフトでサーバーに接続した状態で既に一部が省略されていますので、ブラウザやFTPでフルパスを調べることは出来ません。レンタルサーバーなどのフルパスを知りたい場合、サーバー管理者の方にお問合せ頂くか、下記のフルパスを調べるプログラムを実行します。

7.フルパスを調べるCGI
(1)ダウンロード、解凍
path.cgiはこちらからダウンロード出来ます。
Perlのパスがusr/local/bin/perlの場合、1行目を書き換えて下さい。

(2)サーバーにFTPで転送します。

(3)アクセス権を設定します。700や755でお試し下さい。

(4)ブラウザのURL欄にpath.cgiのURLを入力し、エンターを押すとフルパスが表示されます。

※上記の解説は分かり易くするよう抽象的に説明しています。
実際にパスの仕組みを作った方の考え方とは異なるかもしれません。



© Copy Right 2001 Chama.ne.jp