ホームページを公開する


公開の前にすること

この大学では、学生はWWW発信実験に参加すればだれでも自分のホームページを公開することができます。これに参加するためにはWWW発信実験参加申し込みのページで登録を済ませてください。おそらく一日後には使えるようになっていると思います。

ftpを使ってWWWサーバにログインする

さて、今回のメインはftpにおけるコマンドを使いこなせるようになることです。
ftpというのは、簡単に言えば2つのサーバ間でファイルを転送するプログラムのことです。送り元をローカル、送り先をリモートと呼びます。まずここではftpを使うためこれにログインしてみましょう。WWWサーバはuser.ecc.u-tokyo.ac.jpですので これにログインします。次の通りに入力してください。

g999999@as301> ftp user.ecc.u-tokyo.ac.jp
Connected to user.
220 ProFTPD 1.2.2 Server (user.ecc.u-tokyo.ac.jp) [user.ecc.u-tokyo.ac.jp]
Name (user.ecc.u-tokyo.ac.jp:g999999):(通常はそのままリターン)
331 Password required for g999999.
Password:(パスワード入力。何も表示されない。)
230 User g999999 logged in.
ftp>

ftpでディレクトリ移動

さて、まずアップロードするまでの流れを説明します。
ローカルにもリモートにもカレントディレクトリというものが存在します。まず、ローカルとリモートをそれぞれ目的のディレクトリに移動させる必要があります。これのやり方について説明することにします。
基本的にはftpにおけるコマンドはUNIXのコマンドと対応しています。UNIXのコマンドと全く同じコマンドを使った場合、それはリモート側に作用します。つまり、lsと入力すればリモート側のカレントディレクトリ内のファイル一覧が表示され、cd [ディレクトリ名]とすればリモート側のカレントディレクトリを変更できます。
では、ローカルに対するコマンドにはどのようなものがあるのでしょうか?これらのコマンドを一覧にしますので覚えておきましょう。

lsリモートのファイル一覧を表示
!lsローカルのファイル一覧を表示
pwdリモートのカレントディレクトリを表示
!pwdローカルのカレントディレクトリを表示
cdリモートのカレントディレクトリを変更
lcdローカルのカレントディレクトリを変更
quitftpを終了する
では実際にコマンドを実行してみましょう。ローカルのカレントディレクトリはftpを実行したディレクトリに初期設定されています。仮にftpを実行したのがルートディレクトリだったとします。このときはlcdコマンドでローカルのカレントディレクトリを.public_htmlに移します。ログインしたとき、リモートのカレントディレクトリはルートディレクトリに初期設定されています。lsを実行すると分かりますが、我々はWWWページで公開するファイルは.public_htmlに置かなければならないのでcdで.public_html内に入って下さい。
ftp>lcd .public_html(これでローカルのカレントディレクトリが.public_htmlになる。)

ftp>cd .public_html(これでリモートのカレントディレクトリが.public_htmlになる。)

ftpでファイル転送

ついにファイルを転送します。!lsを実行すればローカルにindex.htmlというファイルが存在することが確認できるはずです。これをリモートに送るにはputコマンドを用います。リモートにあるファイルをローカルにダウンロードするときはgetコマンドを用います。これらのコマンドではワイルドカード(つまり*.html,*.*などの複数のファイルの指定)が利用できません。ワイルドカードを使いたいときはmputコマンド、mgetコマンドを使ってください。
ftp>put index.html

ftp>mput *.html(これでローカルにあるHTMLファイルが全てリモートに送られた)

画像ファイルを送る

画像ファイルを送るには特殊な方法が必要です。今までは初期設定のascii転送モードで送っていたのですが、これで画像ファイルを送ると画像ファイルの表示がおかしくなってしまいます。そこで、binary転送モードに切り替える必要があります。これに切り替えるにはbinaryまたはbinと入力してください。逆にascii転送モードに戻すときはasciiまたはascと入力してください。
では実際に送ってみましょう。画像ファイルはローカルではpictureというサブディレクトリ内に保存してあるのでリモートでもその中に画像ファイルを入れましょう。
ftp>pwd

ftp>mkdir picture

ftp>cd picture

ftp>!pwd

ftp>lcd picture

ftp>bin

ftp>mput *.gif

ftpでパーミッション変更

パーミッションとは簡単に言えば他人のアクセス権を指定するものです。読み込み、書き込み、実行の3種類のアクセスに対して制限を指定することができるのもです。UNIXではchmodというコマンドを使ってパーミッションを変えることができました。例えば、ルートディレクトリで

g999999@as301> chmod 755 .public_html

と入力してみましょう。読み込みは+1、書き込みは+2、実行は+4で、通常は1つ目の数字が自分、2,3つ目の数字が他人に対するアクセス権の指定なので、簡単に言えば他人にディレクトリの中に入ることを許していることになります。これは危険をはらんでいます。cdと入力して、ルートディレクトリに戻った後、cd ..と入力してください。この後cd g??????(あなたの学生証番号)を入力すればもとに戻りますが、ここで友達の学生証番号を入力すると、なんと友達のディレクトリに入れてしまいます。これはその人のディレクトリのパーミッションが初期設定の755であるからです。実際に、こちらから友達のディレクトリにファイルをコピーすることはできませんが、逆ならできます。しかし、

g999999@as301> chmod 700 g??????

と入力して他人のアクセス権を拒否すれば他人から自分のディレクトリの中身を見られることもなくなります。他人に掲示板の管理人パスワードなどを見られてしまいますからね。でも課題などで、教官にメールではなくファイルで提出する場合は教官がファイルを見られなくなるのでパーミッションをもとに戻しておきましょう。
さて、本題に戻りますが、このパーミッションをリモートのファイルに対して指定する場合は次のようにしてください。

ftp> quote site chmod 644 index.html

パーミッションは通常は644に設定されているので気にする必要はありませんが、掲示板などで他人が書き込み(つまり投稿)を許可したり、cgiを実行できるようにする場合などで必要になるので覚えておきましょう。

これでftpの説明は終りです。家から大学のWWWサーバにアクセスする方法もありますが、これは時間があればそのうち説明することにします。利用の手引きに詳しくその方法が書いてあるので読んでみてください。