Category Archives: サーバー管理

WordPressの管理画面をLeopard風に

Leopardぽいスキンを探しているときに見つけたものです。
おもしろそうだったので入れてみました。
「LepardAdmin」をインストールすると管理画面が以下のような感じになります。

LeopardAdmin導入例

ダウンロードはこちらの公式サイトから。
Teddy Hwang » Leopard Admin

インストールしてプラグインを有効にするだけです。
これをみるとつくづくMacOSX Serverを導入したいと思うわけです…

メールサーバーの構築(3)

なかなかバーチャルユーザーでのメールサーバーがうまくいかないので、まずはLinuxユーザーでのメール送受信をしてみました。(今回は成功しています。)

構成はPostfix(とりあえずSSLなしのSMTP) + SASL2によるSMTP-Auth + OP25B対策のためISP(eo)のサーバーを経由 + Courier(IMAP,POP) よってMaildir形式です。いたって標準的な構成です。
外部に解放するポートは
送信に必須(25,587)
WANからSSLなしでメールチェックをする場合に必要(110,143)
WANからSSLありでメールチェックをする場合に必要(995,993)
です。

Read more …

AFP経由のrsync

検証というほど大それたものではありませんが。
教えて頂いたCJKパッチを当てたnetatalkをインストール済みのDebianにLeopardからAFP経由でrsyncを使ってiTunesフォルダをバックアップしてみました。

SSH経由でバックアップしたときはファイル名によってMac側から開けないファイルがあったのですが、そのような現象はありませんでした。

これで安心してiTunesのバックアップがとれます。
CJKパッチやCoreFoundationによるdecompose/precomposeの変換についてもご丁寧に教えでくださったHATさんには自サイト上で申し訳ありませんが、お礼申し上げます。

メールサーバーの構築(2)

すいません。以前書いたメールサーバーの設定ですが書くのを忘れていましたが殆ど自分のためのメモです。
なんかいろいろいじってたらうまくいってやり方は忘れてしまったということがよくあるので…

実のところ全然できていません。一時メールが受信できるようになったのに次の瞬間ユーザー名とパスワードが通らなかったり。SMTPは全然だめだし。OP25Bが施されているプロバイダ(K-OPTI.COM)なので25番ポートでの標準的な送信ができないし。

以前書いた諸事情で30日までには成功させないといけません。そのときにはちゃんとまとめる予定です。自分のためにも…

rsyncの件ですが近日中にパッチをあてたAFP経由でrsyncしてみます。なにせiTunesライブラリのバックアップで80G弱必要なところにiTunesバックアップ用に準備したハードディスクが80Gで。いったん全部消さないといけないなと思っています。一からした方が気分がいいので。
HATさんにはいつもご丁寧に教えていただき大変勉強になっております。本当にありがとうございます。

今日21日は昼頃から学校で単位認定会議です。高三になれるかどうかが決まる日なのですが、大丈夫であることを祈ります。2回も入院したり退院後もときどき休んだりして出席日数が….なので。欠課のところはどうなるのか…英語も…

netatalkをCJKパッチ付きでインストール

HATさんに当サイトへトラックバックしていただいた「Netatalk 2.0.3 with SSL and CJK on Debian 4.0」を実践してみました。
理由はDebian上のファイルをAFP経由Macからでファイルの一覧は正常に取得できるのに特定のファイルが開こうとマウスで選択した瞬間Finderから消失するという現象があったので、CJKパッチを当てたら直るかなぁという希望があったのです。(同じファイルでもファイル名を変更すると正常にAFP経由でも開けるので。)

こちらのページでは大変丁寧に順番が記載されているので簡単にインストールすることができました。

