投稿者
 メール
  題名
  内容 入力補助動画検索画像・ファイル<IMG><OBJECT>タグが利用可能です。(詳細)
    
  ファイル1
  ファイル2
  ファイル3
アップロード可能な形式(各1MB以内):
画像(gif,png,jpg,bmp) 音楽(mmf,mld) 動画(amc,3gp,3g2)

 URL
[ ケータイで使う ] [ BBSティッカー ] [ 書込み通知 ] [ teacup.コミュニティ ]

投稿募集! スレッド一覧

スレッド作成 他のスレッドを探す

[PR]   中国・四国の求人・転職 ろばた焼店大阪府 
teacup. ] [ 無料掲示板 ] [ プレミアム掲示板 ] [ teacup.コミュニティ ] [ ブログ ] [ チャット ]

全293件の内、新着の記事から10件ずつ表示します。 4  5  6  7  8  9  10  11  12  13  |  《前のページ |  次のページ》 

■Apache httpdでCGIを動作させる

 投稿者:探偵マリオ  投稿日:2009年 1月26日(月)12時35分28秒
返信・引用
  ■Apache httpdでCGIを動作させる

httpdでCGIを動作させるにはいくつかの注意点がある。
/var/www/cgi-bin/hello.cgiを例に説明する。


□ユーザと保護モード

・httpdはユーザapacheで動作している
・httpdから起動されるCGIプログラムもユーザapacheで動作する

→CGIプログラムはapacheユーザが実行できるようパーミッションを設定する必要がある
 通常は「その他」ユーザに対して「読み取り」と「実行」の権利をつける

 例)chmod o+rx /var/www/cgi-bin/hello.cgi


□httpd.conf

・モジュールmod_cgi.soがロードされている必要がある
・CGIを実行したいファイル(またはCGIを配置したディレクトリ)に対して実行の許可を与える
・CGIを実行させる設定は次の2つがある
 ・ScriptAliasディレクティブを使う
 ・OptionsディレクティブとAddHandlerディレクティブを使う

/var/www/cgi-binディレクトリに対してCGI実行許可を設定する

・ScriptAliasの場合
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

これは、/var/www/cgi-binディレクトリ配下のファイルをすべてCGIファイルと見なして実行許可を与え、
なおかつURLパス/cgi-bin/にマッピングしている(CGI実行権付き仮想ディレクトリ)。

・Options+AddHandlerの場合
<Directory "/var/www/cgi-bin">
    Options ExecCGI
    AddHandler cgi-script .cgi
</Directory>

これは<Directory>コンテナでディレクトリを指定し、そのディレクトリに対しOptions ExecCGIでCGI実行を許可している。
CGIファイルとして拡張子cgiのファイルを認識するようAddHandlerで設定している。

※CentOSのhttpd.confではあらかじめ次が記述されている。
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"


□CGIの記述
CGIはバイナリ実行形式でもスクリプトでもよい。
スクリプトの場合には先頭行にインタプリタへのパスを指定する必要がある(通常のスクリプトと同じ)。

#!/bin/sh

CGIスクリプトはHTTPヘッダを自ら出力する必要がある。
ヘッダとエンティティとの区切りの空白行も出力する必要がある。

echo "Content-Type: text/html"
echo ""


□演習
CGIが実行できるように設定された既存の/var/www/cgi-binにhello.cgiを配置する。

cd /var/www/cgi-bin
vi hello.cgi

  #!/bin/sh

  echo "Content-Type: text/html"
  echo ""
  echo "<html>"
  echo "<head><title>Hello</title></head>"
  echo "<body>"
  echo "<h1>Hello CGI world!</h1>"
  echo "
"
  dmesg
  echo "
"
  echo "</body>"
  echo "</html>"

chmod o+rx hello.cgi

ブラウザからアクセスしてみる
http://IPアドレス/cgi-bin/hello.cgi
 

■ユーザ個別の公開用ディレクトリとCGIの設定

 投稿者:探偵マリオ  投稿日:2009年 1月26日(月)12時34分25秒
返信・引用
  ■ユーザ個別の公開用ディレクトリとCGIの設定

ログイン可能なユーザのためのWeb公開設定とCGIの実行許可を設定する。
ユーザuserとホームディレクトリ/home/userを例に説明する。

□ユーザ個別の公開用ディレクトリ
・ユーザの公開用ディレクトリはhttp://IPアドレス/~ユーザ名/で公開されることが多い
・ユーザの公開用ディレクトリは通常はそのユーザのホームディレクトリ配下に作成する
・一般的には~/public_htmlがよく用いられる
・UserDirディレクティブで指定される
・mod_userdir.soがロードされている必要がある

UserDir public_html

これは、ユーザの公開用ディレクトリを有効にしpublic_htmlというディレクトリがホームディレクトリ内に
存在した場合それをhttp://IPアドレス/~ユーザ名/としてマッピングしアクセスできるようにする。
ユーザuserの場合、公開用ディレクトリは/home/user/public_htmlであり、URLはhttp://IPアドレス/~user/となる。

