平成23年度 前期情報科学III (理系コア科目) サーバでのファイルの扱い、HTML 担当 松永 裕介 月曜日 2限 本資料の一部は、堀良彰准教授、天野浩文准教授、菅沼明准 1 教授、岡村准教授等による以前の講義資料をもとにしています。 前回のおさらい(1) この講義の目標 – クライアントからのアクセスがあった時にサーバで実行され, ブラウザ画面での表示を動的に生成するようなプログラムを 作る. • クライアントからの情報に応じて,データベースを検索, 更新する. 作業環境の説明 – 端末室のPC – システム情報科学府のサーバ – 出席管理システム サーバサイドプログラミングとは 2 前回のおさらい(2) --基本的な作業環境 九州大学 教育用計算機システムのPC Mac OS X サーバ システム情報のサーバ サーバ ファイル IDとパスワードはすでに発行済 み ファイル UNIX + webサーバ 他 IDとパスワードは 本日配布 このサーバには,webサーバの他に PHP言語処理系 データベース管理システム(MySQL) がインストールされている. 3 前回のおさらい(3) --最終課題で製作するもの SQL クエリ ブラウザ PHPプログラムは,クライア ントからのリクエストに応じ てデータベースにアクセス し,その結果を整形してブ ラウザに返す また,データベースにアク セスする際には,SQL言語 によるクエリ(問い合わせ, query)を発行する web サーバ PHP プログラム 検索・更新 の結果 データベース 管理システム (DBMS) データベース 4 本日やること 作業環境の説明(続き) 各システムでの作業の概要 サーバのアカウント・パスワードの配布 ログインのしかた UNIXコマンドの基礎 HTML・PHPファイルの置き場所 文字コードの話 実習:簡単なwebページ作成 PC上でHTMLファイル作成 ファイルを適切なフォルダ(ディレクトリ)に複写 ブラウザで確認 5 作業環境の説明(続き) 6 各システムでの作業の概要 九州大学 教育用計算機システムのPC システム情報のサーバ bossp Mac OS X ファイル UNIX +webサーバ +PHP +SQL ファイル ファイルの編集 • テキストエディット を使用 ファイルの転送 • scpコマンド を使用 サーバ上のwebページ・PHPプログ ラムの確認 • Safari を使用 リモートサーバへのアクセス • sshコマンド を使用 (PCからリモートサーバのコマンドを実行) ログイン パスワードの変更 webページ・PHPプログラム用ディレクトリ の作成(初回のみ) • mkdir コマンド • chmod コマンド 7 リモートサーバへのアクセス 昔はTelnet プロトコルによる端末接続を行っていた Telnetは通信データを暗号化しないため,悪意のある第三者が通信 経路上にいた場合,「盗み聞き」を防げない そこで,利用者認証の段階からすべての通信データを暗号化する SSH(Secure Shell)プロトコルが考案された 最初に入力する ID やパスワードが盗まれる危険性も 現在では,Telnet を禁止し,SSH によるアクセスのみを許可するサーバ が増えた (Windows環境) Tera Term にも,SSH 機能のための追加モジュールが提供されるよ うになった Tera Term の設定をおこなうときにSSHを利用するようにしなければならない 8 リモートサーバへのアクセス Mac からリモートサーバへログインし,コマンド操作を行うため の手順 Mac のターミナルを起動 Doc 上にあるターミナルのアイコンをクリック アプリケーションフォルダの中にあるユーティリティフォルダを開き,その中のター ミナルのアイコンをダブルクリックする コマンドラインから sshコマンドを使用して接続する 接続先のアドレスは下のとおり rupus.i.kyushu-u.ac.jp sshコマンドは後に接続先アドレスを記入して起動する ssh rupus.i.kyushu-u.ac.jp sshコマンドは接続先のアカウント名が異なる場合も利用できる ssh [email protected] アカウント名 もちろん,自分のアカウントでないと (パスワードを知らないと)ログインは できません 9 rapusへのログイン Last login: Fri Oct 2 16:00:55 on ttys000 macbook-3:~ isee08$ ssh rupus.i.kyushu-u.ac.jp The authenticity of host ‘rupus.i.kyushu-u.ac.jp (133.5.19. 107)' can't be established. RSA key fingerprint is 04:81:0f:d8:8e:9a:61:8f:12:e8:e2:ff:ff:ce:ee:9f. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added ‘rupus.i.kyushu-u.ac.jp,133.5.1 9.107' (RSA) to the list of known hosts. [email protected]'s password: Last login: Fri Oct 2 20:47:45 2009 [1TE09000X@rupus ~]$ パスワードを入力 プロンプト これ以降,ログアウトするまでは, キー入力がbosspに伝えられる 10 リモートサーバでの操作 -UNIXのコマンド Telnet や SSH でアクセスする場合,サーバに仕事を させるには,キーボードからコマンド(文字列)をタイプ して,Enter キーを押す 実行した結果の出力も文字列で画面(端末エミュレータ ウィンドウ内)に表示される 前回どこからアクセスしたか 画面上で次に文字が入力される位置 示すカーソル(点滅表示) Last login: Mon Apr 16 18:55:09 2007 from ... [1TE09000X@bossp ~]$ サーバ(UNIX)が,利用者からのコマンドを待っている ことを示す表示(プロンプト,prompt) サーバへのアクセスを終了するときは,logout と入力して Enterキーを押す. 11 カレントディレクトリ ディレクトリ(directory) Windows の「フォルダ」と同等のものだが, UNIXでは,伝統的に「ディレクトリ」と呼ん でいる 残念ながら,UNIXでは,Windowsのよう なグラフィカルな表示はできないことも多 い カレントディレクトリ 現在自分が作業をしているディレクトリ ある利用者がログインした直後のカレント ディレクトリは,その利用者の「ホームディ レクトリ」(略してホーム)と呼ばれる ホームは,通常,ユーザ名と同じ名前に なっている また,「~」(ティルダ,tilde)という文字で表 すことがある 1TE09000X + doc + fun - kogi file1 file2 12 UNIXコマンドの実行例(1) -パスワード変更 passwd コマンド 現在のパスワードを新しいものに変更する 現在のパスワードを入力(1回) 新しいパスワードを入力(2回) 辞書にあるようなつづりや,元のパスワードに似たもの,な どは拒絶される [1TE09000X@bossp ~]$ passwd Changing password for user 1TE09000X. Changing password for 1TE09000X 入力した内容は画面に表 (current) UNIX password: 示されず,カーソルも動か New UNIX password: ない. Retype new UNIX password: passwd: all authentication tokens updated successfully. [1TE09000X@bossp ~]$ 13 パスワードに関する注意点 忘れないうちに自分のパスワードを変更しておこう. 英数字を混ぜたもの(6文字以上8文字以下)がよい 当然のことだが,以下のようなパスワードは盗まれる危 険が高いので使うべきでない. 自分のユーザ名(ログイン名ともいう)と同じつづり 自分の姓または名と同じつづり 辞書に出ているような言葉と同じつづり 固有名詞でも,一般名詞でも タレント・有名人の名前と同じつづり アルファベットのみ,または,数字のみ “Password” 14 UNIXコマンドの実行例(2) -ディレクトリ作成 mkdir (make directory)コマンド カレントディレクトリ配下に,新しいディレクトリを作成する ただし,カレントディレクトリ配下にすでにあるディレクトリのさらに 下など,カレントディレクトリ直下以外の場所に作ることもできる [1TE09000X@bossp ~]$ mkdir public_html [1TE09000X@bossp ~]$ 15 UNIXコマンドの実行例(3) -ディレクトリの移動・確認 cd (change directory)コマンド カレントディレクトリを移動させる 1つ上のディレクトリに戻るには,「..」(ピリオド2つ) 何も添えずに「cd」とだけタイプすると,ホームに戻る pwd (print working directory)コマンド カレントディレクトリを表示する [1TE09000X@bossp ~]$ cd public_html [1TE09000X@bossp public_html]$ pwd /home/1TE09000X/public_html [1TE09000X@bossp public_html]$ cd .. [1TE09000X@bossp ~]$ 16 簡単な作業 ここで,これ以降の課題ファイルを置くためのディレクトリ public_html を,自分のホームディレクトリに直下に 作成しておこう. 通常,各ユーザのwebページは,ホームディレクトリ配下 の public_html ディレクトリ配下に置かなければなら ない. rupus 上で動作するWebサーバも上の設定にしている 17 UNIXコマンドの実行例(4) -ファイルの一覧表示 ls コマンド (アルファベット小文字のエルとエス.listから) 単に ls とだけタイプして Enter キーを押すと,カレントディレクトリ配 下のファイルやディレクトリの名前だけを一覧表示する 「LANG=C ls –l」とタイプすると,名前の他に,様々な情報を表示す る LANG=Cは,端末エミュレータが日本語をうまく処理できないような場合 に日本語メッセージ出力を抑止して,画面上の文字化けを防ぐための 「おまじない」 そのような制約がない場合には,ls –l だけでよい 日本語が正しく表示できる場合 [1TE09000X@bossp ~]$ ls には,LANG=C を付ける必要は public_html ない. [1TE09000X@bossp ~]$ LANG=C ls –l total 8 drwxr-xr-x 2 1TE09000X student 4096 Apr 17 10:34 public_html [1TE09000X@bossp ~]$ 18 UNIXコマンドの実行例(5) -ファイル等の削除 rm (remove)コマンド ファイルを削除する rmdir (remove directory) ディレクトリを削除する 日本語が正しく表示できる場合 には,LANG=C を付ける必要は ない. [1TE09000X@bossp ~]$ mkdir test [1TE09000X@bossp ~]$ LANG=C ls –l total 16 drwxr-xr-x 2 1TE09000X student 4096 drwxr-xr-x 2 1TE09000X student 4096 [1TE09000X@bossp ~]$ rmdir test [1TE09000X@bossp ~]$ LANG=C ls –l total 8 drwxr-xr-x 2 1TE09000X student 4096 [1TE09000X@bossp ~]$ Apr 17 10:34 public_html Apr 17 10:35 test Apr 17 10:34 public_html 19 UNIXコマンドの実行例(6) -利用権設定 ファイルやディレクトリの利用権設定 自分自身・同じグループ内の他の利用者・それ以外の人が,自分の ファイルやディレクトリに対して,どのような操作をすることを許可する か 読み出し(Read)/書き込み(Write)/実行(eXecute) chmod (change mode)コマンド 自分のファイルやディレクトリの利用権設定を変更する 日本語が正しく表示できる場 合には,LANG=C を付ける必 要はない. [1TE09000X@bossp ~]$ chmod 711 ~ [1TE09000X@bossp ~]$ LANG=C ls –ld ~ total 8 drwx--x--x 2 1TE09000X student 4096 Apr 17 10:34 /home/1TE09000X [1TE09000X@bossp ~]$ 20 ここで,webページがサーバの外からブラウザでアクセスで きるよう,自分のホームディレクトリの利用権設定を変更して おこう. ① 自分のホームディレクトリの利用権設定を「711」に変更する chmod 711 ~ ② ホームディレクトリの利用権がどうなっているかを確認する (日本語が表示できないとき)LANG=C ls –ld ~ (日本語が表示できるとき) ls –ld ~ ③ 上記②のコマンドの出力の左端が以下のようになっていれ ばOK drwx--x--x ここをよく見比べる 5 1TE09000X ... 実際は自分のIDになる 21 ファイルの転送 Telnet と同様に,暗号化を行わないファイル転送プロ トコルとして,FTP(file transfer protocol)があった やはり,ファイルのアップロード・ダウンロードに際し,悪意 のある第三者による「盗み聞き」の危険性が… そこで,暗号化を行うファイル転送方式が考案された SCP(secure copy protocol) SFTP(SSH file transfer protocol) 22 ファイルの転送 (scpコマンド) この講義では,scp コマンドを使用する コピー元のファイルをコピー先のファイルにコピーする scp コピー元 コピー先 リモートのファイルはコンピュータ名を前に付ける コンピュータ名とファイル名の間にコロン(:)を付ける ファイル名はディレクトリ名を含んでよい ホームディレクトリからのパスを書くのがよい rupus.i.kyushu-u.ac.jp:~/public_html/test.html コンピュータ名 パス名 コピー元,コピー先のどちらがリモートであってもよい 23 scpコマンドの使用法 Mac上のファイルをbosspのpublic_htmlディレクトリ へ送る scp index.html rupus.i.kyushu-u.ac.jp:~/public_html 上のコマンドでは, index.html が送られるファイル public_htmlディレクトリ内にindex.htmlとしてコピー 24 文字コードの話 25 計算機は文字をどのように扱うか? 計算機のメモリ・ディスク(ファイル)の中に格納されて いるデータでも,通信でやりとりされるデータでも,す べての文字(character)は「番号」(code)で表されて いる H e l l o ! 72 101 108 108 111 33 ただし,実際には,十進数ではなく二進数である どの文字をどの番号に対応させるか,というルールを, 「文字コード」という 26 むかしむかし… メーカごとに計算機内部で使用する文字コードがまちまちだっ た これでは,計算機間でデータのやり取りができない そこで,標準化の動きが始まった 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バイト) 27 ASCIIコード表 28 非米語圏は? $の代わりにポンド記号を必要とする英国の英語 アルファベットにウムラウトなどの記号のつくヨーロッ パ系言語 アルファベット以外の文字を基礎とする言語 「子音・母音・子音」の組み合わせが1文字となる韓国語 それぞれ数万の漢字を持つ日本語・中国語 などなど オリジナルのASCIIコードのままでは表現できないた め,ASCIIコードの微妙な拡張や,各言語用の文字 コードが多数考案された 29 日本でよく利用される文字コードのいろいろ JISコード(ISO 2022-JP) Shift_JISコード インターネット上でメールやwebページを送受信するときの標準的な外部コード(外部と のやり取りに使用する文字コード) 2バイト=全角1文字 Microsoft系のOSを載せたPCでよく用いられる,日本独特の内部コード(計算機内部で 使用するコード) 2バイト=全角1文字 EUCコード(EUC-JP) 日本では,UNIX機でよく用いられてきた内部コード 2バイト=全角1文字 中国・韓国では,同様のコード(EUC-CN,EUC-KR)がPCの標準的な内部コードにもなった UNICODE 言語ごとに文字コードを用意するのではなく,世界の文字を統一的に表そうとする方式 16ビットではなく21ビットで1文字を表す 日本・中国・韓国の漢字を無理に統合して文字数を抑えたことなどから,不満・反発も起きて いる ネットワーク上でやり取りするときには,これをさらに UTF-8 と呼ばれる形式に変換 これを内部コードに採用する UNIX(Linux)も増えつつある 30 実習に用いる計算機環境では... PC では Mac では Shift_JIS が普通 テキストファイルの改行コードは 「CR+LF」 CR(Carriage Return) LF(Line Feed) テレタイプの行頭復帰・行送 り文字に由来する制御文字 コードの名称. UTF-8 になっているようだ サーバでは CentOSの標準文字コードが UTF-8 テキストファイルの改行コードは「LF」のみ MySQLも,データベースに非ASCII文字を格納する際に,データを UTF-8 形式で表現する PHPで作成するプログラムも,同じ文字コードに合わせたほうが都合 がよいので,UTF-8 にしたい 31 作業の際に使用する文字コード 九州大学 教育用計算機システムのPC システム情報のサーバ bossp Mac OS X UTF-8 UNIX +webサーバ +PHP +SQL UTF-8 テキストエディット でファイルを作 成するとき • UTF-8形式で保存すること ターミナル でサーバにアクセスす るとき • 送受信に用いるコードは UTF-8になっている • 異なる文字コードの場合は,も ちろん文字化けしてしまう (標準の文字コードが UTF-8) (改行コードは「LF」) (PCからリモートサーバ のコマンドを実行する) (コマンドの実行結果がPC のウィンドウ内に表示される) 32 日本語がうまく表示できないときの「文字化け」 [1TE09000X@bossp ~]$ ls -l 合計 16 drwxr-xr-x 2 1TE09000X teacher 4096 drwxr-xr-x 2 1TE09000X teacher 4096 [1TE09000X@bossp ~]$ 4月 17 17:26 public_html 4月 17 17:27 test サーバはこんな風に表示しているつもりなのに… ターミナル の画面ではこんな風になってしまう… [1TE09000X@bossp ~]$ ls -l ┗6 drwxr-xr-x 2 1TE09000X teacher 4096 drwxr-xr-x 2 1TE09000X teacher 4096 [1TE09000X@bossp ~]$ 羆7 17:26 public_html 羆7 17:27 test たぶん,今年度の環境ではほとんど起こらないであろう 33 本日の演習と課題 • 演習 – 各人の受講科目を時間割を表形式で表示する Web ページを作成しなさい。(日本語表示でなく てもよい。) • 課題 – 演習で作成した時間割に • 適切に色分をして(例、必須は赤にするなど。) • 連続するコマをまとめる • など – 表示が出来るようにしなさい。 34 資料(HTML) 35 Webページの記述言語 HTML 現在のWebページはHTML (Hyper Text Markup Language) によって書かれている。 HTMLは、Web上でドキュメントや写真、音声、サービスなどを 提供するために開発された。 最新バージョンは 4.01で http://www.w3.org/TR/html401/ で、その仕様が定義されている。 ワープロでは、文字の大きさや色などの属性を持っていて、そ れらを指定することで、様々な表現ができる。HTMLは、このよ うな属性指定をする言語である。 タグと呼ばれる記号を利用して、ドキュメントに様々な意味づけ (フォントの変更、リンク、画像の表示、プログラムの起動など)を 行う。 36 文字列(表示内容)と構造の分離 表示する文字列 文字列の加工法(表示方法) タグで記述 見出し 文字のフォント(文字の大きさ,文字の色など) 左揃え,右揃え,中央揃え 箇条書き 表 フォーム 文字列で構造を作るのはよくない(避けるべき) 37 HTMLのタグ 「<」と「>」に囲んだもの (例:<html>や<body>) タグには意味がある 例:htmlタグ(<html>) • html文書の始まり • 「<html>」と言う文字列が表示されるのではない 開始タグと終了タグ 開始タグ タグの名前を「<」「>」で囲む タグの名前の後に属性を書くことができる 終了タグ (例:<html>) (例:</html>) タグの名前の前に「/」を付けて「<」「>」で囲む <h1> ~の文字列 </h1> 開始タグ 終了タグ 開始タグと終了タグにはさ まれた文字列に対して文字 飾りを行う 38 HTMLの基本タグ 基本のタグ HTMLタグ HEADタグ TITLEタグ BODYタグ HTMLで記述されている範囲を示す ヘッダであることを示す タイトルバーに表示するタイトルを示す ページの本体を示す 39 HTMLの基本的な形 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> HTML <head> <title> … </title> </head> 要 素 <body> … </body> </html> ブラウザのタイトルバーで 表示される内容 ブラウザの本体部分で表 示される内容 40 見出し h1 ~ h5 タグ 開始タグと終了タグに囲まれた文字列を見出しとみな す 数字は見出しのレベルを表す レベルに合わせて,文字の大きさが変わる <h1>はじめに</h1> ブラウザ上に見出しとして, 「はじめに」が表示される 41 フォント font タグ <font 属性> 使用するフォントを変更する 文字の大きさや色などを属性に記述 color属性 size属性 <font color="red">赤</font> color属性 <font size="-2">赤</font> ブラウザに「赤」と表示される 小さな文字で「赤」 42 揃え 段落を左や右に揃えたり,中央に置いたりする 左揃え (デフォルト) 段落を示すタグ <p> 右揃え なにも指定しなくてよい p タグを利用 div タグを利用 <p align="right"> <div align="right"> 中央揃え p タグを利用 div タグを利用 center タグ <p align="center"> <div align="center"> <center> 43 箇条書き ul タグ 項目の先頭に「●」のような記号がつく箇条書き unordered list の頭文字 各項目は<li>タグの開始タグと終了タグで囲む ol タグ 項目の先頭に「1.」のような数字がつく箇条書き ordered list の頭文字 各項目は<li>タグの開始タグと終了タグで囲む <ul> <li>1つ目の内容</li> <li>2つ目の内容</li> </ul> • 1つ目の内容 • 2つ目の内容 44 表 table タグ 罫線を引くかどうか,属性で罫線の太さ,罫線と内容の間 隔などを指定することが可能 table タグ内で使用できるタグ tr タグで横一列を表す td タグで各セルを表す <table border cellpadding=5> <tr><td>5/11(月)</td><td>国語</td> <td>数学</td><td>社会</td> </tr> <tr><td>5/12(火)</td><td>理科</td> <td>英語</td> </tr> </table> 45
© Copyright 2024 ExpyDoc