<font color="#0000FF">~/</font>$ cd /tmp/
<font color="#0000FF">/tmp</font>$ mkdir netatalkbuild
<font color="#0000FF">/tmp</font>$ cd netatalkbuild/
<font color="#0000FF">/tmp/netatalkbuild</font>$ export LANG=ja_JP.UTF-8
<font color="#0000FF">/tmp/netatalkbuild</font>$ echo $LANG
ja_JP.UTF-8
<font color="#0000FF">/tmp/netatalkbuild</font>$ sudo apt-get install fakeroot
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
fakeroot はすでに最新バージョンです。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 71 個。
<font color="#0000FF">/tmp/netatalkbuild</font>$ sudo apt-get install libssl-dev cracklib2-dev
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
libssl-dev はすでに最新バージョンです。
cracklib2-dev はすでに最新バージョンです。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 71 個。
<font color="#0000FF">/tmp/netatalkbuild</font>$ apt-get source netatalk
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
1947kB のソースアーカイブを取得する必要があります。
取得:1 http://ftp.jp.debian.org etch/main netatalk 2.0.3-4 (dsc) [802B]
取得:2 http://ftp.jp.debian.org etch/main netatalk 2.0.3-4 (tar) [1921kB]
取得:3 http://ftp.jp.debian.org etch/main netatalk 2.0.3-4 (diff) [26.1kB]
1947kB を 1s で取得しました (1492kB/s)
gpg: Signature made 2006年01月14日 17時30分38秒 JST using DSA key ID 496A1827
gpg: Can't check signature: public key not found
dpkg-source: extracting netatalk in netatalk-2.0.3
dpkg-source: unpacking netatalk_2.0.3.orig.tar.gz
dpkg-source: applying ./netatalk_2.0.3-4.diff.gz
<font color="#0000FF">/tmp/netatalkbuild</font>$ sudo apt-get build-dep netatalk
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 71 個。
<font color="#0000FF">/tmp/netatalkbuild</font>$ wget http://www003.upp.so-net.ne.jp/hat/files/netatalk-2.0.3-cjk-4.patch.gz
--22:54:47--  http://www003.upp.so-net.ne.jp/hat/files/netatalk-2.0.3-cjk-4.patch.gz
           =&gt; `netatalk-2.0.3-cjk-4.patch.gz'
www003.upp.so-net.ne.jp をDNSに問いあわせています... 210.132.253.3
www003.upp.so-net.ne.jp|210.132.253.3|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 32,916 (32K) 

100%[====================================&gt;] 32,916        --.--K/s

22:54:47 (1.00 MB/s) - `netatalk-2.0.3-cjk-4.patch.gz' を保存しました [32916/32916]

<font color="#0000FF">/tmp/netatalkbuild</font>$ zcat netatalk-2.0.3-cjk-4.patch.gz &gt; netatalk-2.0.3/debian/patches/999-netatalk-2.0.3-cjk-4.diff
<font color="#0000FF">/tmp/netatalkbuild</font>$ DEB_BUILD_OPTIONS="ssl debuild"
<font color="#0000FF">/tmp/netatalkbuild</font>$ export DEB_BUILD_OPTIONS
ssl debuild
<font color="#0000FF">/tmp/netatalkbuild</font>$ cd netatalk-2.0.3
<font color="#0000FF">/tmp/netatalkbuild/netatalk-2.0.3</font>$ dpkg-buildpackage -rfakeroot

コンパイル中......

<font color="#0000FF">/tmp/netatalkbuild/netatalk-2.0.3</font>$ sudo dpkg -r netatalk
(データベースを読み込んでいます ... 現在 105050 個のファイルとディレクトリがインストールされています。)
netatalk を削除しています ...
Stopping AppleTalk Daemons: afpd papd timelord atalkd cnid_metad.
<font color="#0000FF">/tmp/netatalkbuild/netatalk-2.0.3</font>$ cd ../
<font color="#0000FF">/tmp/netatalkbuild</font>$ sudo dpkg -i netatalk_2.0.3-4_i386.deb
未選択パッケージ netatalk を選択しています。
(データベースを読み込んでいます ... 現在 104899 個のファイルとディレクトリがインストールされています。)
(netatalk_2.0.3-4_i386.deb から) netatalk を展開しています...
netatalk (2.0.3-4) を設定しています ...

