平成20年度 情報科学III (理系コア科目・2年生) サーバでのファイルの扱い、HTML 担当 岡村耕二 月曜日 2限 http://okaweb.ec.kyushu-u.ac.jp/lectures/jk3/ 本資料の一部は、堀良彰准教授、天野浩文准教授等による 1 以前の講義資料をもとにしています。 前回のおさらい(1) この講義の目標 – クライアントからのアクセスがあった時にサーバで実行され, ブラウザ画面での表示を動的に生成するようなプログラムを 作る. • クライアントからの情報に応じて,データベースを検索, 更新する. 作業環境の説明 – 端末室のPC – システム情報科学府のサーバ – 出席管理システム サーバサイドプログラミングとは 2 前回のおさらい(2) --基本的な作業環境 九州大学 教育用計算機システムのPC Windows XP サーバ システム情報のサーバ サーバ ファイル IDとパスワードはすでに発行済 み ファイル UNIX + webサーバ 他 IDとパスワードは 本日配布 このサーバには,webサーバの他に PHP言語処理系 データベース管理システム(MySQL) がインストールされている. 3 前回のおさらい(3) --最終課題で製作するもの SQL クエリ ブラウザ PHPプログラムは,クライア ントからのリクエストに応じ てデータベースにアクセス し,その結果を整形してブ ラウザに返す. また,データベースにアク セスする際には,SQL言語 によるクエリ(問い合わせ, query)を発行する. web サーバ PHP プログラム 検索・更新 の結果 データベース 管理システム (DBMS) データベース 4 本日やること 作業環境の説明(続き) – 各システムでの作業の概要 – サーバのアカウント・パスワードの配布 – ログインのしかた – UNIXコマンドの基礎 – HTML・PHPファイルの置き場所 文字コードの話 実習:簡単なwebページ作成 – PC上でHTMLファイル作成 – ファイルを適切なフォルダ(ディレクトリ)に複写 – ブラウザで確認 5 各システムでの作業の概要 九州大学 教育用計算機システムのPC システム情報のサーバ bossp Windows XP ファイル UNIX +webサーバ +PHP +SQL ファイル ファイルの編集 • TeraPad を使用 ファイルの転送 • WinSCP3 を使用 サーバ上のwebページ・PHPプログ ラムの確認 • Internet Explorerを使用 リモートサーバへのアクセス • Tera Term Pro を使用 (PCからリモートサーバのコマンドを実行) ログイン パスワードの変更 webページ・PHPプログラム用ディレクトリ の作成(初回のみ) • mkdir コマンド • chmod コマンド 6 PCのデスクトップ画面 このあたりに Tera Term Pro TeraPad のアイコンが ある. 残念ながら,WinSCP3のアイ コンはデスクトップ上には出て いない. 左下のスタートメニューから探 して起動すること. 7 リモートサーバへのアクセス -Tera Term Pro PCからリモートサーバへログインし,コマンド操作を行うための端末エミュ レータソフト(フリー) – http://hp.vector.co.jp/authors/VA002416/ もともとは,Telnet プロトコルによる端末接続をサポートしていた. – Telnetは通信データを暗号化しないため,悪意のある第三者が通信経 路上にいた場合,「盗み聞き」を防げない. • 最初に入力するIDやパスワードが盗まれる危険性も. – そこで,利用者認証の段階からすべての通信データを暗号化する SSH (Secure Shell)プロトコルが考案された. • 現在では,Telnet を禁止し,SSH によるアクセスのみを許可する サーバが増えた. – Tera Term Pro にも,SSH機能のための追加モジュールが提供されるよう になった. 教育用計算機システムの Tera Term Proでも SSH が利用できるので,今回 の講義でも必ず SSH を使用すること. 8 Tera Term Pro の操作(1) デスクトップのアイコンをダブルクリックして起動 この部分のホスト を下のものに変 更する. bossp.is.kyushu-u.ac.jp 9 Tera Term Pro の操作(2) セキュリティ警告が表示されるが,ホスト名を正しく入力できて いることが確認できたら,そのまま続行する. 10 Tera Term Pro の操作(3) 「SSH認証」ダイアログで,ユーザ名とパスワードを入力する. ユーザ名は,教育用システムのアカウント名と同じにしてある. パスワードは講義中 に別途伝達する. 11 Tera Term Pro の操作(4) ログインに成功すると,以下のようなウィンドウが現れる. このウィンドウに表示 される内容は,リ モートサーバ上での コマンドの入力とそ れに対する画面出 力である. 入力されたコマンド は,PCではなくサー バで実行される. 12 リモートサーバでの操作 -UNIXのコマンド Telnet や SSH でアクセスする場合,サーバに仕事をさせるに は,キーボードからコマンド(文字列)をタイプして,Enter キーを 押す. – 実行した結果の出力も文字列で画面(端末エミュレータウィ ンドウ内)に表示される. 前回どこからアクセスしたか 画面上で次に文字が入力される位置 示すカーソル(点滅表示) Last login: Mon Apr 16 18:55:09 2007 from ... [te999999@bossp ~]$ サーバ(UNIX)が,利用者からのコマンドを待っている ことを示す表示(プロンプト,prompt) サーバへのアクセスを終了するときは,logout と入力して Enterキーを押す. 13 カレントディレクトリ ディレクトリ(directory) – Windows の「フォルダ」と同等のものだが, UNIXでは,伝統的に「ディレクトリ」と呼ん でいる. – 残念ながら,UNIXでは,Windowsのような グラフィカルな表示はできないことも多い. カレントディレクトリ – 現在自分が作業をしているディレクトリ – ある利用者がログインした直後のカレント ディレクトリは,その利用者の「ホームディレ クトリ」(略してホーム)と呼ばれる. – ホームは,通常,ユーザ名と同じ名前に なっている. また,「~」(ティルダ,tilde)とい う文字で表すことがある. te999999 + doc + fun - kogi file1 file2 14 UNIXコマンドの実行例(1) -パスワード変更 passwd コマンド – 現在のパスワードを新しいものに変更する. • 現在のパスワードを入力(1回) • 新しいパスワードを入力(2回) – 辞書にあるようなつづりや,元のパスワードに似たもの,など は拒絶される. [te999999@bossp ~]$ passwd Changing password for user te999999. Changing password for te999999 入力した内容は画面に表 (current) UNIX password: 示されず,カーソルも動か New UNIX password: ない. Retype new UNIX password: passwd: all authentication tokens updated successfully. [te999999@bossp ~]$ 15 忘れないうちに自分のパスワードを変更しておこう. 英数字を混ぜたもの(6文字以上8文字以下)がよ い. 当然のことだが,以下のようなパスワードは盗まれる 危険が高いので使うべきでない. 自分のユーザ名(ログイン名ともいう)と同じつづり 自分の姓または名と同じつづり 辞書に出ているような言葉と同じつづり 固有名詞でも,一般名詞でも タレント・有名人の名前と同じつづり アルファベットのみ,または,数字のみ “Password” 16 UNIXコマンドの実行例(2) -ディレクトリ作成 mkdir (make directory)コマンド – カレントディレクトリ配下に,新しいディレクトリを作成する. • ただし,カレントディレクトリ配下にすでにあるディレクトリ のさらに下など,カレントディレクトリ直下以外の場所に作 ることもできる. [te999999@bossp ~]$ mkdir public_html [te999999@bossp ~]$ 17 UNIXコマンドの実行例(3) -ディレクトリの移動・確認 cd (change directory)コマンド – カレントディレクトリを移動させる. – 1つ上のディレクトリに戻るには,「..」(ピリオド2つ) – 何も添えずに「cd」とだけタイプすると,ホームに戻る. pwd (print working directory)コマンド – カレントディレクトリを表示する. [te999999@bossp ~]$ cd public_html [te999999@bossp public_html]$ pwd /home/te999999/public_html [te999999@bossp public_html]$ cd .. [te999999@bossp ~]$ 18 ここで,次回以降の課題ファイルを置くためのディレ クトリ public_html を,自分のホームディレクトリに 直下に作成しておこう. 通常,各ユーザのwebページは,ホームディレクトリ 配下の public_html ディレクトリ配下に置かなけ ればならない. 19 UNIXコマンドの実行例(4) -ファイルの一覧表示 ls コマンド (アルファベット小文字のエルとエス.listから) – 単に ls とだけタイプして Enter キーを押すと,カレントディレクトリ配下 のファイルやディレクトリの名前だけを一覧表示する. – 「LANG=C ls –l」とタイプすると,名前の他に,様々な情報を表示す る. • LANG=Cは,端末エミュレータが日本語をうまく処理できないような場 合に日本語メッセージ出力を抑止して,画面上の文字化けを防ぐた めの「おまじない」 • そのような制約がない場合には,ls –l だけでよい. 日本語が正しく表示できる場合 [te999999@bossp ~]$ ls には,LANG=C を付ける必要は public_html ない. [te999999@bossp ~]$ LANG=C ls –l total 8 • drwxr-xr-x 2 te999999 student 4096 Apr 17 10:34 public_html [te999999@bossp ~]$ 20 UNIXコマンドの実行例(5) -ファイル等の削除 rm (remove)コマンド – ファイルを削除する. rmdir (remove directory) 日本語が正しく表示できる場合 には,LANG=C を付ける必要は ない. – ディレクトリを削除する. [te999999@bossp ~]$ mkdir test [te999999@bossp ~]$ LANG=C ls –l total 16 drwxr-xr-x 2 te999999 student 4096 drwxr-xr-x 2 te999999 student 4096 [te999999@bossp ~]$ rmdir test [te999999@bossp ~]$ LANG=C ls –l total 8 drwxr-xr-x 2 te999999 student 4096 [te999999@bossp ~]$ Apr 17 10:34 public_html Apr 17 10:35 test Apr 17 10:34 public_html 21 UNIXコマンドの実行例(6) -利用権設定 ファイルやディレクトリの利用権設定 – 自分自身・同じグループ内の他の利用者・それ以外の人が, 自分のファイルやディレクトリに対して,どのような操作をす ることを許可するか • 読み出し(Read)/書き込み(Write)/実行(eXecute) chmod (change mode)コマンド – 自分のファイルやディレクトリの利用権設定を変更する. [te999999@bossp ~]$ chmod 711 ~ [te999999@bossp ~]$ LANG=C ls –ld ~ total 8 drwxr-xr-x 2 te999999 student 4096 Apr 17 [te999999@bossp ~]$ 日本語が正しく表示できる場 合には,LANG=C を付ける必 要はない. 10:34 /home/te999999 22 ここで,webページがサーバの外からブラウザでアクセスで きるよう,自分のホームディレクトリの利用権設定を変更して おこう. ① 自分のホームディレクトリの利用権設定を「711」に変更する chmod 711 ~ ② ホームディレクトリの利用権がどうなっているかを確認する. (日本語が表示できないとき)LANG=C ls –ld ~ (日本語が表示できるとき) ls –ld ~ ③ 上記②のコマンドの出力の左端が以下のようになっていれ ばOK. drwx--x--x ここをよく見比べる 5 te999999 ... 実際は自分のIDになる 23 ファイルの編集 -TeraPad デスクトップのアイコンをダブルクリックして起動 「メモ帳」とたいして 変わらないので, 操作法の説明は省 略する. 24 ファイルの転送 -WinSCP3 Telnet と同様に,暗号化を行わないファイル転送プロトコルとし て,FTP(file transfer protocol)があった. – やはり,ファイルのアップロード・ダウンロードに際し,悪意の ある第三者による「盗み聞き」の危険性が… そこで,暗号化を行うファイル転送方式が考案された. – SCP(secure copy protocol) – SFTP(SSH file transfer protocol) WinSCP3は,SCP/SFTP 両方の機能を持つファイル転送ソフト – http://winscp.net/eng/docs/lang:jp 25 WinSCP3の操作(1) 起動直後のウィンドウ – 教育用計算機のUNIXホストしか登録されていないので, 「新規」ボタンをクリックする. 26 WinSCP3の操作(2) 「ホスト名」のところに bossp.is.kyushu-u.ac.jp を入力 ユーザ名・パスワードも入力して,「ログイン」ボタンをクリックす る. 「秘密鍵」は空白の ままでよい 27 WinSCP3の操作(3) 警告が表示されるが,ホスト名を正しく入力できていることが確 認できたら,そのまま続行する. – ホスト名は,下に隠れているウィンドウの上部に表示されて いる. 28 WinSCP3の操作(4) 接続に成功すると,左右に分かれたエクスプローラ型のウィンド ウが現れる.あとはドラッグアンドドロップでOK. ローカル (PC)側の ファイル一覧 リモート (サーバ)側の ファイル一覧 アップロード ダウンロード 29 文字コードの話 なぜ,LANG=C などという「おまじない」を付ける 必要があるのか… 30 計算機は文字をどのように扱うか? 計算機のメモリ・ディスク(ファイル)の中に格納されているデー タでも,通信でやりとりされるデータでも,すべての文字 (character)は「番号」(code)で表されている. H e l l o ! 72 101 108 108 111 33 – ただし,実際には,十進数ではなく二進数である. どの文字をどの番号に対応させるか,というルールを,「文字 コード」という. 31 むかしむかし… メーカごとに計算機内部で使用する文字コードがまちまちだっ た. – これでは,計算機間でデータのやり取りができない. – そこで,標準化の動きが始まった. 1963年,ASCII(American Standard Code for Information Interchange,アスキーと読む)規格が誕生 – アメリカで日常使われる文字は100未満. • アルファベット26文字×2(大文字・小文字) • 数字 0~9 • その他の印刷可能文字(#,$など) – これに30程度の制御文字(delete,carriage return,line feed など)を加えても7ビット(27=128)で十分. – パリティ検査のために1ビット余計に付けても8ビット(1バイト). 32 非米語圏はどうなるの? $の代わりにポンド記号を必要とする英国の英語 アルファベットにウムラウトなどの記号のつくヨーロッパ系言語 アルファベット以外の文字を基礎とする言語 – 「子音・母音・子音」の組み合わせが1文字となる韓国語 – それぞれ数万の漢字を持つ日本語・中国語 などなど オリジナルのASCIIコードのままでは表現できないため,ASCII コードの微妙な拡張や,各言語用の文字コードが多数考案さ れた. 33 日本でよく利用される文字コードのいろいろ JISコード(ISO 2022-JP) – インターネット上でメールやwebページを送受信するときの標準的な外部コード (外部とのやり取りに使用する文字コード).2バイト=全角1文字. Shift_JISコード – Microsoft系のOSを載せたPCでよく用いられる,日本独特の内部コード(計算機 内部で使用するコード). 2バイト=全角1文字. EUCコード(EUC-JP) – 日本では,UNIX機でよく用いられてきた内部コード. 2バイト=全角1文字. • 中国・韓国では,同様のコード(EUC-CN,EUC-KR)がPCの標準的な内部 コードにもなった. UNICODE – 言語ごとに文字コードを用意するのではなく,世界の文字を統一的に表そうとす る方式.16ビットではなく21ビットで1文字を表す. • 日本・中国・韓国の漢字を無理に統合して文字数を抑えたことなどから,不 満・反発も起きている. – ネットワーク上でやり取りするときには,これをさらに UTF-8 と呼ばれる形式に変 換 – これを内部コードに採用する UNIX(Linux)も増えつつある. 34 実習に用いるサーバでは... PC では – Shift_JIS が普通 – テキストファイルの改行コードは 「CR+LF」 CR(Carriage Return) LF(Line Feed) テレタイプの行頭復帰・行送 り文字に由来する制御文字 コードの名称. サーバでは – CentOSの標準文字コードが UTF-8 – テキストファイルの改行コードは「LF」のみ – MySQLも,データベースに非ASCII文字を格納する際に, データを UTF-8 形式で表現する. – PHPで作成するプログラムも,同じ文字コードに合わせたほ うが都合がよいので,UTF-8 にしたい. 35 作業の際に使用する文字コード 九州大学 教育用計算機システムのPC システム情報のサーバ bossp Windows XP UTF-8 UNIX +webサーバ +PHP +SQL UTF-8 TeraPad でファイルを作成するとき • UTF-8形式で保存すること • 改行コードは「LF」にすること Tera Term Pro でサーバにアクセ スするとき • 送受信に用いるコードを UTF-8に設定できないと,画面 表示が一部文字化けすること がある. (標準の文字コードが UTF-8) (改行コードは「LF」) (PCからリモートサーバ のコマンドを実行する) (コマンドの実行結果がPC のウィンドウ内に表示される) 36 日本語がうまく表示できないときの「文字化け」 [amano@bossp ~]$ ls -l 合計 16 drwxr-xr-x 2 amano teacher 4096 drwxr-xr-x 2 amano teacher 4096 [amano@bossp ~]$ 4月 17 17:26 public_html 4月 17 17:27 test サーバはこんな風に表示しているつもりなのに… Tera Term Pro の画面ではこんな風になってしまう… [amano@bossp ~]$ ls -l ┗6 drwxr-xr-x 2 amano teacher 4096 drwxr-xr-x 2 amano teacher 4096 [amano@bossp ~]$ 羆7 17:26 public_html 羆7 17:27 test 37 HTMLについて • 簡単なチュートリアル「初心者向けHTMLガイド1.1」 (http://itslab.csce.kyushu-u.ac.jp/~hori/lecture/cs3/2007/ncsa-j.html) • 全体の構造 <html> <head> <meta http-equiv=“CONTENT-TYPE” CONTENT=“text/html; CHARSET=UTF-8”> <title>(ページのタイトルをここにかく)</title> </head> <body> (ページ本体を記述する HTML を書く) </body> </html> 38 本日の実習課題の説明 39 本日の課題 -作業環境の確認 TeraPad で簡単な HTML ファイル(コンテンツは自由:自己紹介など、ただし、 個人・プライバシー情報は含めないようにしてください。)を作成して,UTF-8 形式で保存する. – 保存する際には,「ファイル」メニューの中の,「文字/改行コード指定保 存」を選択する. • 文字コード:UTF-8 • 改行コード:LF WinSCP3 を用いて,そのファイルをサーバ bossp のディレクトリ public_html に転送する. Internet Explorer で,自分の web ページが表示できることを確認する. – http://bossp.is.kyushu-u.ac.jp/~te999999/ (ファイル名) 作成した上記 web ページのURLを,RAMシステムの「レポート」機能で提出 する. – 「レポートのURL」欄を正しく修正してから,提出すること. 40 教育用システムの Tera Term について (補足と訂正) 41 Tera Term と UTF-8 コード Tera Term には複数のバージョンがある. – Tera Term Pro (SSH機能あり,UTF-8なし) – UTF-8 対応 Tera Term (SSH 機能あり) 教育用システムの PC に,上記の2種類が両方インストールさ れているものと,UTF-8なしのものだけがインストールされている ものがある模様. – UTF-8対応の Tera Term であれば,LANG=C のおまじない を付けなくても,日本語が表示できる. – UTF-8に対応していない Tera Term の場合には,LANG=C で日本語メッセージの出力を抑止するとよい. 42 見分け方 スライド No. 10 で紹介し た Tera Term Pro の起動 直後の画面 新規接続のダイアログが右のよう になっているものは,UTF-8を使 うことのできる Tera Term 43 UTF-8を使うためには 「設定」メニューの「端末」を開いて,受信・送信の漢字コード (文字コード)を UTF-8 に変更する. 44
© Copyright 2024 ExpyDoc