« 8.自力でCGIを動かしましょう。 | メイン | 10.データファイルのあるCGIを動かす。 »
2005年02月27日
9.属性変更・パス等の話。
前回はともかく、まずはCGIがそんなにとっつきにくいものではないことを学んで貰いました。 が、説明が不十分なので、ここではそれの追記をしていきます。 このことを知らないままにCGIをいじったりしてる人は沢山いますが、押さえておくととても楽になります。 前回の復習であり、次回の予習でもあります。
- 属性(パーミッション)の変更
ファイルには、属性(パーミッション)というものがあります。
「オーナーユーザ・グループユーザ・その他のユーザ」に分かれていて、それぞれの「読出許可・書込許可・実行許可」をする訳です。オーナユーザとは自分自身、グループユーザとは同じサーバーに入れる人たち、その他のユーザとは、サイトに遊びに来るお客さんだと思って下さい。今回は、CGIファイルの属性のみを変えますのでオーナユーザには全ての許可を、グループユーザには読出と実行の許可のみを与えます。(01.cgiは書き換えられると困るからね。) 表に書くとこんな感じになります。
オーナーユーザ グループユーザ その他のユーザ
読出許可(4) ○ ○
書込許可(2) ○
実行許可(1) ○ ○
これが基本(705)になります。読出+書出+実行=4+2+1=7で、「7」です。>オーナユーザを例に。数値は表を参照のこと。 グループユーザは何も許可してないから「0」。 その他のユーザは、読出+実行=4+1=5で、「5」です。 だから、705なのね?属性については解ったかな?(゚-゚;)ところが、xreaの場合はsuexecというモジュールが入っているので、705にしなくてもオーナーユーザーのみの権限でもって、その他のユーザーにもCGIを稼動することが出来るのです。 その為、CGIをはじめとする実行ファイルの属性は700にします。
同様に、次回に扱うようなデータファイルを使用している掲示板のようなスクリプトの場合はデータファイルの属性は通常ですと606になります。 サイトに遊びに来るお客さんもファイルに掲示板から書き込んだり出来ないと都合が悪いですよね。
しかし、やはりsuexecのお陰でパーミッションは600で稼動します。 また、ファイルを自動的に作成する必要があるディレクトリの属性は707や777にするように、との指示をしばしば受けますが、その場合は705としてください。 全く問題なく動作しますからね。
- CGIの一行目にはPerlの場所を書く。
CGIの一行目にはPerlの場所を指定します。 xreaの場合は「#! /usr/bin/perl」になります。 01.cgiをテキストで開いて確認してみてくださいね。
- ファイルの位置を覚えよう。
前回のようなシンプルな形のCGIでは必要ありませんでしたが、次回のようなデータファイルが必要となるCGIなどの場合、そのデータファイルがサーバーの中で何処にあるのか指示してやる必要が出てきます。 httpではじまるURLとは違い、絶対パスや相対パスといった手法で、データファイルがどこにあるのか実行ファイル(CGIなど)に教えてやる必要があります。 データファイルだけでなく、requireで呼び出されるファイルの位置も正しく伝えられていないと、CGIはきちんと動いてくれません。
では、前回の例題で使用した01.cgiのフルパスはどうなっているのか考えて行きましょう。
前回、相関図を参照しながら考えてね。
問題:01.cgiがサーバー内で何処にあるのか示せ。
答え:/virtual/mikan/public_html/tanucha.green-island.net/intro01/01.cgi一番上の根っこ(ルート)から、下に向かって順番に伸びているのが解りますか? こうやってプログラムに、01.cgiがサーバーの中で何処にあるのかを教えてあげるのです。
それでは、例題です(・・; http://mikan.s61.xrea.com/index.shtml ←のindex.shtmlの場所をフルパスで示すとなると、どのように書けばいいのでしょう。
答え:/virtual/mikan/public_html/index.shtml
になります。 解りましたか?
投稿者 tanucha : 2005年02月27日 13:06
トラックバック
このエントリーのトラックバックURL:
http://mainte.yukiakari.org/tanu-link.cgi/48
