緑の草子
Vine linux 5.2 覚え書き
(2011/08/27)
デゴイチよく走る! > 緑の草子
←古い記事へ 新しい記事へ→


Vine・・・? 「何のこっちゃ」と思う方が多いと思いますが、これは「デゴイチよく走る!」などのwebサイトを置いているサーバー機で使用しているOSの名前です (Windows や Macintosh などと同類語)。

「デゴイチよく走る!」だけであれば、サーバーは1台で充分ですが、なかなかリソース喰いのサイトもサーバーを共有しているため、webサーバー等のメイン機1台の他に、データベース処理用2台、雑用1台の計4台という構成になっています。

これらはこれまで、すべて Vine linux3.2 というOSで統一していましたが、認識できる最大メモリ容量が4GB、しかも実用上は3.3GB程度しか使えないのが、最近ネックになってきました。

データベースの特に重い処理をさせている1台は、最大メモリの制約がいよいよ無視できない障壁になってきたため、OSはバージョン 4.x を飛び越えて、5.2 の世界に行くこととなりました。気になるメモリは、16GBまでは問題なく使えそう。

バージョン 3.2 のままでも、ナントカをナントカすれば4GB以上のメモリを使えるらしいのですが、私には難しそうでしたので、思い切って バージョン 5.2 の64bit版を入れた方が手っ取り早いという結論です。

当初は1台だけ 5.2 化するつもりでしたが、不意の停電で別の1台が落ちたり、経年と思われる想定外の不調などが発生し、何だかんだとサーバー機の建て直しが連発。いまさら 3.2 など入れるわけもなく、あれよあれよと 5.2 が台頭してきて、終いには1台だけ 3.2 を存置してもしょうがないだろうなどと、なし崩し的に結局は4台すべて 5.2 化が完了しました。

旧々店舗時代から、365日24時間(ほぼ)休まずフル回転していたサーバー群ですので、ちょうどガタが来る時分だったのでしょう。

そして、その Vine linux 5.2 のインストール「後」メモです。 結構「嵌った」箇所がありましたので、どなたかの参考になれば。 (といっても、google経由で見つけた、多くの方々のwebやblogに書かれていたことを引用して、私なりにまとめただけのものです)

Vine Linux 5.2 (64bit版)を、CUIで使うことを前提としています。

・ある程度は linux をいじったことがある人向けです。
・まったくの初心者に分かり易く解説できるほどの知識は私にはありません。
・ちなみに・・・8月6日に、Vine linux 6 の正式版がリリースされています。

−−−−−−−−−−−−−−−−−−−−−−−

3.2 のときは、いろいろと苦労した覚えがありましたが、5.2では、ほとんどのものは apt-get ですんなり入ってしまいます。

敢えて apt-get 以外の方法でインストールしたものは、     ・suexecに対応させるための apache     ・smtp-authに対応させるための postfix ぐらいなものです。

インストールが完了してすぐにやるべきはこの辺↓

apt-get -y update
apt-get -y upgrade
apt-get dist-upgrade

apt-get install telnet
apt-get install cmake
apt-get install zlib-devel
apt-get install openssl-devel
apt-get install cyrus-sasl
apt-get install cyrus-sasl-devel
apt-get install cyrus-sasl-md5
apt-get install cyrus-sasl-plain
apt-get install db4-devel

−−−−−−−−−−−−−−−−−−−−−−−
■文字コード
デフォルトの文字コードがUTF-8になっているため、EUCをデフォルトにしたいときは
/etc/sysconfig/i18n というファイルの1行目を
LANG="ja_JP.eucJP"
に書き換える

−−−−−−−−−−−−−−−−−−−−−−−
■ssh
デフォルトで Protocol 2 が有効になっているので、Protocol 1 を使うときは
/etc/ssh/sshd_config というファイルの
Protocol 2
という行をコメントアウトしてsshdを再起動

