普通の日記

宅内サーバー履歴

  • 2代目:FreeBSD 6.1:LibrettoL3(TM5600 600MHz)
    • HDD 100GB 2006.7~

全く記事にしていなかったようなので。1994年位から独学でFreeBSDをいじって1997年から社内サーバー屋をやってましたが、土日のサーバートラブル連絡は支給されたポケベルに自動で来るのですが、PCは支給してくれないので土日は自腹のLibretto50+自腹のPHSでイベント会場からメンテナンスしていました。2001年に退職したので”私的”に使えるサーバーが無くなったので残骸のLibretto50でサーバーを構築。HDDの寿命は5年位かなという事で2台体制を組んであったのですが2代目サーバーのHDD寿命が15年経ってもまだ使えるので脅威なんですが。ちなみに初代が7年なので倍以上です。ちなみにサーバーにするときは毎回新規HDDに換装してます。そこでTW/750LS は壊れたDVDドライブが付いた普通のノートPCなので大きくて邪魔なので処分したくて、サーバー予定のS10-2がゴミになって戻ってきたのでこれを4代目にしようかと計画。ついでにSSD化しようかな。2代目がまだ現役なので3代目がmainサーバーになる前に廃棄になりそう…

追記:インストールしようとしてARM64版をダウンロードしたら怒られて調べたらN270は32ビットだったのでi386版を入れなおしました。それが原因なのかいまいちサクサクっと設定が進まない。

  1. スクリーンセーバ saver="daemon"が動かない
  2. 無線LANの”Bwn0”ドライバーが動作しない?
  3. ports、pkgのソースのfetchがうまくいかない。

なので相当貧弱PC過ぎたみたいなのでFreeBSDインストールをあきらめてお試しで

Zorin-OS-15.2-Lite-32-bit.iso (Ubuntu / Xfce)

をインストール。Linuxはインストールは簡単だなぁ。

xubuntu-18.04.4-desktop-i386

も入れてみようかな?
追記:…という事で

Remix_OS_for_PC_Android_M_32bit_B2016112201

を入れて一日入れて遊んでやっぱりGUI周りを触るのはつらいのがわかったのでいよいよ

xubuntu-18.04.4-desktop-i386

入れてみました。CUI側でも設定できるしGUI側で設定できるのでサクサクできていい感じです。GUI側の設定はどこに保存されてるのか不明だけど。細かい設定は”標準”で設定しなくていいのが良いのか悪いのか?Linux系は独特でrootがあるけど使わないで”sudo”とか使っても”password”要求してきたり、”su”は何?って感じでコマンドで分離してるのにユーザーでも分離してるのでイミフだけど慣れてきたw。

  • xscreensaver
  • telnetd
  • samba

は設定したので残りは

でしょうか。
追記:…という事で最近はLAMPというパッケージがあって上の3つが同時に入ってしまうらしいのでコマンド一発で入れてしまいました。phpMyAdminも入れてそれぞれを動作checkしたらOK! なので既にほかの2台で動いているPHP+mySQLで動く掲示板のPHPのプログラムとデーターベースをコピーして実行させると文字化け&動作もあやしい。これでは道のりが遠いので順番に。

  • CGI → 一発OK
  • PHP → 文字化け&動作がおかしい

CGIなんて枯れた技術なので一発でOK。PHPの問題は以下の3つでした。

  • (昔の)プログラムが SHIFT JISコード
    • →(最近の標準は)UTF-8で再保存
  • PHPのshort_open_tag 問題
    • php.ini の中に(なぜか)2回short_open_tagがあって2回目の方を ”On”にしないとダメ
  • 「ereg」「eregi」関数はPHP5.3以降で「Deprecated(非推奨)」となっている
    • →「preg_match」関数に変更
  • (バグだらけの拾ってきたプログラムを直して使ってるので)元々あったバグを修正

PHPも動作OKになりました。残るは

追記:…2週間ぐらいたちましたがPHPデバッグを当たってましたがなかなか動かないのでいろいろ調べたらmySQLに格納されてるデーターが最初からダメだったらしくこれに時間を取られました。

  • 移設前サーバー
    • latin1にUJISデーター
  • 移設後サーバー
    • utf8にutf8データー