□保護モード
httpdはユーザapacheの権限で動作しており、この権限でユーザの公開用ディレクトリが参照できる必要がある。
CentOSではユーザのホームディレクトリはその他ユーザに非公開に設定されているため最低でもcdを許可しないと
公開ディレクトリまでたどり着けない。

/home/user/public_html
      ~~~~
      ここが700であるため、この段階で権限不足で閲覧不可となる。

Webページを公開するユーザはホームディレクトリに対し次のようなパーミッションの変更が必要である。

chmod o+x ~

□演習

ユーザのホームディレクトリ内にCGIを実行できる環境を設定する。
各ユーザの~/public_htmlディレクトリをユーザの公開ディレクトリとする。
~/public_html/cgi-binディレクトリでCGIを実行できるようにする。


▼rootでsuexecを無効にする

高セキュリティなsuexec環境は一般的なCGI設定とは異なるためここでは無効にする

cd /usr/sbin
mv suexec suexec.THIS_FEATURE_WAS_DISABLED_BY_ADMINISTRATOR

これはかなり強引な方法で、「suexecが見つからない」と毎回エラーログに出力される。
通常はsuexec環境でCGIを動作させるか、suexecに影響されないディレクトリで動作させる。


▼rootでhttpdを設定する

(※httpd.confをバックアップしてから編集する)

cd /etc/httpd/conf
cp httpd.conf httpd.conf.BAK-20081112
vi httpd.conf

(※以下、インデント部はviでの編集内容)

(※検索して編集する その1)

UserDir disable
      ↓
#UserDir disable    ←コメントアウトして無効にする

(※検索して編集する その2)

#UserDir public_html
      ↓
UserDir public_html    ←コメントアウトを外して有効にする

(※最下行に移動して追加する)

<Directory "/home/*/public_html/cgi-bin">
    Options +ExecCGI
    AddHandler cgi-script .cgi
</Directory>

(※保存してviを終了)

(※httpdを再起動し設定を反映させる)

/etc/init.d/httpd restart


▼userでホームディレクトリにCGI実行環境を設定する

(※ホームディレクトリにその他ユーザがcdできるようにする)

chmod o+x ~

(※公開ディレクトリとCGIディレクトリを作成する)

mkdir -p ~/public_html/cgi-bin

(※適当なCGIファイルを作成する)

cd ~/public_html/cgi-bin
vi hello.cgi

(※以下、インデント部はviでの編集内容)

#!/bin/sh

echo "Content-Type: text/html"
echo ""
echo "<html>"
echo "<head><title>Hello</title></head>"
echo "<body>"
echo "<h1>Hello My CGI world!</h1>"
echo "
"
	printenv
	echo "
"
echo "</body>"
echo "</html>"

(※保存してviを終了)

(※パーミッションを変更しapacheユーザに実行権を与える)

chmod o+rx hello.cgi

(※ブラウザでアクセスしてみる)

http://IPアドレス/~user/cgi-bin/hello.cgi
 

■ファイルシステム操作

 投稿者:探偵マリオ  投稿日:2009年 1月26日(月)12時00分21秒
返信・引用
  ■ファイルシステム操作


□実習
4GBの可変長ディスクをdisk2.vhdとして作成しハードディスク2に接続する。
→ /dev/hdb として利用できる。

・パーティションを作成する(教科書13.2,P220)
fdisk /dev/hdb
n (新しく作成)
  p (基本パーティション)
   1 (第1)
    [Enter] (デフォルトの1)
    [Enter] (デフォルト)
p (表示して確認)
w (ディスクに反映)

※n,p,wなどは一文字で入力するコマンド


・ファイルシステムを作成する(教科書13.3,P226)
mkfs(13.3.3,P228)
mkfs -t ext3 /dev/hdb1

・マウントする(教科書13.4,P230)
mkdir /work (マウントポイントを作成)
mount -t ext3 /dev/hdb1 /work (マウント)
df (マウントされているか確認)

・アンマウントする
umount /work


□起動時にマウントするように設定する

/etc/fstabにエントリを記述することで起動時にマウントする

/dev/hdb1  /work  ext3  defaults  1  2
---------  -----  ----  --------  -  -
1          2      3     4         5  6

1. デバイスファイルまたはラベル
2. マウントするディレクトリ
3. ファイルシステム
4. マウントオプション
5. ダンプ対象かどうか(1=対象,0=非対象)
6. fsckがチェックする順番
(0=チェックしない,
1=ルートファイルシステム,
2以上=その他ファイルシステム)

viで編集し、/dev/hdb1が/workにマウントされるよう記述する。
→再起動して確認する。
 

(無題)

 投稿者:探偵マリオ  投稿日:2009年 1月24日(土)00時03分42秒
