宅内サーバー履歴
- 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版を入れなおしました。それが原因なのかいまいちサクサクっと設定が進まない。
なので相当貧弱PC過ぎたみたいなのでFreeBSDインストールをあきらめてお試しで
をインストール。Linuxはインストールは簡単だなぁ。
も入れてみようかな?
追記:…という事で
Remix_OS_for_PC_Android_M_32bit_B2016112201
を入れて一日入れて遊んでやっぱりGUI周りを触るのはつらいのがわかったのでいよいよ
入れてみました。CUI側でも設定できるしGUI側で設定できるのでサクサクできていい感じです。GUI側の設定はどこに保存されてるのか不明だけど。細かい設定は”標準”で設定しなくていいのが良いのか悪いのか?Linux系は独特でrootがあるけど使わないで”sudo”とか使っても”password”要求してきたり、”su”は何?って感じでコマンドで分離してるのにユーザーでも分離してるのでイミフだけど慣れてきたw。
- xscreensaver
- telnetd
- samba
は設定したので残りは
でしょうか。
追記:…という事で最近はLAMPというパッケージがあって上の3つが同時に入ってしまうらしいのでコマンド一発で入れてしまいました。phpMyAdminも入れてそれぞれを動作checkしたらOK! なので既にほかの2台で動いているPHP+mySQLで動く掲示板のPHPのプログラムとデーターベースをコピーして実行させると文字化け&動作もあやしい。これでは道のりが遠いので順番に。
CGIなんて枯れた技術なので一発でOK。PHPの問題は以下の3つでした。
PHPも動作OKになりました。残るは
- PHP + phpMyAdmin +mySQL → 文字化け&動作がおかしい
追記:…2週間ぐらいたちましたがPHPのデバッグを当たってましたがなかなか動かないのでいろいろ調べたらmySQLに格納されてるデーターが最初からダメだったらしくこれに時間を取られました。
- 移設前サーバー
- latin1にUJISデーター
- 移設後サーバー
- utf8にutf8データー
同じ現象で悩んでる人たちがいるので情報はたくさんあるが同じようにやってもダメでした。結局は以下の手順でした。
default-character-set=latin1でdump
mysqldump -u mysql -p --default-character-set=latin1 db > GSlatin1でdumpしたものをcheckするとBINALYなのでUTF-8にする
$ nkf -g GS BINALYnkfでutf8に変換 <-- これをやらないと結局latin1にUJISデーターになる <--これはネットに無い情報。
$ nkf -w GS > GS_utf8SET 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代目をセットアップ開始しました。しかしうまく動かないので調べていったら、こういう事らしいので断念しました。
- mySQLサーバーのレプリケーションはバージョンの古い物がマスター、新しいものがスレーブは保証されているが、その逆は保証されない。(稼働サーバーにスレーブするのでありえないため)
- MySQL5.6のマスターにMySQL5.5(とそれ以前)のスレーブをぶら下げるとエラる
- 以下の構成をした人がいる。(対策がある)
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を入れようとしたらこっちはビデオのドライバーが非対応らしくインストール途中でハイバネーションに落ちてしまって完了しませんでした。その点FreeBSDはCLIインターフェースで今回はWiFiを認識したのでサクッと設定完了できてしまいました。1週間位で終わってしまいました。
MySQL 5.7.30(master) -->8.0.20(slave)
しかしFreeBSD9.0で動いてたスクリーンセーバーが何故か12.1で動かないので苦肉の策でGNOME3を入れてそれのブランクスクリーンセーバーで逃げましたw。