同じ現象で悩んでる人たちがいるので情報はたくさんあるが同じようにやってもダメでした。結局は以下の手順でした。

default-character-set=latin1でdump

mysqldump -u mysql -p --default-character-set=latin1 db > GS

latin1でdumpしたものをcheckするとBINALYなのでUTF-8にする

$ nkf -g GS
BINALY

nkfでutf8に変換 <-- これをやらないと結局latin1にUJISデーターになる <--これはネットに無い情報。

$ nkf -w GS > GS_utf8

SET NAMES修正:内部のlatin1表記を全部utf8に変換 (2か所)

$ sed -e s/latin1/utf8/ GS_utf8 > GS_utf8_win

試しにインポート

$ sudo mysql -u mysql -p db < GS_utf8_win
ERROR 2005 (HY000) at line ?: Unknown MySQL server host ' (110)

が出たらエラー個所の前にある 発表\',' の \マークをWindowsのメモ帳でエラー個所を手直しする
\’がキャンセルされて,の位置がずれてしまうらしい。何回かやってでなくなるまでやると

ERROR at line ?: Unknown command "\\"

が出たらMySQLでインポート時にエラーを無視(-f)でインポート

$ sudo mysql -u mysql --default-character-set=utf8 -p db -f < GS_3_utf8_win

これも↑と同じようなことみたいだけど見つけられない…もしかしたら改行コード?

//▼mysql_connectは PHP5.5.0で非推奨になり、PHP 7.0.0で削除されています。mysqli関数(オブジェクト指向)を使う
//DBを選択してコネクト


$link = new mysqli($SQL_HOST , $SQL_U_NAME , $SQL_PASS , $SQL_DB);

if ($link->connect_error){
	$sql_error = $link->connect_error;
	error_log($sql_error);
	die($sql_error);
} else {
	$active_db =$link;

	$link->set_charset("utf8");  //DBからUTF-8で取り出す <--これが無いと何故か文字化け。
//	$link->set_charset("ujis");  //DBからEUC-JPで取り出す
//	$link->set_charset("latin1");  //DBからEUC-JPで取り出す
//	$link->set_charset(DB_CHARSET);
//	echo "connect and use success!<br>";
}

PHP側にもset_charsetが必要。以前は要らなかったのに…

あとはPHPを直したらmySQLからのREADはOK!になりました。残りはmySQLへの書き込みのPHP部分だけです。
追記:ちょうど2週間経ちましたがmySQLへの書き込みもできるようになったので、一応完成しました。前回の3代目サーバーの設定も2週間だったので同じぐらいでできました。

追記:4代目サーバーはUbuntu 18.04にセットアップが終了しましたが、考え直して液晶画面がボロボロの2代目サーバーを処分して、3代目サーバーを4代目サーバーのスレーブにしようと思い3代目をセットアップ開始しました。しかしうまく動かないので調べていったら、こういう事らしいので断念しました。

  1. mySQLサーバーのレプリケーションはバージョンの古い物がマスター、新しいものがスレーブは保証されているが、その逆は保証されない。(稼働サーバーにスレーブするのでありえないため)
  2. MySQL5.6のマスターにMySQL5.5(とそれ以前)のスレーブをぶら下げるとエラる
  3. 以下の構成をした人がいる。(対策がある)

MySQL5.7(master) -> MySQL5.7(slave)
-> MySQL5.6(slave) -> MySQL5.1(slave)

結論: 結論うちの構成は5.7.30 -> 5.5.17
は無理らしい。MySQL5.6(slave)が間に入るとできるらしい。という事がわかったので諦めて最新にしようと3代目サーバーにUbuntu 18.04を入れようとしたらこっちはビデオのドライバーが非対応らしくインストール途中でハイバネーションに落ちてしまって完了しませんでした。その点FreeBSDCLIインターフェースで今回はWiFiを認識したのでサクッと設定完了できてしまいました。1週間位で終わってしまいました。

MySQL 5.7.30(master) -->8.0.20(slave)

しかしFreeBSD9.0で動いてたスクリーンセーバーが何故か12.1で動かないので苦肉の策でGNOME3を入れてそれのブランクスクリーンセーバーで逃げましたw。