トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

Debian(Sarge):Prius/2006-4-2

この記事は古いです
こちらを参照→ http://goungoun.dip.jp/app/fswiki/wiki.cgi/debianetch

目次

ddnsまわり

参考

家サーバでDDNS - Linux Home Server Memo - 自宅サーバ(http://asshole.dip.jp/ieserver.php

ddnsドメイン取得

以下から取得

無料・ダイナミックDNS(DDNS)サービス - ieServer.Net(http://ieserver.net/

・新規ユーザ登録
・IP登録
を実施

取得したのは、以下ドメイン

  • xxxx.dip.jp - 通用はこれを使用
  • mlxxxx.dip.jp - メーリングリスト専用

ps.
最大5ドメインまでは取得OKとのこと

www(tcp/80),smtp(tcp/25)ポートの穴あけ

ADSLモデムの設定で穴あけする。
外部からの80,25ポートへのアクセスを、192.168.0.224の80,25ポートへマッピング
LostTechnology - Aterm WARPSTARシリーズでのサーバー公開設定(http://www.losttechnology.jp/Tips/aterm.html

外部サイトから80,25があいていることを確認
Security Scan - Sygate Online Services (sos)(http://scan.sygatetech.com/quickscan.html

nslookupでドメイン名からIPをひけるか確認

$ nslookup
> xxxx.dip.jp
Server:         192.168.0.1
Address:        192.168.0.1#53

Non-authoritative answer:
Name:   xxxx.dip.jp
Address: ***.***.74.253
> mlxxxx.dip.jp
Server:         192.168.0.1
Address:        192.168.0.1#53

Non-authoritative answer:
Name:   mlxxxx.dip.jp
Address: ***.***.74.253
> exit

おっけー

ブラウザ経由でHPが表示できるか確認

proxyを通して表示する。

   192.168.0.x
====================> <=======================

 Client  Server  adslmodem   internet    proxy
   |       |         |          |          |
  A+---------------->|--------->|--------->|
   |       |         |          |          |
   |       |<--------|<---------|<---------+B
   |       |         |          |          |
   |      C+-------->|--------->|--------->|
   |       |         |          |          |
   |<------|<--------|<---------|<---------+D
   |       |         |          |          |
   |       |         |          |          |

方言変換Proxyサーバ(http://www.yansite.jp/osakaproxy.html

というのを通してみる。

ttp://www.yansite.jp:8080/-_-http://xxxx.dip.jp

表示できればおっけー

ローカルから表示できないのは面倒なので・・・

hostsに固定登録する。
C:\WINDOWS\SYSTEM32\DRIVERS\ETC\HOSTS

:
192.168.0.224       xxxx.dip.jp

IPアドレス自動更新

プロバイダからは非固定グローバルIPが割り当てられているので、IP変更を検出して、DDNSサーバに再登録するスクリプトを設定

IPアドレス更新サンプルスクリプト(ieServer.Net 専用)を使う
無料・ダイナミックDNS(DDNS)サービス - ieServer.Net(http://ieserver.net/tools.html

以下のスクリプト変更を行った。

  • プロバイダから割り当てられたIPアドレスをチェック方法の変更
    • ttp://ieserver.net/ipcheck.shtml へアクセスしてIPアドレスを確認している。
    • ieserverに無用な負荷を与えてしまう。
    • AdslModemの管理画面にアクセスしてIPアドレスを取得する処理に変更
  • 2ドメインの処理に対応
    • xxxx.dip.jp、mlxxxx.dip.jp の2ドメインを登録するよう変更

/usr/local/ddns/ddns-update.pl

変更後スクリプトは以下
$ cat /usr/local/ddns/ddns-update.pl

#!/usr/bin/perl

# ieServer.Net 専用 DDNS IP アドレス更新スクリプト - ddns-update.pl
# 作成者:山本恭弘@Agora Inc. 作成日:2004/03/24
#
# 回線割り当てグローバルIPアドレスを確認し、変化があれば新IPアドレスを
# DDNSに登録。当コマンドを一定の間隔で実行し、IPアドレスの変化を監視&
# 更新処理する。利用には perl wget cron が利用可能である必要あり。
#
# 回線に割り当てられた IPアドレス は http://ieserver.net/ipcheck.shtml
# へのアクセスによって確認。
#
# cron にて当コマンドを等間隔で実行し、回線IPを確認。変化があればDDNSに
# IPアドレスを登録。DDNSサーバーへの負荷軽減の点から実行間隔は10分以上と
# すること。
# crontab設定例(/usr/local/ddns/ddns.plにスクリプトを置き10分間隔で実行)
# 5,15,25,35,45,55 * * * * /usr/local/ddns/ddns-update.pl

# 以下2ファイルの配置ディレクトリは好みに応じ設定
# 1. 設定IPアドレスワークファイル
$CURRENT_IP_FILE = "current_ip";

#  2. 設定状況ログファイル
$LOG_FILE        = "ip_update.log";

# 回線IP確認ページURL
$REMOTE_ADDR_CHK = "http://ieserver.net/ipcheck.shtml";
# DDNS更新ページURL
# wgetをSSL接続可能でビルドしているなら、https:// での接続を推奨
$DDNS_UPDATE     = "https://ieserver.net/cgi-bin/dip.cgi";

# ieServer.Netにて取得したアカウント(サブドメイン)情報を記入
$ACCOUNT         = "xxxx";     # アカウント(サブドメイン)名設定
$ACCOUNT2        = "mlxxxx";     # アカウント(サブドメイン)名設定
$DOMAIN          = "dip.jp";     # ドメイン名設定
$PASSWORD        = "********";     # パスワード設定

if(!open(FILE,"$CURRENT_IP_FILE")) {
    $CURRENT_IP = '0.0.0.0';
    } else {
    $CURRENT_IP = <FILE>;
    close FILE;
}

$NEW_IP = '0.0.0.0';
#$NEW_IP = `wget -q -O - $REMOTE_ADDR_CHK`;
$NEW_IP = `./getip.pl`;

if ($NEW_IP ne "0.0.0.0" and $CURRENT_IP ne $NEW_IP) {

    $STATUS = `wget -q -O - '$DDNS_UPDATE?username=$ACCOUNT&domain=$DOMAIN&password=$PASSWORD&updatehost=1'`;
    if ($STATUS =~ m/$NEW_IP/) {
        open (FILE ,">$CURRENT_IP_FILE");
        print FILE $NEW_IP;
        close FILE;
        $TIME = localtime;
        open (FILE ,">>$LOG_FILE");
        print FILE "$TIME $ACCOUNT.$DOMAIN Updated $CURRENT_IP to $NEW_IP\n";
        close FILE;
    } else {
        $TIME = localtime;
        open (FILE ,">>$LOG_FILE");
        print FILE "$TIME $ACCOUNT.$DOMAIN Update aborted $CURRENT_IP to $NEW_IP\n";
        close FILE;
    }

    sleep 60;

    $STATUS = `wget -q -O - '$DDNS_UPDATE?username=$ACCOUNT2&domain=$DOMAIN&password=$PASSWORD&updatehost=1'`;
    if ($STATUS =~ m/$NEW_IP/) {
        open (FILE ,">$CURRENT_IP_FILE");
        print FILE $NEW_IP;
        close FILE;
        $TIME = localtime;
        open (FILE ,">>$LOG_FILE");
        print FILE "$TIME $ACCOUNT2.$DOMAIN Updated $CURRENT_IP to $NEW_IP\n";
        close FILE;
    } else {
        $TIME = localtime;
        open (FILE ,">>$LOG_FILE");
        print FILE "$TIME $ACCOUNT2.$DOMAIN Update aborted $CURRENT_IP to $NEW_IP\n";
        close FILE;
    }
}
exit;

/usr/local/ddns/getip.pl

AdslModem管理画面から割り当てられたIPアドレスを取得するスクリプト
$ cat /usr/local/ddns/getip.pl

#!/usr/bin/perl

$cmd = "wget -t 1 -T 1 -q -O - --http-user=****** --http-passwd=****** http://192.168.0.1/info_main.html | nkf |";
open(INFILE, $cmd) or die "open err!! $!";
my $flg = 0;
while (<INFILE>) {
  if ($flg == 1) {
#    print;
    /([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/;
    print "$1";
    exit;
  }
  if (/event,11/) {
#    print;
    $flg = 1;
  }
}

chmod

アクセス権設定

/usr/local/ddns$ sudo chmod 700 ddns-update.pl
/usr/local/ddns$ sudo chmod 700 getip.pl
/usr/local/ddns$ ls -al
合計 8
drwxr-sr-x   2 root staff  104 2006-04-02 14:12 .
drwxrwsr-x  11 root staff  288 2006-04-02 14:06 ..
-rwx------   1 root staff 2889 2006-04-02 14:11 ddns-update.pl
-rwx------   1 root staff  365 2006-04-02 14:12 getip.pl

スクリプトを定周期で起動

元にしたスクリプト中では、10分以上でという指定があるが、
今回は、割り当てられたIPアドレスをAdslModemから取得するようにしたので、
周期を3分で設定する。

vi /etc/crontab

$ sudo vi /etc/crontab

:
# Dynamic-DNS
1,4,7,10,13,16  *       * * *   root    (cd /usr/local/ddns; ./ddns-update.pl)
19,22,25,28,31  *       * * *   root    (cd /usr/local/ddns; ./ddns-update.pl)
34,37,40,43,46  *       * * *   root    (cd /usr/local/ddns; ./ddns-update.pl)
49,52,55,58     *       * * *   root    (cd /usr/local/ddns; ./ddns-update.pl)

しばらく待って動作していればおっけー

動作確認

/usr/local/ddns$ ls -al
合計 16
drwxr-sr-x   2 root staff  168 2006-04-02 14:25 .
drwxrwsr-x  11 root staff  288 2006-04-02 14:06 ..
-rw-r--r--   1 root staff   13 2006-04-02 14:25 current_ip
-rwx------   1 root staff 2904 2006-04-02 14:19 ddns-update.pl
-rwx------   1 root staff  365 2006-04-02 14:19 getip.pl
-rw-r--r--   1 root staff   70 2006-04-02 14:25 ip_update.log
/usr/local/ddns$
/usr/local/ddns$ cat current_ip
61.121.74.253/usr/local/ddns$
/usr/local/ddns$
/usr/local/ddns$ cat ip_update.log
Sun Apr  2 14:25:06 2006 xxxx.dip.jp Updated 0.0.0.0 to 61.121.74.253
Sun Apr  2 14:26:07 2006 mlxxxx.dip.jp Updated 0.0.0.0 to 61.121.74.253

おっけー

webdruid

インストール

apt-get install webdruid

$ sudo apt-get install webdruid
パッケージリストを読みこんでいます... 完了
依存関係ツリーを作成しています... 完了
以下の特別パッケージがインストールされます:
  defoma file libdb4.3 ttf-freefont
提案パッケージ:
  defoma-doc psfontmgr x-ttcidfont-conf dfontmgr apache httpd graphviz
推奨パッケージ:
  libft-perl
以下のパッケージが新たにインストールされます:
  defoma file libdb4.3 ttf-freefont webdruid
アップグレード: 0 個、新規インストール: 5 個、削除: 0 個、保留: 2 個。
2028kB のアーカイブを取得する必要があります。
展開後に追加で 5652kB のディスク容量が消費されます。
続行しますか? [Y/n] Y
取得:1 ftp://ftp.jp.debian.org sarge/main file 4.12-1 [28.6kB]
取得:2 ftp://ftp.jp.debian.org sarge/main libdb4.3 4.3.27-2 [417kB]
取得:3 ftp://ftp.jp.debian.org sarge/main defoma 0.11.8-0.1 [77.9kB]
取得:4 ftp://ftp.jp.debian.org sarge/main ttf-freefont 20031008-1.1 [1169kB]
取得:5 ftp://ftp.jp.debian.org sarge/main webdruid 0.5.4-2 [336kB]
2028kB を 2s で取得しました (680kB/s)
未選択パッケージ file を選択しています。
(データベースを読み込んでいます... 現在 18454 個のファイルとディレクトリがインストールされています。)
(.../archives/file_4.12-1_i386.deb から) file を展開しています...
未選択パッケージ libdb4.3 を選択しています。
(.../libdb4.3_4.3.27-2_i386.deb から) libdb4.3 を展開しています...
未選択パッケージ defoma を選択しています。
(.../defoma_0.11.8-0.1_all.deb から) defoma を展開しています...
未選択パッケージ ttf-freefont を選択しています。
(.../ttf-freefont_20031008-1.1_all.deb から) ttf-freefont を展開しています...
未選択パッケージ webdruid を選択しています。
(.../webdruid_0.5.4-2_i386.deb から) webdruid を展開しています...
file (4.12-1) を設定しています ...
libdb4.3 (4.3.27-2) を設定しています ...
defoma (0.11.8-0.1) を設定しています ...

ttf-freefont (20031008-1.1) を設定しています ...

webdruid (0.5.4-2) を設定しています ...

設定

/etc/webdruid/webdruid.conf

$ sudo vi /etc/webdruid/webdruid.conf

ログの解析を取りこぼししないよう、1日前のログを指定する。

:
####LogFile        /var/lib/httpd/logs/access_log
LogFile        /var/log/apache2/access.log.1
:

出力先を指定

:
####OutputDir      /var/lib/httpd/htdocs/usage
OutputDir      /var/www/local/webdruid
:

前回の解析結果を保持するよう指定

:
####Incremental no
Incremental     yes
:

DNS逆引きを有効にする。

####DNSCache    dns_cache.db
DNSCache        dns_cache.db
:
####DNSChildren 0
DNSChildren     10
:

全ての履歴を有効

####AllSites    no
####AllURLs     no
####AllReferrers        no
####AllAgents   no
####AllSearchStr        no
####AllUsers       no
AllSites        yes
AllURLs yes
AllReferrers    yes
AllAgents       yes
AllSearchStr    yes
AllUsers       yes

出力先フォルダを作成

$ sudo mkdir -p /var/www/local/webdruid

http://192.168.0.224/local/webdruid で公開するよう
apache2の設定を行っている前提とする。

確認

$ sudo webdruid
Using logfile /var/log/apache2/access.log (clf)
This is The WebDruid 0.5.4
Copyright (C) 2003-2004 Fabien Chevalier

Loading search engines list...Ok
Creating output in /var/www/local/webdruid
Hostname for reports is 'prius'
History file not found...
We won't be able execute /usr/bin/dot : disabling TopPath & UsersFlow outputs
Generating report for April 2006
Generating summary report
Saving history information...
2101 records in 0.32 seconds

http://192.168.0.224/local/webdruid/ に出力されてはいるが、日本語が文字化けしてる。
日本語文字化けがいやなのでLANG=Cで起動

$ sudo sh -c "LANG=C webdruid"
Using logfile /var/log/apache2/access.log (clf)
This is The WebDruid 0.5.4
Copyright (C) 2003-2004 Fabien Chevalier

Loading search engines list...Ok
Creating output in /var/www/local/webdruid
Hostname for reports is 'prius'
Reading history file... webalizer.hist
Generating report for April 2006
Generating summary report
Saving history information...
2116 records in 0.85 seconds

英語ではおっけー

cron登録

1日1回、前日のログを解析するよう設定

/etc/cron.daily/webdruid

$ sudo vi /etc/cron.daily/webdruid

#!/bin/sh

test -x /usr/bin/webdruid || exit 0

DATE=`date --date '1 days ago' +%Y%m%d`
LOG=/var/log/apache2/ymd/access.log.$DATE
LANG=C /usr/bin/webdruid $LOG > /dev/null
$ sudo chmod a+x /etc/cron.daily/webdruid
$ ls /etc/cron.daily -al
:
-rwxr-xr-x   1 root root   85 2006-04-02 17:11 webdruid

覚書

Incremental、LogFile の指定はコマンドラインからも可能
# Incremental yes = -p
# Incremental no  = -i

-i:以前の解析結果を無視して、新規に解析する場合 ←嘘ついてました。。

$ sudo sh -c "LANG=C webdruid -i /var/log/apache2/access.log"

-p:以前の解析結果に追加する場合

$ sudo sh -c "LANG=C webdruid -p /var/log/apache2/access.log"

新規解析は、出力先をrmで削除すればよい。
ということは、-iって何でしょう?
どこまで更新したか?とかいう情報を残さずに再解析??

この時点での課題まとめ

  • LANG=C webdruid としないと文字化けする

Debian(Sarge)/2005-11-7 で書いた方法で一応直るが、今回は対応保留。

メモ:「We won't be able execute /usr/bin/dot」エラー対応

/usr/bin/dotが入っているパッケージをインストールする。

apt-get install graphviz

$ sudo apt-get install graphviz
パッケージリストを読みこんでいます... 完了
依存関係ツリーを作成しています... 完了
以下の特別パッケージがインストールされます:
  fontconfig libfontconfig1 libxaw7 libxmu6 libxpm4 tcl8.4 tk8.4
提案パッケージ:
  msttcorefonts graphviz-doc tclreadline
推奨パッケージ:
  xterm x-terminal-emulator
以下のパッケージが新たにインストールされます:
  fontconfig graphviz libfontconfig1 libxaw7 libxmu6 libxpm4 tcl8.4 tk8.4
アップグレード: 0 個、新規インストール: 8 個、削除: 0 個、保留: 2 個。
4005kB のアーカイブを取得する必要があります。
展開後に追加で 10.6MB のディスク容量が消費されます。
続行しますか? [Y/n] Y
取得:1 ftp://ftp.jp.debian.org sarge/main libfontconfig1 2.3.1-2 [112kB]
取得:2 ftp://ftp.jp.debian.org sarge/main fontconfig 2.3.1-2 [106kB]
取得:3 ftp://ftp.jp.debian.org sarge/main libxmu6 4.3.0.dfsg.1-14sarge1 [209kB]
取得:4 ftp://ftp.jp.debian.org sarge/main libxpm4 4.3.0.dfsg.1-14sarge1 [195kB]
取得:5 ftp://ftp.jp.debian.org sarge/main libxaw7 4.3.0.dfsg.1-14sarge1 [338kB]
取得:6 ftp://ftp.jp.debian.org sarge/main tcl8.4 8.4.9-1 [1116kB]
取得:7 ftp://ftp.jp.debian.org sarge/main tk8.4 8.4.9-1 [957kB]
取得:8 ftp://ftp.jp.debian.org sarge/main graphviz 2.2.1-1sarge1 [971kB]
4005kB を 5s で取得しました (751kB/s)
パッケージを事前設定しています ...
未選択パッケージ libfontconfig1 を選択しています。
(データベースを読み込んでいます... 現在 18643 個のファイルとディレクトリがインストールされています。)
(.../libfontconfig1_2.3.1-2_i386.deb から) libfontconfig1 を展開しています...
未選択パッケージ fontconfig を選択しています。
(.../fontconfig_2.3.1-2_i386.deb から) fontconfig を展開しています...
未選択パッケージ libxmu6 を選択しています。
(.../libxmu6_4.3.0.dfsg.1-14sarge1_i386.deb から) libxmu6 を展開しています...
未選択パッケージ libxpm4 を選択しています。
(.../libxpm4_4.3.0.dfsg.1-14sarge1_i386.deb から) libxpm4 を展開しています...
未選択パッケージ libxaw7 を選択しています。
(.../libxaw7_4.3.0.dfsg.1-14sarge1_i386.deb から) libxaw7 を展開しています...
未選択パッケージ tcl8.4 を選択しています。
(.../tcl8.4_8.4.9-1_i386.deb から) tcl8.4 を展開しています...
未選択パッケージ tk8.4 を選択しています。
(.../tk8.4_8.4.9-1_i386.deb から) tk8.4 を展開しています...
未選択パッケージ graphviz を選択しています。
(.../graphviz_2.2.1-1sarge1_i386.deb から) graphviz を展開しています...
libxmu6 (4.3.0.dfsg.1-14sarge1) を設定しています ...

libxpm4 (4.3.0.dfsg.1-14sarge1) を設定しています ...

libxaw7 (4.3.0.dfsg.1-14sarge1) を設定しています ...

tcl8.4 (8.4.9-1) を設定しています ...

tk8.4 (8.4.9-1) を設定しています ...

fontconfig (2.3.1-2) を設定しています ...

Creating config file /etc/fonts/local.conf with new version
Updating font configuration of fontconfig...
Cleaning up category cid..
Cleaning up category truetype..
Cleaning up category type1..
Updating category type1..
Updating category truetype..
Updating category cid..
Regenerating fonts cache... done.

libfontconfig1 (2.3.1-2) を設定しています ...

graphviz (2.2.1-1sarge1) を設定しています ...

コマンドラインから解析ログ、出力先ディレクトリを指定する方法 (2006/5/31)

LANG=C /usr/bin/webdruid -o ./20060529 /var/log/apache2/ymd/access.log.20060529

smbfs

インストール

apt-get install smbfs

$ sudo apt-get install smbfs
パッケージリストを読みこんでいます... 完了
依存関係ツリーを作成しています... 完了
以下の特別パッケージがインストールされます:
  samba-common
提案パッケージ:
  smbclient
以下のパッケージが新たにインストールされます:
  samba-common smbfs
アップグレード: 0 個、新規インストール: 2 個、削除: 0 個、保留: 2 個。
2375kB のアーカイブを取得する必要があります。
展開後に追加で 5673kB のディスク容量が消費されます。
続行しますか? [Y/n] Y
取得:1 ftp://ftp.jp.debian.org sarge/main samba-common 3.0.14a-3sarge1 [2005kB]
取得:2 ftp://ftp.jp.debian.org sarge/main smbfs 3.0.14a-3sarge1 [370kB]
2375kB を 2s で取得しました (994kB/s)
パッケージを事前設定しています ...

 ┌─────────────────────────────────────────────┤ Samba Server ├─────────────────────────────────────────────┐
 │ これはクライアントから照会された際にあなたのサーバが現れるワークグループを制御します。このパラメータは   │
 │ security=domain 設定が使われたときのドメイン名も制御します。                                             │
 │                                                                                                          │
 │ ワークグループ/ドメイン名は何ですか?                                                                     │
 │                                                                                                          │
 │ WORKGROUP_______________________________________________________________________________________________ │
 │                                                                                                          │
 │                                                  <了解>                                                  │
 │                                                                                                          │
 └──────────────────────────────────────────────────────────────────────────────────────────────────────────┘
→「WORKGROUP」

┌──────────────────────────────────────────────┤ Samba Server ├──────────────────────────────────────────────┐
│                                                                                                            │
│ 最近の Windows クライアントは暗号化されたパスワードを使って SMB サーバとやり取りします。クリアテキストパ   │
│ スワードを使いたい場合は、あなたの Windows のレジストリのパラメータを変更する必要があります。暗号化された  │
│ パスワードを使うことを推奨します。こうする場合、有効な /etc/samba/smbpasswd ファイルがあることを確認し、   │
│ 各ユーザのパスワードは smbpasswd コマンドを使って設定します。                                              │
│                                                                                                            │
│ パスワードの暗号化を使いますか?                                                                            │
│                                                                                                            │
│                               <はい>                                 <いいえ>                              │
│                                                                                                            │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
→「はい」

┌──────────────────────────────────────────────┤ Samba Server ├──────────────────────────────────────────────┐
│                                                                                                            │
│ あなたのコンピュータがネットワーク上の DHCP サーバから IP アドレス情報を取得しているのであれば、DHCP サー  │
│ バはネットワーク上にある WINS サーバ (NetBIOS ネームサーバ) についての情報を提供することもできます。DHCP   │
│ で提供される WINS 設定は /etc/samba/dhcp.conf から自動的に読み込まれるため、smb.conf ファイルを変更する必  │
│ 要があります。                                                                                             │
│                                                                                                            │
│ この機能を使うためには、dhcp3-client パッケージがインストールされている必要があります。                    │
│                                                                                                            │
│ DHCP から WINS 設定を使うよう smb.conf を変更しますか?                                                     │
│                                                                                                            │
│                               <はい>                                 <いいえ>                              │
│                                                                                                            │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
→「いいえ」

未選択パッケージ samba-common を選択しています。
(データベースを読み込んでいます... 現在 19184 個のファイルとディレクトリがインストールされています。)
(.../samba-common_3.0.14a-3sarge1_i386.deb から) samba-common を展開しています...
未選択パッケージ smbfs を選択しています。
(.../smbfs_3.0.14a-3sarge1_i386.deb から) smbfs を展開しています...
samba-common (3.0.14a-3sarge1) を設定しています ...

smbfs (3.0.14a-3sarge1) を設定しています ...

確認

NetBIOS名から、IPがひけるか。

$ nmblookup winxp
querying winxp on 192.168.0.255
192.168.0.10 winxp<00>

おっけー

winxpの共有フォルダ「\common」を、Linuxの「/mnt」にマウントする。

mount -t smbfs //winxp/common /mnt -o codepage=cp932,iocharset=euc-jp

おっけー

mysql-server

参考

MySQL Reference Manual for version 4.0.12. - Table of Contents(http://www.mysql.gr.jp/Manual/mysql-4.00.12/manual.ja_toc.html
Debian Woody:MySQLの設定(http://sledge.i-e-c.co.jp/inst02.html
MySQLの使い方(http://www.javadrive.jp/mysql/index.html
phpMyAdmin | MySQL Database Administration Tool | www.phpmyadmin.net(http://www.phpmyadmin.net/home_page/index.php
Apache + PHP + MySQL編 Web+DBプログラミング入門 - [データベース]All About(http://allabout.co.jp/career/database/closeup/CU20030227/

インストール

apt-get install mysql-server

$ sudo apt-get install mysql-server
パッケージリストを読みこんでいます... 完了
依存関係ツリーを作成しています... 完了
以下の特別パッケージがインストールされます:
  libdbd-mysql-perl libdbi-perl libmysqlclient12 libnet-daemon-perl libplrpc-perl libreadline4 mysql-client
  mysql-common
提案パッケージ:
  dbishell libcompress-zlib-perl mysql-doc
以下のパッケージが新たにインストールされます:
  libdbd-mysql-perl libdbi-perl libmysqlclient12 libnet-daemon-perl libplrpc-perl libreadline4 mysql-client
  mysql-common mysql-server
アップグレード: 0 個、新規インストール: 9 個、削除: 0 個、保留: 2 個。
5350kB のアーカイブを取得する必要があります。
展開後に追加で 12.8MB のディスク容量が消費されます。
続行しますか? [Y/n] Y
取得:1 ftp://ftp.jp.debian.org sarge/main libreadline4 4.3-11 [140kB]
取得:2 ftp://ftp.jp.debian.org sarge/main mysql-common 4.0.24-10sarge1 [34.2kB]
取得:3 ftp://ftp.jp.debian.org sarge/main libmysqlclient12 4.0.24-10sarge1 [296kB]
取得:4 ftp://ftp.jp.debian.org sarge/main libnet-daemon-perl 0.38-1 [46.0kB]
取得:5 ftp://ftp.jp.debian.org sarge/main libplrpc-perl 0.2017-1 [35.0kB]
取得:6 ftp://ftp.jp.debian.org sarge/main libdbi-perl 1.46-6 [606kB]
取得:7 ftp://ftp.jp.debian.org sarge/main libdbd-mysql-perl 2.9006-1 [132kB]
取得:8 ftp://ftp.jp.debian.org sarge/main mysql-client 4.0.24-10sarge1 [415kB]
取得:9 ftp://ftp.jp.debian.org sarge/main mysql-server 4.0.24-10sarge1 [3646kB]
5350kB を 5s で取得しました (957kB/s)
パッケージを事前設定しています ...

┌─────────────────────────────────────┤ mysql-server を設定しています ├──────────────────────────────────────┐
│                                                                                                            │
│ インストール時のヒント                                                                                     │
│                                                                                                            │
│ MySQL を /etc/hosts ファイル経由で解決できる「数字でない」ホスト名の場合のみ、インストールされます。つま   │
│ り、"hostname" コマンドが "myhostname" を返す際に "10.0.0.1 myhostname" という行が /etc/hosts ファイルに   │
│ 無ければなりません。                                                                                       │
│                                                                                                            │
│ 新規に mysql ユーザとして "debian-sys-maint" が作成されます。この mysql アカウントは start/stop 時と cron  │
│ スクリプトで利用されます。消さないでください。                                                             │
│                                                                                                            │
│ MySQL の root ユーザに対して PASSWORD を設定するのを忘れないでください! /root/.my.cnf を使う場合、パスワ   │
│ ードだけではなく、このファイル中の "user" と "password" 行を記述してください。より詳細については           │
│ /usr/share/doc/mysql-server/README.Debian を見てください。                                                 │
│                                                                                                            │
│                                                   <了解>                                                   │
│                                                                                                            │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

未選択パッケージ libreadline4 を選択しています。
(データベースを読み込んでいます... 現在 19227 個のファイルとディレクトリがインストールされています。)
(.../libreadline4_4.3-11_i386.deb から) libreadline4 を展開しています...
未選択パッケージ mysql-common を選択しています。
(.../mysql-common_4.0.24-10sarge1_all.deb から) mysql-common を展開しています...
未選択パッケージ libmysqlclient12 を選択しています。
(.../libmysqlclient12_4.0.24-10sarge1_i386.deb から) libmysqlclient12 を展開しています...
未選択パッケージ libnet-daemon-perl を選択しています。
(.../libnet-daemon-perl_0.38-1_all.deb から) libnet-daemon-perl を展開しています...
未選択パッケージ libplrpc-perl を選択しています。
(.../libplrpc-perl_0.2017-1_all.deb から) libplrpc-perl を展開しています...
未選択パッケージ libdbi-perl を選択しています。
(.../libdbi-perl_1.46-6_i386.deb から) libdbi-perl を展開しています...
未選択パッケージ libdbd-mysql-perl を選択しています。
(.../libdbd-mysql-perl_2.9006-1_i386.deb から) libdbd-mysql-perl を展開しています...
未選択パッケージ mysql-client を選択しています。
(.../mysql-client_4.0.24-10sarge1_i386.deb から) mysql-client を展開しています...
未選択パッケージ mysql-server を選択しています。
(.../mysql-server_4.0.24-10sarge1_i386.deb から) mysql-server を展開しています...
libreadline4 (4.3-11) を設定しています ...

mysql-common (4.0.24-10sarge1) を設定しています ...
libmysqlclient12 (4.0.24-10sarge1) を設定しています ...

libnet-daemon-perl (0.38-1) を設定しています ...

libplrpc-perl (0.2017-1) を設定しています ...

libdbi-perl (1.46-6) を設定しています ...
libdbd-mysql-perl (2.9006-1) を設定しています ...
mysql-client (4.0.24-10sarge1) を設定しています ...
mysql-server (4.0.24-10sarge1) を設定しています ...
Stopping MySQL database server: mysqld.
Starting MySQL database server: mysqld.
Checking for crashed MySQL tables in the background.

設定

mysqladmin -u root password *********

$ sudo mysqladmin -u root password *********

確認

$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6 to server version: 4.0.24_Debian-10sarge1-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> status
--------------
mysql  Ver 12.22 Distrib 4.0.24, for pc-linux-gnu (i386)

Connection id:          6
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Server version:         4.0.24_Debian-10sarge1-log
Protocol version:       10
Connection:             Localhost via UNIX socket
Client characterset:    latin1
Server characterset:    latin1
UNIX socket:            /var/run/mysqld/mysqld.sock
Uptime:                 2 min 53 sec

Threads: 1  Questions: 21  Slow queries: 0  Opens: 12  Flush tables: 1  Open tables: 6  Queries per second avg: 0.121
--------------

mysql> show databases;
+----------+
| Database |
+----------+
| mysql    |
| test     |
+----------+
2 rows in set (0.00 sec)

mysql> exit
Bye

不要なユーザを削除する。

$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 16 to server version: 4.0.24_Debian-10sarge1-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> select user,host from mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| debian-sys-maint | localhost |
| root             | localhost |
| root             | prius     |
+------------------+-----------+
3 rows in set (0.01 sec)

mysql> delete from mysql.user where host='prius';
Query OK, 1 row affected (0.00 sec)

mysql> select user,host from mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| debian-sys-maint | localhost |
| root             | localhost |
+------------------+-----------+
2 rows in set (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

libapache2-mod-php4、php4

インストール

php4 からインストールすると apache1.3 関係のパッケージがインストールされてしまうので
先に libapache2-mod-php4 からインストールする。

# php4 を先にインストールすると 関連で libapache-mod-php4 もインストールされる。
# apache2 を使っているので本当は libapache2-mod-php4 がインストールされるのが正解。

ちなみに、
libapache2-mod-php4 は apache2-mpm-prefork を要求する。(他のモデルは使えない)

apt-get install libapache2-mod-php4

$ sudo apt-get install libapache2-mod-php4
パッケージリストを読みこんでいます... 完了
依存関係ツリーを作成しています... 完了
以下の特別パッケージがインストールされます:
  libzzip-0-12 php4-common
提案パッケージ:
  php4-pear
以下のパッケージが新たにインストールされます:
  libapache2-mod-php4 libzzip-0-12 php4-common
アップグレード: 0 個、新規インストール: 3 個、削除: 0 個、保留: 2 個。
1813kB のアーカイブを取得する必要があります。
展開後に追加で 3686kB のディスク容量が消費されます。
続行しますか? [Y/n] Y
取得:1 ftp://ftp.jp.debian.org sarge/main libzzip-0-12 0.12.83-4 [33.6kB]
取得:2 ftp://ftp.jp.debian.org sarge/main php4-common 4:4.3.10-16 [168kB]
取得:3 ftp://ftp.jp.debian.org sarge/main libapache2-mod-php4 4:4.3.10-16 [1612kB]
1813kB を 1s で取得しました (927kB/s)
未選択パッケージ libzzip-0-12 を選択しています。
(データベースを読み込んでいます... 現在 19601 個のファイルとディレクトリがインストールされています。)
(.../libzzip-0-12_0.12.83-4_i386.deb から) libzzip-0-12 を展開しています...
未選択パッケージ php4-common を選択しています。
(.../php4-common_4%3a4.3.10-16_i386.deb から) php4-common を展開しています...
未選択パッケージ libapache2-mod-php4 を選択しています。
(.../libapache2-mod-php4_4%3a4.3.10-16_i386.deb から) libapache2-mod-php4 を展開しています...
libzzip-0-12 (0.12.83-4) を設定しています ...

php4-common (4.3.10-16) を設定しています ...
libapache2-mod-php4 (4.3.10-16) を設定しています ...
Forcing reload of web server: Apache2.

apt-get install php4

$ sudo apt-get install php4
パッケージリストを読みこんでいます... 完了
依存関係ツリーを作成しています... 完了
以下のパッケージが新たにインストールされます:
  php4
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 2 個。
1148B のアーカイブを取得する必要があります。
展開後に追加で 24.6kB のディスク容量が消費されます。
取得:1 ftp://ftp.jp.debian.org sarge/main php4 4:4.3.10-16 [1148B]
1148B を 0s で取得しました (2296B/s)
未選択パッケージ php4 を選択しています。
(データベースを読み込んでいます... 現在 19645 個のファイルとディレクトリがインストールされています。)
(.../php4_4%3a4.3.10-16_all.deb から) php4 を展開しています...
php4 (4.3.10-16) を設定しています ...
$ sudo vi /etc/php4/apache2/php.ini

変更箇所は以下

$ diff /usr/share/php4/php.ini-dist /etc/php4/apache2/php.ini
277c277,278
< display_errors = On
---
> ;;;display_errors = On
> display_errors = Off
287c288,289
< log_errors = Off
---
> ;;;log_errors = Off
> log_errors = On
382c384,385
< magic_quotes_gpc = On
---
> ;;;magic_quotes_gpc = On
> magic_quotes_gpc = Off
494c497,498
< allow_url_fopen = On
---
> ;;;allow_url_fopen = On
> allow_url_fopen = Off
815c819,820
< ;session.gc_probability = 0
---
> ;;;;session.gc_probability = 0
> session.gc_probability = 25
820c825,826
< session.gc_maxlifetime = 1440
---
> ;;;session.gc_maxlifetime = 1440
> session.gc_maxlifetime = 3600
999c1005,1006
< ;mbstring.language = Japanese
---
> ;;;;mbstring.language = Japanese
> mbstring.language = Japanese
1011c1018,1019
< ;mbstring.http_output = SJIS
---
> ;;;;mbstring.http_output = SJIS
> mbstring.http_output = EUC-JP
1018c1026,1027
< ;mbstring.encoding_translation = Off
---
> ;;;;mbstring.encoding_translation = Off
> mbstring.encoding_translation = Off
1022c1031,1032
< ;mbstring.detect_order = auto
---
> ;;;;mbstring.detect_order = auto
> mbstring.detect_order = auto
1036c1046,1047
< ;mbstring.func_overload = 0
---
> ;;;;mbstring.func_overload = 0
> mbstring.func_overload = 0

確認

$ sudo vi /var/www/local/phpinfo.php

<?php phpinfo() ?>

http://192.168.0.224/local/phpinfo.php

表示された。
おっけー

HTTP応答ヘッダのX-Powered-Byを隠す(2006/10/01)

以下参考しました。

PHPファイルの応答ヘッダに含まれる「X-Powered-By」の隠蔽:
http://grin.flagbind.jp/archives/2004/12/phpxpoweredby.html

変更前のレスポンスヘッダ

:
Server: Apache
X-Powered-By: PHP/4.3.10-16
Expires: Mon, 26 Jul 1997 05:00:00 GMT
:

/etc/php4/apache2/php.ini 編集

:
;expose_php = On
expose_php = Off
:

変更後のレスポンスヘッダ

:
Server: Apache
Expires: Mon, 26 Jul 1997 05:00:00 GMT
:

X-Powered-By が表示されなくなりました。

レスポンスのgzip圧縮対応(2006/10/01)

以下参照
Debian(Sarge):Prius/2006-10-1

php4-gd

インストール

apt-get install php4-gd

# sudo apt-get install php4-gd
パッケージリストを読みこんでいます... 完了
依存関係ツリーを作成しています... 完了
以下の特別パッケージがインストールされます:
  libgd2-xpm libt1-5
提案パッケージ:
  libgd-tools
以下のパッケージは「削除」されます:
  libgd2-noxpm
以下のパッケージが新たにインストールされます:
  libgd2-xpm libt1-5 php4-gd
アップグレード: 0 個、新規インストール: 3 個、削除: 1 個、保留: 2 個。
372kB のアーカイブを取得する必要があります。
展開後に追加で 520kB のディスク容量が消費されます。
続行しますか? [Y/n] Y
取得:1 ftp://ftp.jp.debian.org sarge/main libgd2-xpm 2.0.33-1.1 [195kB]
取得:2 ftp://ftp.jp.debian.org sarge/main libt1-5 5.0.2-3 [144kB]
取得:3 ftp://ftp.jp.debian.org sarge/main php4-gd 4:4.3.10-16 [32.4kB]
372kB を 1s で取得しました (247kB/s)
パッケージを事前設定しています ...
dpkg: libgd2-noxpm: 依存関係に問題があります。しかし要求に従い削除しています:
 webdruid は以下に依存(depends)します: libgd2-noxpm (>= 2.0.33) | libgd2-xpm (>= 2.0.33) ...しかし:
  パッケージ libgd2-noxpm を提供していますが、削除しようとしています。
  パッケージ libgd2-xpm はインストールされていません。
 librrd0 は以下に依存(depends)します: libgd2-noxpm (>= 2.0.28) | libgd2-xpm (>= 2.0.28) ...しかし:
  パッケージ libgd2-noxpm を提供していますが、削除しようとしています。
  パッケージ libgd2-xpm はインストールされていません。
(データベースを読み込んでいます... 現在 21064 個のファイルとディレクトリがインストールされています。)
libgd2-noxpm を削除しています...
未選択パッケージ libgd2-xpm を選択しています。
(データベースを読み込んでいます... 現在 21056 個のファイルとディレクトリがインストールされています。)
(.../libgd2-xpm_2.0.33-1.1_i386.deb から) libgd2-xpm を展開しています...
未選択パッケージ libt1-5 を選択しています。
(.../libt1-5_5.0.2-3_i386.deb から) libt1-5 を展開しています...
未選択パッケージ php4-gd を選択しています。
(.../php4-gd_4%3a4.3.10-16_i386.deb から) php4-gd を展開しています...
libgd2-xpm (2.0.33-1.1) を設定しています ...
libt1-5 (5.0.2-3) を設定しています ...

php4-gd (4.3.10-16) を設定しています ...

php4-pear

インストール

apt-get install php4-pear

$ sudo apt-get install php4-pear
パッケージリストを読みこんでいます... 完了
依存関係ツリーを作成しています... 完了
以下の特別パッケージがインストールされます:
  php4-cli
提案パッケージ:
  php4-dev
以下のパッケージが新たにインストールされます:
  php4-cli php4-pear
アップグレード: 0 個、新規インストール: 2 個、削除: 0 個、保留: 2 個。
1860kB のアーカイブを取得する必要があります。
展開後に追加で 4981kB のディスク容量が消費されます。
続行しますか? [Y/n] Y
取得:1 ftp://ftp.jp.debian.org sarge/main php4-cli 4:4.3.10-16 [1609kB]
取得:2 ftp://ftp.jp.debian.org sarge/main php4-pear 4:4.3.10-16 [251kB]
1860kB を 2s で取得しました (802kB/s)
未選択パッケージ php4-cli を選択しています。
(データベースを読み込んでいます... 現在 20280 個のファイルとディレクトリがインストールされています。)
(.../php4-cli_4%3a4.3.10-16_i386.deb から) php4-cli を展開しています...
未選択パッケージ php4-pear を選択しています。
(.../php4-pear_4%3a4.3.10-16_all.deb から) php4-pear を展開しています...
php4-cli (4.3.10-16) を設定しています ...

php4-pear (4.3.10-16) を設定しています ...
$ dpkg -L php4-pear
/.
/usr
/usr/bin
/usr/bin/pear
/usr/lib
/usr/lib/php4
/usr/share
/usr/share/php
/usr/share/php/.registry
/usr/share/php/.registry/archive_tar.reg
/usr/share/php/.registry/console_getopt.reg
/usr/share/php/.registry/pear.reg
/usr/share/php/.registry/db.reg
/usr/share/php/.registry/http.reg
/usr/share/php/.registry/mail.reg
/usr/share/php/.registry/net_smtp.reg
/usr/share/php/.registry/net_socket.reg
/usr/share/php/.registry/xml_parser.reg
/usr/share/php/.registry/xml_rpc.reg
/usr/share/php/.lock
/usr/share/php/.filemap
/usr/share/php/Archive
/usr/share/php/Archive/Tar.php
/usr/share/php/docs
/usr/share/php/docs/Archive_Tar
/usr/share/php/docs/Archive_Tar/docs
/usr/share/php/docs/Archive_Tar/docs/Archive_Tar.txt
/usr/share/php/docs/DB
/usr/share/php/docs/DB/doc
/usr/share/php/docs/DB/doc/MAINTAINERS
/usr/share/php/docs/DB/doc/STATUS
/usr/share/php/docs/DB/doc/TESTERS
/usr/share/php/docs/DB/doc/IDEAS
/usr/share/php/docs/Net_SMTP
/usr/share/php/docs/Net_SMTP/docs
/usr/share/php/docs/Net_SMTP/docs/examples
/usr/share/php/docs/Net_SMTP/docs/examples/basic.php
/usr/share/php/docs/Net_SMTP/docs/guide.txt
/usr/share/php/Console
/usr/share/php/Console/Getopt.php
/usr/share/php/data
/usr/share/php/data/PEAR
/usr/share/php/data/PEAR/template.spec
/usr/share/php/data/PEAR/package.dtd
/usr/share/php/System.php
/usr/share/php/pearcmd.php
/usr/share/php/PEAR
/usr/share/php/PEAR/Command.php
/usr/share/php/PEAR/Common.php
/usr/share/php/PEAR/Command
/usr/share/php/PEAR/Command/Build.php
/usr/share/php/PEAR/Command/Common.php
/usr/share/php/PEAR/Command/Config.php
/usr/share/php/PEAR/Command/Install.php
/usr/share/php/PEAR/Command/Package.php
/usr/share/php/PEAR/Command/Registry.php
/usr/share/php/PEAR/Command/Remote.php
/usr/share/php/PEAR/Command/Mirror.php
/usr/share/php/PEAR/Command/Auth.php
/usr/share/php/PEAR/Config.php
/usr/share/php/PEAR/Dependency.php
/usr/share/php/PEAR/Downloader.php
/usr/share/php/PEAR/ErrorStack.php
/usr/share/php/PEAR/Builder.php
/usr/share/php/PEAR/Packager.php
/usr/share/php/PEAR/Frontend
/usr/share/php/PEAR/Frontend/CLI.php
/usr/share/php/PEAR/Installer.php
/usr/share/php/PEAR/Registry.php
/usr/share/php/PEAR/Remote.php
/usr/share/php/PEAR/Autoloader.php
/usr/share/php/OS
/usr/share/php/OS/Guess.php
/usr/share/php/Net
/usr/share/php/Net/Socket.php
/usr/share/php/Net/SMTP.php
/usr/share/php/XML
/usr/share/php/XML/RPC.php
/usr/share/php/XML/Parser.php
/usr/share/php/XML/RPC
/usr/share/php/XML/RPC/Server.php
/usr/share/php/PEAR.php
/usr/share/php/DB
/usr/share/php/DB/dbase.php
/usr/share/php/DB/fbsql.php
/usr/share/php/DB/ibase.php
/usr/share/php/DB/ifx.php
/usr/share/php/DB/msql.php
/usr/share/php/DB/mssql.php
/usr/share/php/DB/mysql.php
/usr/share/php/DB/mysqli.php
/usr/share/php/DB/oci8.php
/usr/share/php/DB/odbc.php
/usr/share/php/DB/pgsql.php
/usr/share/php/DB/sybase.php
/usr/share/php/DB/storage.php
/usr/share/php/DB/sqlite.php
/usr/share/php/DB/common.php
/usr/share/php/tests
/usr/share/php/tests/DB
/usr/share/php/tests/DB/tests
/usr/share/php/tests/DB/tests/db_parsedsn.phpt
/usr/share/php/tests/DB/tests/db_factory.phpt
/usr/share/php/tests/DB/tests/db_ismanip.phpt
/usr/share/php/tests/DB/tests/db_error2.phpt
/usr/share/php/tests/DB/tests/errors.inc
/usr/share/php/tests/DB/tests/fetchmode_object.inc
/usr/share/php/tests/DB/tests/fetchmodes.inc
/usr/share/php/tests/DB/tests/include.inc
/usr/share/php/tests/DB/tests/limit.inc
/usr/share/php/tests/DB/tests/numcols.inc
/usr/share/php/tests/DB/tests/numrows.inc
/usr/share/php/tests/DB/tests/prepexe.inc
/usr/share/php/tests/DB/tests/run.cvs
/usr/share/php/tests/DB/tests/sequences.inc
/usr/share/php/tests/DB/tests/simplequery.inc
/usr/share/php/tests/DB/tests/transactions.inc
/usr/share/php/tests/DB/tests/skipif.inc
/usr/share/php/tests/DB/tests/driver
/usr/share/php/tests/DB/tests/driver/02fetch.phpt
/usr/share/php/tests/DB/tests/driver/03simplequery.phpt
/usr/share/php/tests/DB/tests/driver/04numcols.phpt
/usr/share/php/tests/DB/tests/driver/05sequences.phpt
/usr/share/php/tests/DB/tests/driver/06prepexec.phpt
/usr/share/php/tests/DB/tests/driver/08affectedrows.phpt
/usr/share/php/tests/DB/tests/driver/09numrows.phpt
/usr/share/php/tests/DB/tests/driver/10errormap.phpt
/usr/share/php/tests/DB/tests/driver/11transactions.phpt
/usr/share/php/tests/DB/tests/driver/13limit.phpt
/usr/share/php/tests/DB/tests/driver/14fetchmode_object.phpt
/usr/share/php/tests/DB/tests/driver/15quote.phpt
/usr/share/php/tests/DB/tests/driver/16tableinfo.phpt
/usr/share/php/tests/DB/tests/driver/17query.phpt
/usr/share/php/tests/DB/tests/driver/18get.phpt
/usr/share/php/tests/DB/tests/driver/bug22328.phpt
/usr/share/php/tests/DB/tests/driver/connect.inc
/usr/share/php/tests/DB/tests/driver/mktable.inc
/usr/share/php/tests/DB/tests/driver/run.cvs
/usr/share/php/tests/DB/tests/driver/setup.inc.cvs
/usr/share/php/tests/DB/tests/driver/skipif.inc
/usr/share/php/tests/DB/tests/driver/01connect.phpt
/usr/share/php/tests/DB/tests/db_error.phpt
/usr/share/php/tests/Net_SMTP
/usr/share/php/tests/Net_SMTP/tests
/usr/share/php/tests/Net_SMTP/tests/basic.phpt
/usr/share/php/tests/Net_SMTP/tests/config.php.dist
/usr/share/php/tests/Net_SMTP/tests/auth.phpt
/usr/share/php/tests/XML_Parser
/usr/share/php/tests/XML_Parser/tests
/usr/share/php/tests/XML_Parser/tests/002.phpt
/usr/share/php/tests/XML_Parser/tests/003.phpt
/usr/share/php/tests/XML_Parser/tests/004.phpt
/usr/share/php/tests/XML_Parser/tests/005.phpt
/usr/share/php/tests/XML_Parser/tests/test2.xml
/usr/share/php/tests/XML_Parser/tests/test3.xml
/usr/share/php/tests/XML_Parser/tests/001.phpt
/usr/share/php/DB.php
/usr/share/php/HTTP.php
/usr/share/php/Mail
/usr/share/php/Mail/null.php
/usr/share/php/Mail/sendmail.php
/usr/share/php/Mail/smtp.php
/usr/share/php/Mail/RFC822.php
/usr/share/php/Mail/mail.php
/usr/share/php/Mail.php
/usr/share/doc
/etc
/etc/pear
/etc/pear/pear.conf
/usr/share/doc/php4-pear

php4-mysql

インストール

apt-get install php4-mysql

 $ sudo apt-get install php4-mysql
パッケージリストを読みこんでいます... 完了
依存関係ツリーを作成しています... 完了
以下のパッケージが新たにインストールされます:
  php4-mysql
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 2 個。
21.2kB のアーカイブを取得する必要があります。
展開後に追加で 115kB のディスク容量が消費されます。
取得:1 ftp://ftp.jp.debian.org sarge/main php4-mysql 4:4.3.10-16 [21.2kB]
21.2kB を 0s で取得しました (45.2kB/s)
パッケージを事前設定しています ...
未選択パッケージ php4-mysql を選択しています。
(データベースを読み込んでいます... 現在 19646 個のファイルとディレクトリがインストールされています。)
(.../php4-mysql_4%3a4.3.10-16_i386.deb から) php4-mysql を展開しています...
php4-mysql (4.3.10-16) を設定しています ...

phpmyadmin

インストール

apt-get install phpmyadmin

$ sudo apt-get install phpmyadmin
パッケージリストを読みこんでいます... 完了
依存関係ツリーを作成しています... 完了
提案パッケージ:
  php4-gd php5-gd
以下のパッケージが新たにインストールされます:
  phpmyadmin
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 2 個。
2768kB のアーカイブを取得する必要があります。
展開後に追加で 10.7MB のディスク容量が消費されます。
取得:1 ftp://ftp.jp.debian.org sarge/main phpmyadmin 4:2.6.2-3sarge1 [2768kB]
2768kB を 2s で取得しました (1162kB/s)
パッケージを事前設定しています ...

┌────────────────────────────────┤ phpmyadmin を設定しています ├────────────────────────────────┐
│ phpMyAdmin は PHP が動作する web サーバをサポートしていますが、この自動設定プロセスは Apache  │
│ のみサポートしています。                                                                      │
│                                                                                               │
│ どの web サーバを自動的に再設定しますか?                                                      │
│                                                                                               │
│    [ ] apache                                                                                 │
│    [ ] apache-ssl                                                                             │
│    [ ] apache-perl                                                                            │
│    [*] apache2                                                                                │
│                                                                                               │
│                                                                                               │
│                                            <了解>                                             │
│                                                                                               │
└───────────────────────────────────────────────────────────────────────────────────────────────┘
未選択パッケージ phpmyadmin を選択しています。
(データベースを読み込んでいます... 現在 19649 個のファイルとディレクトリがインストールされています。)
(.../phpmyadmin_4%3a2.6.2-3sarge1_all.deb から) phpmyadmin を展開しています...
phpmyadmin (2.6.2-3sarge1) を設定しています ...

Creating config file /etc/apache-perl/conf.d/phpmyadmin.conf with new version

Creating config file /etc/apache-ssl/conf.d/phpmyadmin.conf with new version

Creating config file /etc/apache/conf.d/phpmyadmin.conf with new version

Creating config file /etc/apache2/conf.d/phpmyadmin.conf with new version

Creating config file /etc/phpmyadmin/config.footer.inc.php with new version

Creating config file /etc/phpmyadmin/config.header.inc.php with new version

Creating config file /etc/phpmyadmin/config.inc.php with new version

Creating config file /etc/phpmyadmin/htaccess with new version

     ┌───────────────────────────┤ phpmyadmin を設定しています ├────────────────────────────┐
     │                                                                                      │
     │ apache2 の新規設定を有効にするためには再起動が必要なことに留意してください。手動で   │
     │ /etc/init.d/apache2 restart を実行することでも再起動ができます。                     │
     │                                                                                      │
     │ apache2 をすぐに再起動しますか?                                                      │
     │                                                                                      │
     │                        <はい>                          <いいえ>                      │
     │                                                                                      │
     └──────────────────────────────────────────────────────────────────────────────────────┘

公開位置の変更

/var/www/phpmyadmin となっているので、local で公開するよう変更する。

$ ls -al /var/www
:
drwxr-xr-x   4 root root  184 2006-04-02 18:25 local
lrwxrwxrwx   1 root root   21 2006-04-02 18:16 phpmyadmin -> /usr/share/phpmyadmin
$ sudo mv /var/www/phpmyadmin /var/www/local
/etc/apache2/conf.d$ sudo mv phpmyadmin.conf .phpmyadmin.conf

確認

http://192.168.0.224/local/phpmyadmin/

表示された。
ログインもできた。
おっけー

quickml

インストール

apt-get install quickml

$ sudo apt-get install quickml
パッケージリストを読みこんでいます... 完了
依存関係ツリーを作成しています... 完了
以下の特別パッケージがインストールされます:
  libruby1.8 ruby1.8
提案パッケージ:
  ruby1.8-examples rdoc1.8 ri1.8
以下のパッケージが新たにインストールされます:
  libruby1.8 quickml ruby1.8
アップグレード: 0 個、新規インストール: 3 個、削除: 0 個、保留: 2 個。
1535kB のアーカイブを取得する必要があります。
展開後に追加で 6013kB のディスク容量が消費されます。
続行しますか? [Y/n] Y
取得:1 ftp://ftp.jp.debian.org sarge/main libruby1.8 1.8.2-7sarge2 [1349kB]
取得:2 ftp://ftp.jp.debian.org sarge/main ruby1.8 1.8.2-7sarge2 [151kB]
取得:3 ftp://ftp.jp.debian.org sarge/main quickml 0.7-2 [35.0kB]
1535kB を 1s で取得しました (778kB/s)
未選択パッケージ libruby1.8 を選択しています。
(データベースを読み込んでいます... 現在 20446 個のファイルとディレクトリがインストールされています。)
(.../libruby1.8_1.8.2-7sarge2_i386.deb から) libruby1.8 を展開しています...
未選択パッケージ ruby1.8 を選択しています。
(.../ruby1.8_1.8.2-7sarge2_i386.deb から) ruby1.8 を展開しています...
未選択パッケージ quickml を選択しています。
(.../archives/quickml_0.7-2_all.deb から) quickml を展開しています...
libruby1.8 (1.8.2-7sarge2) を設定しています ...

ruby1.8 (1.8.2-7sarge2) を設定しています ...
quickml (0.7-2) を設定しています ...
Starting quickml: quickml.

今回の設定概要

通常のメールアドレスは「xxxx.dip.jp」
quickml用のメールアドレスは「mlxxxx.dip.jp」
とする。

                          postfix
                      +--------------+
xxxx.dip.jp ----->(25)|--->自分で処理|            quickml
                      |              |           +-------+
mlxxxx.dip.jp --->(25)|---->中継---->|--->(10025)|       |
                      |              |           |       |
<---------------------|<-------------|(25)<------|       |
                      |              |           |       |
                      +--------------+           +-------+

postfix設定

quickmlへの中継設定を行う。

/etc/postfix/main.cf

$ sudo vi /etc/postfix/main.cf
mydestination を変更
transport_maps,local_recipient_maps を追加

# See /usr/share/postfix/main.cf.dist for a commented, more complete version

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

myhostname = localhost.localdomain
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = mlxxxx.dip.jp, xxxx.dip.jp, localhost.localdomain, localhost.localdomain, localhost
relayhost =
mynetworks = 127.0.0.0/8
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

## add
smtpd_hello_required = yes
smtpd_hello_restrictions = reject_non_fqdn_hostname
disable_vrfy_command = yes

# add
transport_maps = hash:/etc/postfix/transport
local_recipient_maps =

/etc/postfix/transport

$ sudo vi /etc/postfix/transport

mlxxxx.dip.jp   smtp:localhost:10025

postmap /etc/postfix/transport

$ sudo postmap /etc/postfix/transport

quickml設定

/etc/quickml/quickmlrc

メールホスト名を確認

$ cat /etc/mailname
xxxx.dip.jp

$ sudo vi /etc/quickml/quickmlrc

# -*- mode: ruby -*-
mailname = File.open("/etc/mailname") do |fp| fp.read.chomp; end
Config = {
  :port => 10025,       # see /usr/share/doc/quickml/with-mta.rd
  :user => "list",
  :group => "list",
  :bind_address => "127.0.0.1",

  ###:smtp_host => mailname,
  :smtp_host => "localhost",
  ###:domain => mailname,
  :domain => "mlxxxx.dip.jp",
  :postmaster => "postmaster@#{mailname}",
  :info_url => "",

  :data_dir => '/var/lib/quickml',
  :pid_file => '/var/run/quickml/quickml.pid',
  :log_file => '/var/log/quickml/quickml-log',

  :verbose_mode => true,
  :max_members => 100,
  :max_mail_length => 100 * 1024,
  :ml_life_time => 86400 * 31,
  :ml_alert_time => 86400 * 30,
  :auto_unsubscribe_count => 5,

  :sweep_interval => 3600,
  :max_threads => 10,
  :timeout => 120,
  :use_qmail_verp => false,

  :confirm_ml_creation => false, # for confirming ML creation.

  ###:message_catalog => nil,  # for English messages
  #### :message_catalog => '/usr/share/quickml/messages.ja', # for Japanese messages
  :message_catalog => '/usr/share/quickml/messages.ja', # for Japanese messages
  #### :authorized_creators_list => '/etc/quickml/authorized_creators',
  :authorized_creators_list => '/etc/quickml/authorized_creators',
  # :distribute_address => "dist@#{mailname}",
  #### :report_address => "notify@#{mailname}"
  :report_address => "root@#{mailname}"
}

/etc/quickml/authorized_creators

$ sudo vi /etc/quickml/authorized_creators
にメーリングリスト作成を許すユーザのアドレスを正規表現で記述

各サービス再起動

$ sudo /etc/init.d/postfix reload
Reloading Postfix configuration...done.
$ 
$ sudo /etc/init.d/quickml reload
Usage: /etc/init.d/quickml {start|stop|restart|force-reload}
$ sudo /etc/init.d/quickml restart
Restarting quickml: quickml.
$ 

確認(2006-7-23追記)

test-ml という名前のメーリングリストを作ってみる。

from: test-ml@mlxxxx.dip.jp

でメールを送ると、test-mlメーリングリストが作成されること。

ユーザ追加は cc に書くだけ

from: test-ml@mlxxxx.dip.jp
cc: addusr@hoge.hoge,...

ユーザ削除は cc に削除ユーザのメアドを、本文の1行目に「退会」と書く。(2006-7-23)

覚書

場所メモ

/var/log/quickml/quickml-log ログ
/var/lib/quickml 各メーリングリスト定義

authorized_creators_list 定義時のエラー?

authorized_creators_list で定義したユーザ以外からメーリングリストを
作ろうとしても作れないはずなのでテストしてみたら、以下のログが出力
された。

xxxx2006-04-02T01:38:24: Connect: localhost.localdomain
xxxx2006-04-02T01:38:24: Command: EHLO localhost.localdomain
xxxx2006-04-02T01:38:24: Command: MAIL FROM:<hoge@hoge.hoge>
xxxx2006-04-02T01:38:24: Command: RCPT TO:<test98-ml@mlxxxx.dip.jp>
xxxx2006-04-02T01:38:24: Command: DATA
xxxx2006-04-02T01:38:25: MAIL FROM:<hoge@hoge.hoge>
xxxx2006-04-02T01:38:25: RCPT TO:<test98-ml@mlxxxx.dip.jp>
xxxx2006-04-02T01:38:25: From: hyasui@nifty.com
xxxx2006-04-02T01:38:25: Cc:
xxxx2006-04-02T01:38:25: bare From: hoge <hoge@hoge.hoge>
xxxx2006-04-02T01:38:25: bare Cc:
xxxx2006-04-02T01:38:25: Closed: localhost.localdomain
xxxx2006-04-02T01:38:25: Unknown Session Error: QuickML::UnauthorizedCreator: QuickML::UnauthorizedCreator
xxxx2006-04-02T01:38:25: /usr/lib/ruby/1.8/quickml/core.rb:108:in `initialize'/usr/lib/ruby/1.8/quickml/core.rb:1040:…

何かのエラーっぽくみえたので調べると、これが正常動作でした。
(rubyの例外処理で詳細ログが出力されているだけでした)

$ sudo cp -Rp /home/mebius_backup/20060402/var/www/xxx /var/www

$ sudo /etc/init.d/mysql stop
$ sudo cp -Rp /home/mebius_backup/20060402/var/lib/mysql/xxx_db /var/lib/mysql
$ sudo /etc/init.d/mysql start

$ sudo cp -Rp /home/mebius_backup/20060402/var/www/local/mc /var/www/local
$ sudo cp /home/mebius_backup/20060402/var/www/local/*.php /var/www/local

hdparm

インストール

apt-get install hdparm

$ sudo apt-get install hdparm
パッケージリストを読みこんでいます... 完了
依存関係ツリーを作成しています... 完了
提案パッケージ:
  apmd
以下のパッケージが新たにインストールされます:
  hdparm
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 2 個。
51.7kB のアーカイブを取得する必要があります。
展開後に追加で 197kB のディスク容量が消費されます。
取得:1 ftp://ftp.jp.debian.org sarge/main hdparm 6.1-2 [51.7kB]
51.7kB を 0s で取得しました (93.9kB/s)
未選択パッケージ hdparm を選択しています。
(データベースを読み込んでいます... 現在 21028 個のファイルとディレクトリがインストールされています。)
(.../archives/hdparm_6.1-2_i386.deb から) hdparm を展開しています...
hdparm (6.1-2) を設定しています ...

確認

HDDの情報を得る

$ sudo /sbin/hdparm -i /dev/hda

/dev/hda:

 Model=HITACHI_DK23CA-30, FwRev=00H0A0A3, SerialNo=12LK7A
 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
 RawCHS=16383/16/63, TrkSize=36477, SectSize=579, ECCbytes=4
 BuffType=DualPortCache, BuffSize=2048kB, MaxMultSect=16, MultSect=off
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=58605120
 IORDY=yes, tPIO={min:400,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio1 pio2 pio3 pio4
 DMA modes:  sdma0 sdma1 sdma2 mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5
 AdvancedPM=yes: mode=0x80 (128) WriteCache=enabled
 Drive conforms to: ATA/ATAPI-5 T13 1321D revision 3:

 * signifies the current active mode
$ sudo /sbin/hdparm -I /dev/hda

/dev/hda:

ATA device, with non-removable media
        Model Number:       HITACHI_DK23CA-30
        Serial Number:      12LK7A
        Firmware Revision:  00H0A0A3
Standards:
        Used: ATA/ATAPI-5 T13 1321D revision 3
        Supported: 5 4 3 2 & some of 6
Configuration:
        Logical         max     current
        cylinders       16383   16383
        heads           16      16
        sectors/track   63      63
        --
        CHS current addressable sectors:   16514064
        LBA    user addressable sectors:   58605120
        device size with M = 1024*1024:       28615 MBytes
        device size with M = 1000*1000:       30005 MBytes (30 GB)
Capabilities:
        LBA, IORDY(cannot be disabled)
        bytes avail on r/w long: 4      Queue depth: 1
        Standby timer values: spec'd by Vendor, no device specific minimum
        R/W multiple sector transfer: Max = 16  Current = ?
        Advanced power management level: 128 (0x80)
        DMA: sdma0 sdma1 sdma2 mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5
             Cycle time: min=120ns recommended=120ns
        PIO: pio0 pio1 pio2 pio3 pio4
             Cycle time: no flow control=400ns  IORDY flow control=120ns
Commands/features:
        Enabled Supported:
           *    READ BUFFER cmd
           *    WRITE BUFFER cmd
           *    Host Protected Area feature set
           *    Look-ahead
           *    Write cache
           *    Power Management feature set
                Security Mode feature set
           *    SMART feature set
                SET MAX security extension
                Address Offset Reserved Area Boot
           *    Advanced Power Management feature set
Security:
        Master password revision code = 65534
                supported
        not     enabled
        not     locked
                frozen
        not     expired: security count
                supported: enhanced erase
        36min for SECURITY ERASE UNIT. 36min for ENHANCED SECURITY ERASE UNIT.
HW reset results:
        CBLID- above Vih
        Device num = 0 determined by the jumper
Checksum: correct

パフォーマンス計測

$ sudo /sbin/hdparm -t /dev/hda

/dev/hda:
 Timing buffered disk reads:   62 MB in  3.03 seconds =  20.44 MB/sec

現在の設定値確認

$ sudo /sbin/hdparm /dev/hda

/dev/hda:
 multcount    =  0 (off)
 IO_support   =  1 (32-bit)
 unmaskirq    =  1 (on)
 using_dma    =  1 (on)
 keepsettings =  0 (off)
 readonly     =  0 (off)
 readahead    = 256 (on)
 geometry     = 58140/16/63, sectors = 58605120, start = 0

i/o 32bit、dma on
なので、このままでおっけー

最終更新時間:2006年10月01日 19時33分55秒