設定ファイル `/etc/default/netatalk'
 ==&gt; これはインストールしてから (あなたかスクリプトによって) 変更されています。
 ==&gt; パッケージ配布元が更新版を提供しています。
   どうしますか? 以下の選択肢があります:
    Y か I  : パッケージメンテナのバージョンをインストールする
    N か O  : 現在インストールされている自分のバージョンを残す
      D     : 両バージョンの差異を表示する
      Z     : この処理をバックグラウンドにし、状況を確認する
 デフォルトでは現在使っている自分のバージョンを残します。
*** netatalk (Y/I/N/O/D/Z) [デフォルト=N] ? <font color="#ff0000">Y</font>
設定ファイル /etc/default/netatalk を新規にインストールしています ...
設定ファイル /etc/pam.d/netatalk を新規にインストールしています ...
Starting AppleTalk services (this will take a while):  atalkd papd afpd cnid_metad.

インストールは以上です。以下は設定ファイルの変更。

「/etc/default/netatalk」の

export ATALK_MAC_CHARSET
export ATALK_UNIX_CHARSET</code>

export ATALK_MAC_CHARSET<font color="#ff0000">='MAC_JAPANESE'</font>
export ATALK_UNIX_CHARSET<font color="#ff0000">='UTF8'</font></code>

に変更。(UTF8は付け加えました。)

「/etc/netatalk/afpd.conf」の最後の行に

- -uamlist uams_dhx.so,uams_clrtxt.so -maccodepage MAC_JAPANESE</code>

を追記。

「/etc/netatalk/AppleVolumes.default」のコメント群の最後

# By default all users have access to their home directories.</code>

の下に

:DEFAULT: options:upriv,usedots cnidscheme:dbd maccharset:MAC_JAPANESE</code>

を追加。

念のためavahi-daemonの確認。
「/etc/avahi/services/afpd.service」を以下の内容で作成。

&lt;?xml version="1.0" standalone='no'?&gt;
&lt;!DOCTYPE service-group SYSTEM "avahi-service.dtd"&gt;
&lt;service-group&gt;
        &lt;name replace-wildcards="yes"&gt;%h&lt;/name&gt;
        &lt;service&gt;
                &lt;type&gt;_afpovertcp._tcp&lt;/type&gt;
                &lt;port&gt;548&lt;/port&gt;
        &lt;/service&gt;
&lt;/service-group&gt;</code>

でavahi-daemonの再起動。

$ sudo /etc/init.d/avahi-daemon restart</code>

さて、最後に緊張のCJKパッチの確認とSSLが有効になっているかの確認をコマンドを2つ実行して行います。
赤字の部分が確認事項です。
/tmp/netatalkbuild$ /usr/sbin/afpd -V
afpd 2.0.3+cjk4 – Apple Filing Protocol (AFP) daemon of Netatalk

This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version. Please see the file COPYING for further information and details.

afpd has been compiled with support for these features:

AFP3.1 support: Yes
Transport layers: TCP/IP DDP
CNID backends: cdb dbd last
SLP support: Yes
TCP wrappers support: Yes
Quota support: Yes
Admin group support: Yes
Valid shell checks: Yes
cracklib support: Yes
Dropbox kludge: No
Force volume uid/gid: No

afpd.conf: /etc/netatalk/afpd.conf
AppleVolumes.system: /etc/netatalk/AppleVolumes.system
AppleVolumes.default: /etc/netatalk/AppleVolumes.default
UAM search path: /usr/lib/netatalk/

/tmp/netatalkbuild$ /usr/bin/asip-status.pl localhost
AFP reply from localhost:548
Flags: 1 Cmd: 3 ID: 57005
Reply: DSIGetStatus
Request ID: 57005
Machine type: Netatalk
AFP versions: AFPVersion 1.1,AFPVersion 2.0,AFPVersion 2.1,AFP2.2,AFPX03,AFP3.1
UAMs: Cleartxt Passwrd,DHCAST128
Flags: SupportsCopyFile,SupportsServerMessages,SupportsServerSignature,SupportsTCP/IP,SupportsSrvrNotifications,SupportsOpenDirectory,SupportsUTF8Servername,SupportsSuperClient
Server name: Debian-Server
Signature:
** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** …………….

Network address: ***.***.*.** (TCP/IP address)
Network address: *****.*** (ddp address)
UTF8 Servername: Debian-Server

これでOKです。Leopardからも接続確認できました。
しかし、残念ながら最初に書いたような現象は改善されず。
rsync経由でMacからSSHで送ったファイルの一部が駄目なようです。
iTunesのバックアップをSSH経由でやっているのですが今度SSHではなくAFPでマウントして同期してみようと思います。

メールサーバーの構築(1)

メールサーバーの構築をしてみようと思う。
きっかけは友達にメールサーバーの設置方法を教えてほしいと言われたからだ。(なんと単純な…)
まずは実験ということでMac上のParallels DesktopにDebianをクリーンインストールし、一から設置しようと思う。(成功してません)

目標:Postfix + PostfixAdmin + MySQL + Courier-IMAP でOP25B対策付きのPOP/IMAP 仮想ユーザー環境

クリーンインストールからの実験なのでSQLのインストールも一からする。ということはApacheとかも…
ということでめんどくさいのでセキュリティと保守性は無視していきます。

とりあえず本格的な設定に入るまで…(Courier-IMAPにはまだ手をつけてません)
Read more …

iTunes用のサーバー設定 第一弾(AFPで)

もともとMacBook Proの方にはハードディスクの都合でiTunesのライブラリは入っていないのですが、自宅でLAN経由でいいのでMacBook Proでもデスクトップに入っているiTunesライブラリを聴きたいということで設定してみます。
で、メインのMacはサーバーではないので時々電源が切ってあったりするので、そこからバックアップ先となっているサーバー機からライブラリを読むことにします。

考えた方法は2つありました。
一つは簡単にAFPでiTunesフォルダを共有しノートの「~/Music」フォルダに「iTunes」フォルダのシンボリックリンクを作成する。
もう一つはDAAPサーバーを立ててノートから共有に接続する方法です。
ただしこちらの方法はアルバムアートワークも表示されませんし歌詞も共有されませんし、ビデオは共有の対象外です。

で、まずは「AFP」での共有から。(実行は自己責任で。データの破損などいかなる損害も補償しかねます。)
こちらの方法の欠点は起動時に手動でマウントする必要があることです。
それと、曲のタイトルなどの変更はしないように注意すること。
これは以前の「netatalk OpenSSL(LeopardでAFP)設定編」の時と同じように新しく共有ポイントを設定します。
このときに読み込みのみを許可するようにします。(「iTunes」フォルダ直下のファイル群は書き込み権限がないと起動できませんでした。すいません。訂正させていただきます。)
「/etc/netatalk/AppleVolumes.default」に

/mnt/music "Music" allow:hogehoge


を追加します。(これは例です。/mnt/musicフォルダを共有します。)

でnetatalkを再起動。
ここからはMacの「ターミナル」で操作をします。Musicフォルダはマウントしてあるとします。
iTunesは使用していないことを前提とします(iTunesフォルダを削除するため)。
iTunesに曲が入っている場合は移動しておきます。移動方法は割愛します。

$ rm -r ~/Music/iTunes                //既存のiTunesフォルダを削除します。
$ ln -s /Volumes/Music/iTunes ~/Music/

以上。あとはiTunesを起動するだけ。

rsyncによるバックアップ

まずはインストールします。

<code>
$ su
# apt-get install rsync
</code>

設定などは特にありません。コマンドラインの引数のみです。

例えば、「/home/hogehoge」フォルダを「/mnt/backupdisk」に同期コピーする場合は、

<code># rsync -av --delete /home/hogehoge /mnt/backupdisk</code>

とするだけです。
「-a」と「–delete」オプションをつけることでフォルダ構造を同じにすることができます。
つまり、元フォルダで削除されたものはコピー先でも削除され、追加されたファイルだけコピー先にコピーされます。「-v」は実行中のファイルを表示するオプションです。

「cron」で自動的にやってもいいのですが、ファイルを更新したときに実行するスクリプトを作成して手動でスクリプトを実行することにします。(経過を確認しないと個人的に心配なので…)

backup

<code>
#!/bin/sh
year=`date +%Y`
month=`date +%m`
day=`date +%d`
time=`date +%T`
echo "Backup($year/$month/$day $time)"
rsync -av --delete /home/hogehoge /mnt/backupdisk
</code>

今回参考にさせていただいたサイトは「rsyncで自動バックアップ」です。
こちらにはオプションについて詳しく書かれているので参照してください。

Debianにハードディスクを増設

ついにサーバーに160GBのハードディスクを追加しました。

物理的には単純にIDEのプライマリーのスレーブに接続しただけです。
以下はフォーマットとマウントについてメモします。

まずは接続されているか「dmesg」で確認します。

hdb: Maxtor 6Y160P0, ATA DISK drive

とあればOK。たまたま元々つけていたHDDと同じ型番でした。もちろん型番などは違う場合もありますが。
IDE 0:0ならhda
IDE 0:1ならhdb
IDE 1:0ならhdc
IDE 1:1ならhdd
です。
Read more …

eAcceleratorの導入

複数あるPHPのアクセラレータの一つである「eAccelerator」を導入してみました。

前回にPHPを5にバージョンアップしたのでPHP5にインストールすることになりますがPHP4でもあまり相違点はないと思われます。

コンパイル環境がない場合はまずそれらをインストール

<code>
$sudo aptitude install libtool
$sudo aptitude install libguile-dev
$sudo aptitude install automake
$sudo aptitude install g++
</code>

まずは「eAccelerator」のソースのダウンロードからインストールまで、

<code>
$ cd /tmp
$ wget http://nchc.dl.sourceforge.net/sourceforge/eaccelerator/eaccelerator-0.9.5.2.tar.bz2
$ tar jxf eaccelerator-0.9.5.2.tar.bz2
$ su
# cd eaccelerator-0.9.5.2
# export PHP_PREFIX="/usr/"
# $PHP_PREFIX/bin/phpize
# ./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config
# make
# make install
</code>

とすると
Read more …