−−−−−−−−−−−−−−−−−−−−−−−
■wol (Wake on Lan) を有効にするには
BIOS側のwol設定も有効にしておいて
apt-get install ethtool

次に
/etc/sysconfig/network-scripts/ifcfg-eth0 (※)というファイルに
ETHTOOL_OPTS="wol g"
という行を追記して、マシン再起動
(※) NICが eth1 なら、当然 /etc/sysconfig/network-scripts/ifcfg-eth1 に追記

(注意) 追記して電源を落としただけでは、wolは有効になりません。一度、マシン自体の再起動が必要です。
再起動しなくても有効にする方法もありますが、sshからリモートで操作しているときは面倒なことになることがあります(sshが切断して繋がらなくなってしまう)ので、素直にマシンごと再起動したほうが無難

−−−−−−−−−−−−−−−−−−−−−−−
■wol (Wake on Lan) のパケットを送信する側
http://gsd.di.uminho.pt/jpo/software/wakeonlan/から
wakeonlan-0.41.tar.gz などをDLしてきて

tar zxvf wakeonlan-0.41.tar.gz
cd wakeonlan-0.41
cpansign -v (optional step; requires Module::Signature)
perl Makefile.PL
make
make install

−−−−−−−−−−−−−−−−−−−−−−−
■apache2 + suexec対応
http://httpd.apache.org/から
httpd-2.2.19.tar.gz などをDLしてきて

tar zxvf httpd-2.2.19.tar.gz
cd httpd-2.2.19

./configure \
--enable-rewrite \
--enable-rewrite=shared \
--enable-modules="suexec deflate so auth authn authz authnz" \
--enable-suexec \
--enable-deflate \
--enable-so \
--enable-auth \
--enable-authn \
--enable-authz \
--enable-authnz \
--with-suexec-caller=apache \
--with-suexec-userdir=home \
--with-suexec-docroot=/home

make
make install

■httpd の起動スクリプトは
/etc/init.d/httpd というファイルを作って、中身を↓にする
------------- ←罫線は書かない
#!/bin/sh

case "$1" in
start|stop|restart|status)

/usr/local/apache2/bin/apachectl $@
;;
esac
------------- ←罫線は書かない

起動権限を与えて、自動スタートをオンに
chmod 755 /etc/init.d/httpd
chkconfig httpd on

−−−−−−−−−−−−−−−−−−−−−−−
■mysql + DBI
これだけで全部入ってしまう↓
最近のバージョンでは、パーテショニングはデフォルトで有効
今までは苦労しただけに涙が出ます

apt-get -y install mysql-server
apt-get -y install mysql-client
apt-get -y install MySQL-shared
apt-get -y install MySQL-devel

apt-get -y install perl-DBI
apt-get -y install perl-DBD-MySQL
apt-get -y install perl-Digest-SHA1

なお、perlからmysqlを読もうとしたときに
socket '/var/lib/mysql/mysql.sock' (〜) at 〜
などというお馴染みのエラーが出たときは、
/etc/my.cnf というファイル (ファイルがないときは「mysql my.cnf」などの単語でググってください)の
socket = 〜
の行を、エラーメッセージに出ているパス、上の例なら
socket = /var/lib/mysql/mysql.sock
に書き換える

ちなみに、なんで本家 mysql の方の設定を変えなくてはいけないのか、本来は perl-DBI の設定を変えるべきではないか、と私は思いますし、実際、同じことを考えてチャレンジした人もいるようですが、苦労の割に実用上の意味がないため、ここは素直に /etc/my.cnf を曲げておいた方が良いと思います。

−−−−−−−−−−−−−−−−−−−−−−−
■Courier-IMAP
まずメール用ディレクトリを、各ユーザーに作っておく
mkdir -p /home/ユーザー/Maildir/{new,cur,tmp}
chown -R
ユーザー:ユーザー/home/ユーザー/Maildir

