「デゴイチよく走る!」だけであれば、サーバーは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
searchdomain←この行は書かなくても良い。自ドメインがある場合に書いておくと、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
デゴイチよく走る! > 緑の草子
←古い記事へ 新しい記事へ→