返信・引用
  LinuxとXML

後期テストの参考用PDF&HTML
http://www10.uploader.jp/user/file/images/file_uljp00001.rar
 

Linux覚えていた方が良いコマンド

 投稿者:探偵マリオ  投稿日:2009年 1月23日(金)10時38分33秒
返信・引用
  1.fdisk mkfs mount umount df

2.ランレベル
 0.停止
 1.シングルユーザモード
 2.CUI(マルチユーザ、ネットワーク使用)
 3.GUI(マルチユーザ、ネットワーク使用)
 4.リブート
※initコマンドで変更
 例)init_ランレベル

デーモン操作
chkconfig コマンド
・chkconfig_list
・chkconfig_デーモン{ON,OFF}

起動・停止
/etc/init.d/デーモン_start
/etc/init.d/デーモン_stop

パッケージ
yumコマンド

更新チェック→yum_checkupdate
更新    →yum_update
インストール→yum_install_パッケージ
削除    →yum_remove_パッケージ
キャッシュクリア  →yum_clear_all

3.Apache
httpd.conf
・ScriptAlias
・Alias
・<directory 〜>
・Options
・Addhandler
・Userdir

CGI
・動作ユーザ
・保護モード
・スクリプトの場合の書き方
・出力の書き方
※suexcは出題しない

イメージ

4.BIND
・ゾーンの定義(named.conf)
・データベースレコードの定義
・nslookupコマンド

Samba
・smb.conf
 ・共有の作り方
 ・homes共有
Smbpasswdコマンド

・共有セキュリティとファイルシステムセキュリティ
 

(無題)

 投稿者:kk  投稿日:2009年 1月23日(金)09時58分11秒
返信・引用
  http://gakusei1.denpa.ac.jp/teacher/yabuki/linux/h20/  

Linux出題範囲

 投稿者:探偵マリオ  投稿日:2009年 1月23日(金)09時46分24秒
返信・引用
  1.ファイルシステム操作

2.ランレベルとデーモン
  パッケージ操作

3.Apache
 CGI

4.BIND
 Samba

5.小論文

・20点×5問
 

(無題)

 投稿者:村瀬の後ろの子  投稿日:2009年 1月22日(木)14時11分12秒
返信・引用
  import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBSelectExample2 {
  public static void main(String args[]) {
    try {
      String url = "jdbc:mysql://localhost:3306/examdb"
          + "?useUnicode=true&characterEncoding=utf8";
      String user = "root";
      String password = "mysql";
      Class.forName("com.mysql.jdbc.Driver");
      Connection con = DriverManager.getConnection(url, user, password);
      Statement stmt = con.createStatement();
      String query = "select r_no, r_code, d_titoru from rentaru,DVD where r_code = d_code ";
      ResultSet rs = stmt.executeQuery(query);
      while (rs.next()) {
        int r_no = rs.getInt("r_no");
        int r_code = rs.getInt("r_code");
        String d_titoru = rs.getString("d_titoru");
        System.out.println("[" + r_no + "] " + r_code + " " + d_titoru + " ");
      }
      rs.close();
      stmt.close();
      con.close();
    } catch (SQLException e) {
      e.printStackTrace();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}
 

(無題)

 投稿者:村瀬の後ろの子  投稿日:2009年 1月22日(木)12時14分41秒
返信・引用
  ひとまずA

import java.sql.*;
public class DBSelectExample {
  public static void main(String args[]) {
    try {
      String url = "jdbc:mysql://localhost:3306/examdb"
          + "?useUnicode=true&characterEncoding=utf8";
      String user = "root";
      String password = "mysql";
      Class.forName("com.mysql.jdbc.Driver");
      Connection con = DriverManager.getConnection(url, user, password);
      Statement stmt = con.createStatement();
      String query = "select d_code, d_titoru from DVD";
      ResultSet rs = stmt.executeQuery(query);
      while (rs.next()) {
        int d_code = rs.getInt("d_code");
        String d_titoru = rs.getString("d_titoru");
        System.out.println("[" + d_code + "] " + d_titoru + "  ");
      }
      rs.close();
      stmt.close();
      con.close();
    } catch (SQLException e) {
      e.printStackTrace();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}
 

(無題)

 投稿者:探偵マリオ  投稿日:2009年 1月21日(水)11時34分11秒
返信・引用
  JSP課題3(木)
・動的Webプロジェクトの作成→P249〜P253
・テーブルに作成(既存のexamdb利用)
DVDテーブル作成
・DVDを紹介するクラスを作成→P494〜495
・DVD集合を表すクラスを作成→P495〜496

・DAOクラスを作成→P497〜499
・server.xmlを作成→P499〜500


Aランク・・・貸出テーブルを作成
貸し出し状況を表示
 

以上は、新着順71番目から80番目までの記事です。 4  5  6  7  8  9  10  11  12  13  |  《前のページ |  次のページ》 
/30 


[PR]