これで、ファイルの転送は終わりました。
ところが、このままではまだカウンタを使うことは出来ません。
ファイルの許可情報(permission)というものの変更が必要です。
ここでいきなりファイルの許可情報といわれてもピンとこないかもしれませんが、言い方を変えればファイルの属性のことです。
BIGLOBEをはじめとする多くのWebサーバーは一般にUNIXと呼ばれるOS(オペレーティングシステム)のもとで稼働しています。このUNIXで扱うファイルには読み出し(read)の許可、書き込み及び削除(write)の許可、実行(execute)の許可といったアクセス権があります。また、このアクセス権はファイルの所有者、ファイルの所有者と同じグループのメンバー、その他の人という分類に対して別々に設定できます。
これらのアクセス権はディレクトリに対しても存在しその時は、そのディレクトリの中に何があるかを参照する(read)許可、そのディレクトリの中にファイルやディレクトリを作成したり削除をする(write)許可、そのディレクトリをカレントディレクトリにする(execute)許可という意味になります。
このようなアクセス権の情報のことを許可情報、あるいはパーミッション、保護モード、許可モード…等々、いろんな呼び方をしています。ここでは、「許可情報」で統一することにします。
ふつう、CGIはファイルの所有者ではなく「その他の人」のアカウントによって実行されるものなので、「その他の人」に実行の許可を与える必要があります。ちなみに、ファイル所有者本人であってもブラウザを使ってホームページにアクセスするときは「その他の人」のアカウントになります。
前置きはこのくらいにして、実際に設定してみましょう。
設定しなくてはいけない項目をリストアップすると、
ftp> quote site chmod 755 ycount.cgi
ftp> quote site chmod 666 kazu
ftp> quote site chmod 777 lockcheck
ftp> dir 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls. total 4 drwxrwxr-x 2 yuki homepage 512 Jan 29 00:03 image -rw-rw-rw- 1 yuki homepage 1 Jan 29 00:01 kazu drwxrwxrwx 2 yuki homepage 512 Jan 29 00:02 lockcheck -rwxr-xr-x 1 yuki homepage 671 Jan 29 00:00 ycount.cgi 226 Transfer complete. ftp>
だいたい、このようになりましたか?
ここで必要なのは、最初の10文字の記号とファイル名です。
この見方は以下のとおりです。
リンク数 グループ名 更新日時 ↓ ↓ ↓ -rwxr-xr-x 1 yuki homepage 671 Jan 29 00:00 ycount.cgi ~~~~~~~~~~ ~ ~~~~ ~~~~~~~~ ~~~ ~~~~~~~~~~~~ ~~~~~~~~~~ ↑ ↑ ↑ ↑ 許可情報 所有者 サイズ ファイル名重要なのは許可情報の読み方です。
- 普通のファイル
d ディレクトリ
b デバイスファイル(ブロック型)
c デバイスファイル(キャラクタ型)
l リンク
2文字目から4文字目までは、所有者に対するファイルの許可情報で
5文字目から7文字目までは、グループユーザーに対するファイルの許可情報で
8文字目から10文字目までは、その他のユーザーに対するファイルの許可情報を表わします。
その見方は、
rが読み出しの許可、wが書き込み(削除)の許可、xが実行の許可でそれぞれ対応する位置が-のときは、それぞれが禁止されているという意味です。
もし、対象がディレクトリのときはrはそのディレクトリの中を参照する許可、wはそのディレクトリの中にファイルやディレクトリを作成や削除する許可、xはそのディレクトリをカレントディレクトリにする許可という意味になります。
よってこの場合(-rwx---r-x)は、「ファイルの種類は普通のファイルで所有者は読み書き実行が出来る。グループユーザーは読みも書きも実行も出来ない。その他のユーザーは読み出しと実行が出来るが、書き込みは出来ない。」と読みます。
まず、ターゲットのファイル(ディレクトリ)を選択し反転表示させておきます。
次にRemoteメニューからSet Permissions...を選びます。(下図参照)
すると、次のようなウィンドウが現われます。
このウィンドウで許可情報の設定を行います。
Search/ Read Write Execute Owner: × × × Group: × □ × Everyone: × □ ×このようにチェックして、OKをクリックしてください。
Search/ Read Write Execute Owner: × × □ Group: × × □ Everyone: × × □このようにチェックして、OKをクリックしてください。
Search/ Read Write Execute Owner: × × × Group: × × × Everyone: × × ×このようにチェックして、OKをクリックしてください。
total 4 drwxrwxr-x 2 yuki homepage 512 Jan 28 23:25 image -rw-rw-rw- 1 yuki homepage 1 Jan 29 00:09 kazu drwxrwxrwx 2 yuki homepage 512 Jan 29 00:17 lockcheck -rwxr-xr-x 1 yuki homepage 671 Jan 29 00:12 ycount.cgiだいたい、このように表示されましたか?
まず、ターゲットのファイル(ディレクトリ)を選択し反転表示させておきます。
次にCommandsメニューを開き、Custom CommandsというサブメニューからChange File Access maskを選びます。(下図参照)
すると、次のようなダイアログが現われます。
このダイアログで許可情報の設定を行います。
ycount.cgiを選択し、Access Maskダイアログを開き、755と入力してOKをクリックする。
kazuを選択し、Access Maskダイアログを開き、666と入力してOKをクリックする。
lockcheckを選択し、Access Maskダイアログを開き、777と入力してOKをクリックする。
Options FollowSymLinks Indexes ExecCGI Includes
AddType application/x-httpd-cgi .cgi
という行を追加します。(.cgiの前にはスペースが入る)
そして、このファイルをpublic_htmlディレクトリにasciiモードで転送してください。
ただし、サーバーによっては既に.htaccessファイルがサーバー管理者によって準備されている場合があります。この場合はこのファイルを一回ダウンロードして、ダウンロードしたファイルの最後に追加し、このファイルを転送するようにして下さい。
なお、これらの作業はサーバーによっては、サーバー管理者の方ですでに設定してあり利用者はなにもしなくてもいいこともあります。
詳しくは、サーバー管理者にお問い合わせください。