アーカイブ: : 2月, 2019

webサーバの更新

webサーバのHDD交換をしようとしたが、サーバのハードウェアが安く手に入ったので全体を更新することにした。
本体:HP ProLiant ML310e Gen8 v2 8GB HDD 1TBX2 Raid
OS:Freebsd 10.1

インストールは通常通りだが、今回はHDDを2個でRaidを組む。マザーボード標準のRaidはソフトウェアRaiidでFreebsdでは使えない。なのでZFSで組むことにした。
インストール終了後、ソフトウェアの構築。 基本的にapache,PHP,Mysql。 まずは、apacheからだが、今回はpkgを利用してみることにした。 インストール直後から順を追ってみる。
pkg update -f pkg自体を利用するためのデータベース更新
pkg install -y apache24
pkg install -y php56
pkg install -y mod_php56
pkg install -y php56-mbstring
pkg install -y php56-extensions
pkg install -y phpmyadmin
pkg install -y mysql56-server
以下は/etc/rc.confに追記
apache24_enable=”YES”
mysql-server_enable=”YES”

apacheの設定
cd /usr/local/etc/apache24/ httpd.confを編集してphp,userdir,mod_cgiのモジュールの有効化
ディレクトリインデックスにindex.htm,index.phpを追加
cd /usr/local/etc/apache24/extra
httpd-userdir.confを編集
cd /usr/local/etc/apache24/Inceludes
php5.conf,phpmyadmin.confを作成

最初に旧サーバの/etc/passwd,/etc/master.passwd,/etc/groupを作業ディレクトリにコピー
新サーバの/etc/passwd,/etc/master.passwd,/etc/groupに追記

旧サーバからユーザデータを移動
今までは旧サーバでtar.bz2にまとめてftp getしていたがデータが巨大になるのでnfsを利用する。
旧サーバはこのままでは利用できないのでカーネルを書き換えて再構築。
rc.confに追記

NFS

rpcbind_enable=”YES”
nfs_server_enable=”YES”
mountd_flags=”-r”
新サーバにのrc.confに以下を追記
nfs_client_enable=”YES”
/etc/exportsを作成 ディレクトリ名(スライス名) -alldirs サーバ名

新サーバでの作業
cd /home
mount -t nfs 192.168.16.1:ディレクトリ名
/mnt cp -Rp /mnt/* ./

うまくできた! この後、vipwして確認 ls -la ~ユーザ名で属性や内容を確認。

最後の難関(問題ないはずだったが大問題になった)
mysqlのデータコピー ホームページにCMSを使用しているのでphpmyadminを利用して旧サーバからダウンロード。
新サーバにアップロードして終了するはずだったのに、文字化けしてダメ(涙)
mysqlのエンコード変えても何してもダメ。 調査すると旧サーバのmysqlのchrセットがLatin1だった。
ググってみるとnkf使ったりsed使えば何とかなるみたいだったがダメ。
一時しのぎでCMSのデータベースサーバを旧サーバに変更して対応。
ダウンロードしたデータを秀丸で見たら文字化けしてた。情報収集したら秀丸ではこのファイルを一旦Latinで保存すると幸せになれるみたいだ。やってみた。OKだぁ!
このデータを新サーバにアップロード。 CMSの設定を新サーバに変更してみたら文字化けなく表示。 試しに書き込みしてみた。書き込みした投稿だけ文字化け。
旧サーバのCMSのデータベースを新サーバに変更、こっちは書き込みOK。
あー、なんだ? phpは5.5からdefault char設定がUTF-8に変更になっている。この関係か?
phpinfoを確認してみる。
mbstringに「Local Value」と「Master Value」がある。値も違う。この違いは何だ?
phpのサイトで確認してみると「Master Value」はphp.ini、「Local Value」は.htaccessで変更されてる値らしい。
新サーバの.htaccessを無効にしてみた。なおった。

squirrelmailその2

今日、得意先からメールの読み書きができないと連絡がきた。

山の中なのでADSLも光も使えない場所らしい。
携帯のFOMAだけは使えるので、常時接続しても電話代を気にしなくて良いようにdocomoのmoperaサービスに入ったが、WebはOKだがメールがNGらしい。
いろいろ調べるとmopera自体のメールサービスがWebしかできないようだ。
得意先のメールサーバをmoperaを使って利用できるようにしなければならない。
考えた結果、得意先のサーバにWebMailのシステムを入れることにした。
得意先のサーバもFreeBSD7.0なのでSquirrelMailを入れることにした。
しばらく前にやった事がある。たしかportsで入れたが、苦労した思い出があるが、このblogを書く前だったので記録が残ってない。
考えていても前に進まないので、とりあえずインストール。

/usr/ports/mail/imap-uwでmake install clean
/usr/ports/lang/php4でmake install clean
SquirrelMailはデータベース(postgresqlやmysql)を使用しなくてもよいのでラク?
/usr/local/etc/apache22/httpd.confをいじったがphpinfo()も表示しない。
たしか、このサイトはドメインを二つ使っているはずなのだがバーチャルホストの設定が見つからない。
ん~?と思って調べるとapache22の下にextraという名前のディレクトリがあり、この中にhttpd-vhosts.confというファイルがありこの中に書いてあった。忘れていた・・・。このあたりのバージョンから基本とオプションのファイルが昔みたいに分けて書くことができるようになったんだっけ。
httpd-vhosts.confを直す。httpd.conf内に書いてあったaliaseと ~ を削除してhttpd-vhosts.confに追加。
それでもphpinfo()がダメ。結局AddType application/x-httpd-php .php DirectoryIndex index.html index.phpを上記のディレクティブに追加し、めでたく解決。
/usr/ports/mail/mquirrelmailでmake install clean
そしたらphp関係もインストールしてくれた。こっちから先にインストールすればよかった(T_T)
とりあえずログイン画面は出た。しか~~~し!imapdからplainパスワードはダメよ~んって怒られた。/var/db/ports/imap/optionsを見るとSSLがtrueになっている。/var/db/ports/imap/optionsをrenameして再インストール。もっと良い方法。
cd /usr/ports/mail/imap-uw make config
make
make deinstall
make install clean

/usr/ports/mail/imap-uwでmake install clean
これでどぉだ~!
ダメ・・・。
たしかこのシステムの認証時はブラウザ→cclient→imapdだったはず。
cclientを調べる。Makefileを見るとSSLがデフォルトでONになっている。
pkg_infoで調べるとインストールしたつもりはなかったがimap-uwをインストールした時に自動で入っているので/usr/ports/mail/cclientでmake deinstall。
imap-uwと依存関係にあるのでdeinstallできないのぉ♡って言われた。
ん~だ!こんな時に使えるのがmake reinstall。めでたく再インストール完了!
もう一回アクセスしたら、こんどはdrop imapdだぁ?なんだべ?こんどはimapdがmailDir方式でインストールされているみたい。ここのシステムはsendmailなのでMailBox方式。今度はimapの方をmake reinstall。
どぉだぁ!認証OKだぁ!
おーし!これでなんとかなるかな。