作 成 : 平 成 15 年 1 月 29 日 修 正 : 平 成 26 年 3 月 18 日 動 的 コンテンツ 利 用 手 引 き(CGI PHP) 目 次 1. はじめに... 1 2. 動 的 コンテンツとは... 1 3. 汎 用 CGI の 利 用... 2 4. 動 的 コンテンツを 作 成 する 前 に... 3 4.1. 危 険 性 について... 3 4.2. 遵 守 事 項... 3 4.3. 免 責 事 項... 3 5. 利 用 方 法... 4 5.1. CGI を 使 う... 4 5.2. PHP を 使 う... 5 6. 動 的 コンテンツ 作 成 に 関 する 情 報... 6 6.1. Web サーバについて... 6 6.2. CGI の 利 用 に 関 する 情 報... 7 6.3. PHP の 利 用 に 関 する 情 報... 7 6.4. プログラミング 言 語 の 採 用 基 準... 7 1. はじめに この 文 書 では 本 学 の Web サーバで 動 的 コンテンツを 利 用 するために 必 要 な 事 項 につい て 説 明 します アクセスカウンタなど 既 に 用 意 されているプログラムを 利 用 する 場 合 は 2と3の 項 をご 覧 ください また 動 的 コンテンツを 生 成 するプログラムを 作 成 する 場 合 は 2と4 5 6の 各 項 をご 覧 ください 2. 動 的 コンテンツとは 動 的 コンテンツとは Web ブラウザからの 要 求 に 応 じて 動 的 に Web ページや 画 像 などを 生 成 する Web コンテンツのことをいいます Web で 利 用 するサーチエンジンやアクセスカウン タ 等 は この 仕 組 みを 用 いています 1
動 的 コンテンツは 大 きく 次 の 二 つに 分 類 されます (1) Web ブラウザからの 要 求 に 応 じて Web サーバでプログラムが 実 行 され 実 行 結 果 生 成 された Web コンテンツを Web ブラウザに 送 信 し 表 示 する 方 法 ( 例 :Perl C 言 語 PHP) (2) Web ブラウザからの 要 求 に 応 じて Web サーバが Web ブラウザにプログラムを 渡 して からクライアントでプログラムが 実 行 され Web ブラウザに 表 示 する 方 法 ( 例 :JavaScript Java VBScript) また (1)は 次 の 二 つに 分 類 されます (A) CGI を 介 してプログラミングを 実 行 させる 方 法 ( 例 :Perl PHP C 言 語 シェルスクリプト) (B) Web サーバに 読 み 込 んでいるプログラミング 言 語 モジュールを 用 いてプログラム を 実 行 させる 方 法 ( 例 :PHP mod-perl) 本 学 の 環 境 では (A)の 方 法 と(B)の PHP による 方 法 を 利 用 できるサービスを 提 供 してい ます また (A)は 汎 用 的 な CGI として アクセスカウンタを 利 用 できる 環 境 を 提 供 してい ます 3. 汎 用 CGI の 利 用 アクセスカウンタやクリッカブルマップ 自 分 へのメール 送 信 自 分 のページへのメッ セージ 登 録 チャット BBS Blog Wiki 等 動 的 コンテンツを 利 用 したい 人 の 多 くが 同 様 の 目 的 を 持 っています このような 要 望 の 多 い 共 通 した 目 的 のために 可 能 なものは 汎 用 的 な CGI として WWW-WG( 現 在 は 解 散 )の 協 力 のもと 情 報 センターが 提 供 しています 現 在 汎 用 CGI として 提 供 しているものは アクセスカウンタ になります この 利 用 方 法 は 別 途 アクセスカウンタの 使 い 方 に 記 載 していますのでご 参 照 くださ い 現 在 は 上 の CGI だけ 提 供 していますが 次 の 条 件 を 満 たせば 汎 用 CGI として 提 供 するこ とを 検 討 します 汎 用 CGI を 作 成 する 基 準 は 以 下 のようなものです システムに 負 荷 をかけないもの チャット 等 常 にデータを 更 新 するプログラムや 膨 大 な 計 算 等 CPU を 占 有 するような ものは 用 意 しません 利 用 目 的 が 妥 当 である 大 学 としてネットワークに 参 加 していますので 学 術 的 に 見 ての 判 断 です たくさんの 利 用 者 に 価 値 がある 2
4. 動 的 コンテンツを 作 成 する 前 に 4.1. 危 険 性 について 動 的 コンテンツを 作 成 すると プログラム 次 第 で 様 々な Web コンテンツの 生 成 が 可 能 に なり より 多 彩 な Web ページを 公 開 することができます その 反 面 危 険 性 も 合 わせ 持 っ ています 従 って プログラム 作 成 者 が 動 作 をよく 理 解 していないと Web サーバをダウン させる 事 態 が 発 生 やセキュリティ 上 の 問 題 を 引 き 起 こすことがあります しかし 本 学 では 先 進 的 な 環 境 を 提 供 し 将 来 の 社 会 を 担 う 人 材 を 育 成 するため 利 用 者 各 々の Web サイト 作 成 環 境 で 動 的 コンテンツの 利 用 を 認 めています 4.2. 遵 守 事 項 以 下 の 点 を 遵 守 してください セキュリティに 問 題 があるものは 作 成 しない 故 意 によるものは 勿 論 いたずらに 利 用 される 可 能 性 のあるものは 固 く 禁 じます システムに 著 しい 負 荷 を 掛 けるものは 作 成 しない 故 意 によるものは 勿 論 いたずらにシステムに 負 荷 を 掛 ける 可 能 性 のあるものは 固 く 禁 じます 他 のユーザのために CGI は 作 成 しない 自 分 の Web サイトで 利 用 するためだけに 作 成 してください また 他 の 人 がその 人 の Web サイトで 利 用 できるような 実 装 は 禁 じます 4.3. 免 責 事 項 以 下 の 条 件 を 満 たす 方 のみご 利 用 ください これに 満 たない 人 は 危 険 ですので 動 的 コン テンツの 利 用 はお 控 えください もし 違 反 した 場 合 Web 公 開 の 権 利 を 失 う もしくはユー ザ ID の 利 用 取 り 消 しなどの 処 置 が 取 られる 可 能 性 があります それにより 影 響 が 生 じても 情 報 センターは 一 切 責 任 を 負 いません 動 的 コンテンツの 危 険 性 を 理 解 していること 最 重 要 項 目 です プログラムの 動 作 次 第 では あなた 一 人 でなく 全 ての 人 に 迷 惑 をか けることになります その 危 険 性 を 理 解 してください プログラムに 対 する 知 識 があること シェルスクリプトやC 言 語 などのプログラミング 言 語 を 知 らないと 動 的 コンテンツを 作 成 することはできません それを 理 解 していないのなら まずは 使 えるようになっ てください ユーザ 権 限 (パーミッション)について 理 解 していること 本 学 のメールを 利 用 していること 管 理 者 からメールで 本 学 のメールアドレスにアナウンスが 送 られることがあります 3
作 成 する 動 的 コンテンツが 将 来 にわたって 動 作 保 証 されないことを 了 承 すること 将 来 Web サーバが 変 更 になる や 動 的 コンテンツの 利 用 が 全 面 停 止 になる など の 理 由 により 作 成 したコンテンツが 使 えなくなる 可 能 性 があります その 他 管 理 者 から 禁 止 項 目 の 追 加 があった 場 合 それに 従 う 5. 利 用 方 法 作 成 した 動 的 コンテンツの 公 開 の 手 順 は Web ページの 公 開 方 法 と 同 じです わからない 方 は 情 報 サービス 内 Web ページの 公 開 手 引 き をご 参 照 ください また プログラムの 実 行 に 必 要 な 情 報 を 次 に 記 載 しますので 併 せてご 覧 ください なお プログラムの 作 成 に 関 しては 情 報 センターではサポートいたしません 授 業 で 利 用 する 場 合 は 担 当 教 員 へ 質 問 してください 授 業 以 外 で 作 成 する 場 合 は 各 利 用 者 で 調 べてください 5.1. CGI を 使 う 1) サンプルプログラムを 使 って 動 作 を 確 認 してみましょう time.cgi というファイル を 作 成 し 以 下 の 内 容 で 保 存 します 1 #!/usr/local/bin/perl print "Content-type: text/html\n\n"; print "<html><head><title>title</title></head>\n"; print "<body>\n"; $i = localtime(time);; print "<p>$i</p>\n"; print "</body></html>\n"; 2) 保 存 したら public_html 以 下 にアップロード2してください この 時 ファイル 権 限 に 注 意 してアップロードしてください CGI の 場 合 は 700(0700)になります 1 cgi の 説 明 を 分 かりやすくするため html タグの 記 述 を 一 部 省 略 しています 2 アップロードの 方 法 が 分 からない 方 は 情 報 サービス 内 Web ページの 公 開 手 引 き に 記 載 しているのでご 参 照 ください 4
3) アップロードしたファイルに Web ブラウザからアクセスし 下 記 のようなページが 表 示 されれば 完 了 です CGI では このほかにもいろいろなものが 作 成 できますので 検 索 エンジンで CGI 入 門 Perl などと 検 索 を 行 いさらに 学 習 してみてください 5.2. PHP を 使 う 1) サンプルプログラムを 使 って 動 作 を 確 認 してみましょう time.php というファイル を 作 成 し 以 下 の 内 容 で 保 存 します3 <html><head><title>time</title></head> <body><p> <?php print date("d M d G:I Y");?> </p></body> </html> 2) 保 存 したら public_html 以 下 にアップロード4してください この 時 ファイル 権 限 に 注 意 してアップロードしてください PHP の 場 合 は 600(0600)になります 3 php の 説 明 を 分 かりやすくするため html タグの 記 述 を 一 部 省 略 しています 4 アップロードの 方 法 が 分 からない 方 は 情 報 サービス 内 Web ページの 公 開 手 引 き に 記 載 しているのでご 参 照 く ださい 5
3) アップロードしたファイルに Web ブラウザからアクセスし 下 記 のようなページが 表 示 されれば 完 了 です PHP では このほかにもいろいろなものが 作 成 できますので 検 索 エンジンで PHP 入 門 などと 検 索 を 行 いさらに 学 習 してみてください 6. 動 的 コンテンツ 作 成 に 関 する 情 報 6.1. Web サーバについて OS Debian/GNU Linux Web サーバプログラム Apache 2.2 URL http://www.cc.kyoto-su.ac.jp/~username/ Linux ホームディレクトリ/public_html/ 設 置 場 所 例 :2007 年 度 入 学 ユーザ ID sandai の 場 合 /NF/home/g070/sandai/public_html/.htaccess の 利 用 不 可 動 的 コンテンツの 利 用 は 教 育 を 目 的 とし 上 記 の 設 置 場 所 のみ 実 行 を 許 可 しています 上 記 以 外 の 設 置 場 所 ( 課 外 活 動 団 体 の WEB サイト 等 )では 動 的 コンテンツを 実 行 することは できませんので 注 意 してください 6
6.2. CGI の 利 用 に 関 する 情 報 実 行 環 境 Apache のモジュール suexec 5を 介 して 動 作 (CGI プログラムがファイル 所 有 者 権 限 で 動 作 します) ディレクトリの 権 限 701 (0701) CGI ファイルの 権 限 700 (0700) 利 用 可 能 な 拡 張 子.cgi 利 用 可 能 プログラム 言 語 Perl(Ver.5 系 ) PHP(Ver.5 系 )sh csh tcsh bash Perl の PATH #!/usr/local/bin/perl PHP の PATH #!/usr/local/bin/php sh の PATH #!/bin/sh csh の PATH #!/bin/csh tcsh の PATH #!/bin/tcsh bash の PATH #!/bin/bash 6.3. PHP の 利 用 に 関 する 情 報 実 行 環 境 Apache のモジュール suphp を 介 して 動 作 (PHP プログラムがファイル 所 有 者 権 限 で 動 作 します) ディレクトリの 権 限 701 (0701) PHP ファイルの 権 限 600 (0600) 利 用 可 能 な 拡 張 子.php 6.4. プログラミング 言 語 の 採 用 基 準 情 報 センターでは 次 の 条 件 を 満 たしているプログラミング 言 語 を Web サーバで 使 用 でき るよう 導 入 設 定 しています 各 利 用 者 の 権 限 で 実 行 できるもしくはそれに 準 ずる 動 作 をするプログラミング 言 語 CGI PHP を 介 してプログラムを 実 行 させる 場 合 Apache の suexec または suphp を 介 して 実 行 できるプログラミング 言 語 Apache のモジュールとして 動 作 する 場 合 各 利 用 者 の 権 限 で 実 行 できるよう 設 定 できるもしくはそれに 準 ずる 動 作 をするよう 設 定 できるプログラミング 言 語 安 全 に 実 行 できるようにプログラミング 言 語 の 環 境 全 体 について ファイルの 所 有 者 情 報 のチェックやアクセス 権 限 のチェック リソースの 制 限 ができることが 望 ましい 5 suexec に 関 しては http://httpd.apache.org/docs/2.2/ の CGI の Suexec 実 行 をご 覧 ください 7