rpm -e qpopper
rpm -e imap
apt-get remove dovecot
apt-get -y install courier-imap

●ここ嵌まり場です↓注意●
/etc/pam.d/imap というファイルの中身を、次の3行にする(他の行はすべてコメントアウトする)
これを書き換えておかないと認証できません。Vine3.2では、IMAPなど何も考えなくても勝手に出来たのに、5.2では大ハマリ

auth include system-auth
account include system-auth
session include system-auth

自動起動の設定
/etc/rc.d/init.d/courier-imap start
/etc/rc.d/init.d/courier-authlib start
chkconfig courier-imap on
chkconfig courier-authlib on

−−−−−−−−−−−−−−−−−−−−−−−
■pop3
●ここも嵌まり場です↓注意●
/etc/pam.d/pop3 というファイルの中身を、次の3行にする(他の行はすべてコメントアウトする)
これを書き換えておかないと認証できません

auth include system-auth
account include system-auth
session include system-auth

−−−−−−−−−−−−−−−−−−−−−−−
■smtp-auth
/usr/lib64/sasl2/smtpd.conf というファイルに1行だけ書く↓
pwcheck_method: saslauthd

/etc/sysconfig/saslauthd というファイル
# MECH=pam←この行をコメントアウト
SASLAUTHD_AUTHMECH=pam
←この行を追記

自動起動の設定
/etc/rc.d/init.d/saslauthd start
/sbin/chkconfig saslauthd on
/sbin/chkconfig --list saslauthd

−−−−−−−−−−−−−−−−−−−−−−−
■postfix
http://mirror.postfix.jp/postfix-release/index.htmlから
postfix-2.8.3.tar.gz などをDLしてきて

tar zxvf postfix-2.8.3.tar.gz
cd postfix-2.8.3

make makefiles CCARGS="-DUSE_SASL_AUTH -I/usr/include/sasl -DUSE_CYRUS_SASL" AUXLIBS="-L/usr/lib64/sasl2 -lsasl2"
(途中、色々訊かれますが、とりあえず全部「Enter」で良い)
make
make install

/etc/postfix/main.cf にも色々と追記しなくてはいけませんが、奥が深すぎますので、ここでは省略します

587番ポートを使えるようにするには
(SMTP自体は、25番もそのまま使えます。25番と587番は共存可能)
/etc/postfix/master.cf というファイルの中で
submission inet n - n - - smtpd ←コメントアウトを外すだけ (この行がないときは追記する)

−−−−−−−−−−−−−−−−−−−−−−−
■spamassassin

apt-get -y install procmail
apt-get -y install spamassassin

procmail を設定してある前提で
/etc/postfix/main.cf に1行追加
mailbox_command = /usr/bin/procmail

−−−−−−−−−−−−−−−−−−−−−−−
■DNS関係(内向け)

apt-get install caching-nameserver

内向け named の設定はここでは省略

/etc/resolv.conf はマシンを再起動するたびにリセットされてしまうので、参照させたいDNSサーバーのIPアドレスを
/etc/sysconfig/network-scripts/ifcfg-eth0 に追記しておく↓

DNS1=127.0.0.1
DNS2=192.168.x.x
DNS3=192.168.x.x
search
domain←この行は書かなくても良い。自ドメインがある場合に書いておくと、LAN内はホスト名だけで名前解決できるようになる

−−−−−−−−−−−−−−−−−−−−−−−
■imagemagick + GD(QRコードを生成するのが目的)

apt-get -y install ImageMagick-devel
apt-get -y install ImageMagick-perl
apt-get -y install gd
apt-get -y install gd-devel
apt-get -y install perl-GD

これだけではQRコードは作れないので
まずcpan設定
なぜかデフォルトのダウンロード先が死んでいるので、ダウンロード先を変更( o conf 〜↓)しておく
cpan
(初めてcpanを起動すると色々訊かれますが、とりあえず全部「Enter」で良い)
o conf urllist push http://ftp.riken.jp/lang/CPAN/
o conf commit

