WebDAVサーバ

Mac Mini にインストールしたCentOS上にWebDAVサーバを構築します。

WebDAVサーバは、FAX受信書類をPDFにして転送し、後でブラウザから確認することができるようにするために必要になりました。

Faxは受信時にプリントアウトされますが、この紙をなくすと送信元に再送信をお願いしなければなりません。

でも、夜中になくしたことがわかると、先方に頼むこともできません。

そんな時でも自動的に受信データがPDFファイルとして保存されていれば、印刷し直せば問題解決!です。

今までは、受信Faxを再度コピーして「Fax受信書類」としてファイリングしていました(めんどクサ)。

しかも、Fax&コピー機&プリンタを兼ねるうちの複合機(リース)は、紙に印刷すると1枚につき△円が加算されるカウンター料金制です。

宣伝Faxも自動的にプリントアウトされてしまうので当然課金されます。宣伝Faxは送信元番号で判定し、プリントアウトしないでWebDAVサーバ上に保存だけしておきたいです。

−−という訳でWebDAVです。

構築環境

Apacheインストール


# yum -y install httpd httpd-devel

Apache設定ファイル編集


# vi /etc/httpd/conf/httpd.conf
LoadModule headers_module modules/mod_headers.so
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so

User my_name
Group my_name

ServerName 192.168.10.110:80

DocumentRoot "/home/my_name/www"


Options Indexes FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 192.168.10.0/24



Header add MS-Author-Via "DAV"


DAVLockDB /home/my_name/lock/lockdb

DAV On
Options Indexes

ScriptAlias /cgi-bin/ "/home/my_name/cgi-bin/"


AllowOverride None
Options None
Order allow,deny
Allow from all

AddHandler cgi-script .cgi .pl

必要なディレクトリを作成


# mkdir /home/my_name/www
# chown my_name. /home/my_name/www

# mkdir /home/my_name/www/fax
# chown my_name. /home/my_name/www/fax

# mkdir /home/my_name/www/fax/ads
# chown my_name. /home/my_name/www/fax/ads

# mkdir /home/my_name/lock
# chown my_name. /home/my_name/lock

# service httpd start

LAN内の他のPCから、http://192.168.10.110/fax/ にアクセスできればOK。

Fax側の設定

これは各機種によって設定方法が違うのであまり参考にならないと思います。

  1. 宛先登録(その1)
    • 名称: FaxBox
    • プロトコルWebDAV
    • ホスト名: http://192.168.10.110
    • フォルダーへのパス: /fax
    • ユーザー名: my_name
  2. 宛先登録(その2)
    • 名称: Fax(広告)
    • プロトコルWebDAV
    • ホスト名: http://192.168.10.110
    • フォルダーへのパス: /fax/ads
    • ユーザー名: my_name
  3. 転送設定(その1)
    • 転送条件: 条件なし転送
    • 転送先: FaxBox
    • ファイル名: fax
    • ファイル形式: PDF
    • 「受信ファイルをプリントする」にチェック
  4. 転送設定(その2)
    • 転送条件: 相手先番号が******と等しい(宣伝Faxの相手先番号)
    • 転送先: Fax(広告)
    • ファイル名: ads
    • ファイル形式: PDF
    • 「受信ファイルをプリントする」のチェックを外す

転送設定(その1)は宣伝でない(と思われる)通常のFax、転送設定(その2)は宣伝(と思われる)Fax。
実際には転送設定(その2)が複数登録されています。
どちらもPDF保存はされますが、宣伝Faxはプリントされず、通常Faxはプリントされます。

相手先番号が「非通知」の時って転送条件をどう指定したら良いんだろう?
(「相手先番号が非通知と等しい」という転送条件を指定したらエラーになって設定できなかった)

mod_encodingインストール

このままだと日本語のファイル名・ディレクトリ名が文字化けするのでmod_encodingをインストールします。

http://sourceforge.jp/projects/webdav/downloads/13902/mod_encoding-20021209.tar.gz
http://sourceforge.jp/projects/webdav/downloads/13905/mod_encoding.c.apache2.20040616

上記2ファイルをダウンロードしてFTP等でサーバ上の同じディレクトリに設置しておきます。
wgetではうまくダウンロードできなかった)


# tar zxf mod_encoding-20021209.tar.gz
# mv mod_encoding.c.apache2.20040616 mod_encoding-20021209/mod_encoding.c
# cd mod_encoding-20021209/lib
# ./configure
# make
# make install

# vi /etc/ld.so.conf
/usr/local/lib
# ldconfig

# cd ../

▽Apache2.2用のパッチを当てる
# wget http://www.aconus.com/~oyaji/faq/mod_encoding.c-apache2.2-20060520.patch
# patch -p0 < mod_encoding.c-apache2.2-20060520.patch
patching file mod_encoding.c

# ./configure --with-apxs=/usr/sbin/apxs --with-iconv-hook=/usr/local/include
# vi Makefile ← Makefile編集(centossrv.comを参考にした)

                                                                                                    • -

LIBS = -liconv_hook

LIBS = -L/usr/local/lib -liconv_hook (← 変更)

install-exec-local:
$(APXS) -i mod_encoding.so

$(APXS) -i -a -n encoding mod_encoding.la (← 変更)

                                                                                                    • -

# make

make 時に warning がたくさんでる。エラーでなければ下記のとおり進めて大丈夫である。
http://www.aconus.com/~oyaji/faq/apache_encoding.htm より)

# make install

# vi /etc/httpd/conf/httpd.conf
LoadModule encoding_module /usr/lib/httpd/modules/mod_encoding.so
(↑ 自動的に追加されていた)

# vi /etc/httpd/conf.d/mod_encoding.conf


EncodingEngine on
NormalizeUsername on
SetServerEncoding UTF-8
DefaultClientEncoding JA-AUTO-SJIS-MS CP932
AddClientEncoding "Microsoft-WebDAV*" CP932


# service httpd reload

※JA-AUTO-SJIS-MS: 自動判定機能を提供する特殊なコンバータを指定するもので、UTF-8/JIS/MSSJIS/SJIS/EUC-JP を処理することができる

WindowsXPエクスプローラでアクセスすると、エージェントは、

Microsoft-WebDAV-MiniRedir/5.1.2600

でした。
FAX&コピー&プリンタ複合機が受信Faxを転送してくる時のエージェントは、

UniversalSend_WebDAV/1.0

FAXからの転送ファイル名には、アルファベットと数字しか使われないのでmod_encoding.confには、Microsoft-WebDAVだけを記述しました。

ディレクトリ一覧で文字化け

しかし、これで日本語ファイル名・ディレクトリ名OKかと思いきや、http://192.168.10.110/fax/ にアクセスしてディレクトリ内のファイル一覧を表示させると、文字エンコーディングがISO-8859-1になってしまい、日本語ディレクトリ名・ファイル名が化けてしまいます。

調べてみると、httpd.confに以下を記述することで文字化けしなくなるとのこと。
http://d.hatena.ne.jp/woremacx/20080227/1204073532

IndexOptions Charset=UTF-8


# vi /etc/httpd/conf/httpd.conf
IndexOptions Charset=UTF-8 FancyIndexing VersionSort NameWidth=* HTMLTable

# service httpd reload

再び、http://192.168.10.110/fax/にアクセスすると、

おおっ、文字化けしなくなった!!

次回はディレクトリ内ファイルの整理とFax受信時のメール送信について。。の予定。