投稿

2月, 2007の投稿を表示しています

Debian-sargeでWebDAV、大事な追記

昨日のエントリーに大事な追記をしました。
apache2には存在しないap_pallocを呼び出している部分があるので、そこをapr_pallocに修正する必要があります。mod_dav.c、mod_encoding.c共に必要です。

エディタで検索して該当箇所を探して修正しましょう。

Debian-sargeでWebDAV、Macの濁点問題を解消する

最近CentOSばかりいじってましたが、WebDAV用途に自宅で公開サーバーにしているのはDebianなのです。CentOSならすんなりいくのかもしれませんが、Debianではなかなかに手こずった作業なので、ここに記しておきます。まずは、各種パッチ等を制作された皆さんに、感謝!


MacOSXで採用されているUnicodeがマイナーな規格らしく、通常でセットアップしたWebDAVでは(それでも日本語が通りようにするには手間がかかるのですが)Macからコピーしたファイルの濁点などが、Winowsから見た場合に化けてしまう問題があります。


化けてもアクセスは出来るようなので気にせずに使っていたのですが、せっかくですので対処してみました。


簡単に説明すると、mod_davにパッチを当て、mod_encoding.cを差し替えます。パッチと差し替えようファイルはこちら。メーリングリンスとアーカイブページだと思います。検証もそれほどされた形跡はないのですが、結論としてはOKでした。


まずはmod_dav。ソースパッケージをタウンロードして、パッチを当て、リビルドします。
適当な作業ディレクトリを作って、
#apt-get source apache2
今ですとapache2-2.0.54です。同じ名前のディレクトリに中身が展開されてます。上記のパッチをdebian/patchesに放り込めば終了かと思いきや、いまくパッチが当たりません。しかたありませんからupstream/tarballsにあるhttpd-2.0.54.tar.gzをtar xvzfで展開し、patch -p1 < パッチファイル名 してパッチを当てます。
パッチを当てたらtar cvfで丸めて、gzipしてhttpd-2.0.54.tar.gzを作り直します。以前ものは消すかmvしておきます。(追記:パッチを当てたmod_dav.cの中に、一カ所だけap_pallocという文字列があるので、そこをapr_pallocに修正してからtarで丸めます)
そしたらapache2-2.0.54ディレクトリに戻って、
#dpkg-buildpackage -uc -b
して出来上がりです。
たくさんdebパッケージが出来ますので、必要なものをdpkg -i します。
次はmod_encoding.c。これがまたややこしい。
debianに…

起動スクリプト、ありました

[システム設定]-[サーバ設定-[サービス]でランラベルごとのサービス設定が出来るわけですが、netatalkをインストール直後に確認したら確かになかったはずの「atalk」の文字が、先ほど確認したら、ちゃんとありました・・・

昨日もご紹介したRPMを提供してくださってるHATさんからトラックバックをいただいてしまいまして、ほんとに無かったか心配になりドキドキしながら確認したらこの始末。申し訳ありません。恥ずかしい・・・(RedHat系での起動スクリプト


別のサーバーで(こちらもCentOS4.4)同じRPMをインストールして試してみたところ、こちらはすぐにサービス設定から確認できました。
この前のときに直接/etc/init.dを確認してれば良かったんですが、用事に追われていて後回しにしたので、結局こんなことに。恥ずかしい・・・

specファイルをいじったときに余分なとこまでいじったかなぁと思っていたのですが、そうでもなかったようです。


とにかくまあ、まったくもんだいなかったということで、チャンチャン。

HATさん、ご指摘ありがとうございました。幸いにも、私の勘違いでした。サービス設定をインストール前から開いていて、開き直してなかったのかもしれません。

CentOSでnetatalk

多くの人にとっては用のないことだと思いますが(思いたくないですが)、CentOSにお手軽にnetatalkを入れる方法。

ちなみにnetatalkとは、Macとファイル共有するときに使うソフトで、Sambaと似たようなものです。SambaだけでもMacと共有できるわけですが、netatalkを使った方が何かとスマートです。

設定方法の詳細はゴーゴー幕之介さんのところの「netatalk 2.x and samba 3.x」にあります。とても役に立ちます。

で、CentOSでの使い方。公式にはRPMが提供されていませんので、何らかの手段で手に入れることになります。パッチ当てるのがめんどくさいのでCVSから入手してコンパイルしたら途中でエラーでしたので、私にはRPMを探すしか手がなかったのです。
コンパイルもかなり単純な部類にはいるはずなのですがねぇ。ひとたびエラーが出てしまうと私には良くわからんのです。

前述のページのリンクにNetatalk&Samba RPM配布所というのがあります。こちらでFedoraCore用のRPMが配布されています。そしてSRPMも。かなりのハイペースで更新されてまして、常に最新のものが手に入る状況です。

RPMをそのまま入れようとしたら、諸々バージョンが低いと怒られまして、さすがFedoraCore、CentOSはあっという間に置き去りです。そんなときでもSRPMがあるので大丈夫。

ダウンロードしてrpm -iでインストールすると、/usr/src/redhat以下にソースファイルが格納されます。それをそのままrpmbuildしてもいいのですが、cupsなど私には必要ない機能まで有効にして状態なので、specファイルを編集します。/usr/src/redhat/SPECSにあります。
configureで指定するものもこの中で指定してますから、中身をのぞいて、自分の環境に合うように適当に書き換えます。私はcupsを削り、さらにenable-srvlocも削りました。これでopenslpも要らなくなります。これがないとFinderから接続するのにIPアドレス直打ちしか手が無くなりますが、それでいいので。
上の方にある必要なパッケージのリストから、cups用の関連パッケージとopenslp、openslp-develを取り除いて、できあがり。
rpmb…

今日もCentOSメモ

Linux上での漢字変換に慣れません。。。ミスタイプばかり。仮名入力にするにはどうすれば?

slapd.confに必要なSamba用スキーマファイルは/usr/share/doc/samba-3.0.10/LDAP/samba.schemaにあります。私は/etc/openldap/shemasにコピーするのが面倒だったので、直接そこを指定しました。

smbldap-toolsはusr/share/doc/samba-3.0.10/LDAP/smbldap-tools下にあります。これはさすがに面倒とも言ってられないので/usr//local/sbinに全てコピー。.plのものはchmod 755。.pmはchmod 600。

パッケージにperl-Authen-SASLがないので検索してインストール。
しようとしたらperl-GSSAPIが無いと怒られたのでそれも検索してインストール。RHEL4用のものでOK。

あとはミラクルリナックスサンのサイトを参考に注意ぶかくOpenLDAPとSambaの設定をすれば、動くはず。標準で既に希望の値に設定されているものを明示的に設定することは避けて、.confをスッキリさせた方が間違いにきずづきやすいです。

smbldap-populate.plでは、ホームディレクトリと移動プロファイル用の設定が必須なので、つかわない場合もとりあえず設定しておくこと。

サーバー構築メモ

慣れないOSでSamba+OpenLDAPなファイルサーバーを構築していくメモです。
CentOS4.4でいってみたいと思います。
こういう用途にはwikiが向いてるんだろうなと思いつつ。

up2dateのリポジトリ設定ファイルは、/etc/sysconfig/rhn/sources

今日は以上。