install YAML
install GD::Barcode

全然関係ないけど、ついでに Time::Local なんかも入れておく
install Time::Local

−−−−−−−−−−−−−−−−−−−−−−−
■samba がうまく起動しない
smbというよりは、nmbがなぜか立ち上がらなくて、sambaが使えないことがあります。
chkconfig smb on
chkconfig nmb on
としておいても、smbは起動するが、なぜかnmbが自動起動しない。
(とりあえず、手動で nmb を起動させれば、すぐにsambaが使えます)
service nmb start

不審に思いつつも気持ちを切り替えて、他のライブラリ等をインストールするなどしてマシン再起動を繰り返していると、この不具合(?)は自然に(?)なくなります。(いや、本当はきちんとした原因があるんでしょうけど)

−−−−−−−−−−−−−−−−−−−−−−−
■samba でエラーが出まくる件
「エラーログにエラーが出まくる」ものの、samba自体は普通に使えているため、なかなか気付かないかも知れませんが。
別個に5つほどの要因があり、それぞれがエラーを吐きまくるため、手直ししないとエラーログが凄まじい状態になります。
エラーログはこれだ→ /var/log/messages

●IPv6関係
atchname: host name/address mismatch: ::ffff:192.168.x.x != 〜
Matchname failed on 〜 ::ffff:192.168.x.x

というエラー

Vine5.2ではデフォルトでIPv6が有効になっていて、これに関連したsambaのエラー(バグ?)。

解決策:IPv6を無効にする
/etc/modprobe.d/modprobe.conf に2行追加↓してマシン再起動
alias net-pf-10 off
alias ipv6 off
マシン自体を再起動させなくても反映させる方法もありますが、ネットワーク関係をリロードさせますので、sshからリモートで操作しているときは面倒なことになることがあります(sshが切断して繋がらなくなってしまう)。素直にマシンごと再起動したほうが無難

ちなみに「IPv6を使っているので、これを無効にするわけには行かない」という方は、named の方をIPv6対応にすればいい気がする、というかエラー自体が出ないのではないかと(あくまで推測)

●winbind関係
winbindd/idmap.c:smb_register_idmap_alloc(〜)
idmap_alloc module ldap already registered

というエラー

解決策(その場しのぎバージョン):winbindを止めてしまえ
service winbind stop
chkconfig off

●ネットワークプリンタ関係
printing/print_cups.c:cups_connect(〜)
Unable to connect to CUPS server localhost:〜

というエラー

/etc/samba/smb.conf というsambaの設定ファイルで、
load printers = noとしていても勝手にネットワークプリンタを探し回るらしい

解決策: /etc/samba/smb.conf の[global]セクションに↓の2行を追記
disable spoolss = yes
printing = bsd

ネットワークプリンタとは関係ないですが、ついでなので、ここで↓の2行も[global]セクションに追記しておく
smb ports = 139←ポート固定(具体的には 445番ポートを使わないようにする)
hostname lookups = No←逆引きを無効にする

smb & nmb 再起動
service smb restart
service nmb restart



←古い記事へ 新しい記事へ→

2017年
2016年
2015年
2014年
2013年
2012年
2011年11月19日 電話機が壊れた
2011年08月27日 Vine linux 5.2 覚え書き
2011年08月04日 「復興くじ」抽選前に結果掲載
2011年08月03日 予定納税 その後
2011年07月03日 「予定納税」を拒否してみる
2011年06月30日 1Gbpsがやってくる
2011年06月25日 全国80万人の山田さん!山田町救いませんか
2011年06月19日 新幹線にデッドセクション?
2011年05月31日 節電目標達成の家庭に景品
2010年
2009年
2008年

デゴイチよく走る! > 緑の草子
←古い記事へ 新しい記事へ→