インターネットの話」カテゴリーアーカイブ

XREA内でMOVABLE TYPEも含めたサーバーの引越

きまっし関連のブログはMOVABLE TYPEを使っているのですが,MOVABLE TYPEの新しいバージョンは有料になってしまい,今後支障が出てくることが必至なので,WordPressに乗り換える事にしました。
ところがWordPressに使うには,今使っているサーバーのデータベースMySQLのバージョンが古くて動作しないことがわかり,XREA内で新しいパソコンのサーバーに引越しすることにしました。

移転先のサーバーは新しいパソコンのサーバーなのでCPUの能力もかなり違っています。ネット環境が良くなる事を期待してます。
XREAではサーバー間のCOPYをするサービスがあるので,CGIのパーミッションの変更とかも従来のサーバーのままの状態でCOPYしてくれます。

でも最初は,うまくいかなくて・・・・・・

新サーバーでマイドメインを設定し,すべてのドメインのフォルダが設置されました。
サーバー間コピーを動作させたところ,下記の表示が出てコピーできません。
Tue Aug 4 17:37:05 JST 2009
******** START ********
KILL OLD PROCESS
Unknown command `ftp:timezone’.
cd: Login failed: 530 Login incorrect.
COMPLETE
REMOVE TMPFILES
FIX FILES
******** END ********
Tue Aug 4 17:37:06 JST 2009

新サーバーに入ってサーバー間コピーをクリックして
FTPユーザー名は自分のユーザー名,パスワードは新サーバーのパスワード,
FTPサーバー名は旧サーバーのサーバー名,転送方法ミラー(削除無し),
リモートディレクトリは/,ローカルディレクトリも/
で,選択のチェックして実行をクリックしたのですが,
実際にはパスワードは旧サーバーのパスワードを入力しないといけなかったんです。
よく考えれば,当たり前な事です(苦笑)

データのサーバー間COPYが完了したら,value-domainの管理画面からDNSレコード/URL転送の変更しすべてのドメインを新サーバーで運用する設定に変更 します。

これで無事,引越しが成功したと思ったら,データベースは別途,引越ししないといけなかったのです。
旧サーバーの管理画面でデータベース(MySQL)を選択して,MovableTypeのmtフォルダにあるmt-config.cgiに登録されているユーザー名とパスワードを入力して選択するデータベースにチェックマークを入れて保存のボタンをクリックします。
mysql.dumpが旧サーバーのルートディレクトリ(public_htmlやMaildirのあるディレクトリ)に出来ています。
それを新サーバーのルートディレクトリにコピーしておきます。
新サーバーの管理画面でデータベース(MySQL)でパスワードを設定して作成ボタンをクリックします。
その次に,新サーバーの管理画面でデータベース(MySQL)でパスワードを設定して復元ボタンをクリックします。

新サーバーに移動したMovableTypeのmtフォルダにあるmt-config.cgiをエディターで開いてパスワードを新サーバーの管理画面でデータベース(MySQL)で設定したパスワードと同じものにします。
これでMovableTypeも動作すると思います。

今回は旧サーバーのMySQLのバージョンと新サーバーのMySQLのバージョンが著しく違うので文字化けがひどく記事の日本語が全く読めませんでした。
ネットで調べたら
mt-config.cgiをエディターで開いて
SQLSetNames 1
を適当な場所に挿入すれば解決すると書かれていたので,その通りにしたら文字化けは無くなりました。
そういう訳でMovableTypeも含めて引越しは完了しました。

MOVABLE TYPEのデータが壊れた

きまっし関連のブログはMOVABLE TYPEを使っているのですが,MOVABLE TYPEの新しいバージョンは有料になってしまい,今後支障が出てくることが必至なので,WordPressに乗り換える事にしました。

WordPressにはデータベースMySQLが必要なので,XREAでMySQLの作成をしたところ,MOVABLE TYPEで使っているMySQLのデータを誤って削除してしまいました。

そういう訳で,MOVABLE TYPEが全く使えなくなって(ページを読むだけなら読める),昨日から復旧に努めていたのですがうまくいかなくて諦めていました。
しかもWordPressをインストールしようとしたら,今使っているサーバーのMySQLのバージョンが古くて動作しないことがわかり完全にパニック状態・・・・・・・

MySQLのバージョンの件をXREAに相談したら,XREAの最新のサーバーに移転する事を勧められて,引越しすることにしました。

MySQLのデータの件も,諦めきれずにいろいろ調べてみたら,ルートディレクトリ(public_htmlやMaildirと同じディレクトリ)にバックアップファイルが別の名前(mysql_.1249385126.dump)で残っていて,それをmysql.dumpという名前に変更しました。

そこでXREAの管理画面でデータベースをクリックして復元を選んだのですが,何故かうまくいきません。
ネットでいろいろ調べたら,復元する場合は,最初から復元でなくて,最初に作成を選んでから復元を選ばないといけないということがわかり,無事復旧できました。これでデータの移植が随分楽になります。

AC/DCカーインバーターを購入

あばれ祭に行った時にノートパソコンのバッテリーが切れた経験をして,SANWA AC/DCカーインバーター車用 最大75W(TAP-DAV75W)というのの新品をオークションで1000円で落札しました。諸経費込みで1708円でした。製造中止になったものですが定価が8800円のもののようです。
自動車のシガライターソケットからAC電源をとることができるものです。75Wなので,大容量の電化製品は利用できないけど,ノートパソコンやデジカメの充電池の充電には充分使えると思います。自動車のバッテリーが低下すると自然に電源を切るので自動車のバッテリー上がりの心配はありません。

2009年8月30日
今日初めて使ってみましたが,パソコン使用やデジカメの充電池の充電など大いに役立ちました。2口で使えますので両方が一緒に出来ます。買ってよかったです。

Perlのお勉強

Perlのお勉強をして、少ないスキルなりに、スパム投稿対策のための掲示板のアクセス禁止IPの登録ファイルの共通化と、複数掲示板に渡っての連続スパム投稿を防止するための投稿IPの情報共有化にこぎつけました。

次には、主なページのリンク元公開について、月が替わると、今までの「きまっし金沢の各ページのアクセス数(今月)」の情報が「きまっし金沢の各ページのアクセス数(前月)」に移行し,「きまっし金沢の各ページのアクセス数(今月)」を自動的にリセットようにCGIを改造しようと思います。
1ヶ月に1回の操作なのですが、よく忘れるのです。

2009年7月24日
自分で作らなくても,LimeCounterで月が替わると自動的にカウンター値がリセットされ,前月のカウンター値も表示できるCGIが表示されていたので,それを利用することにしました。

掲示板のスパム投稿対策(連続投稿禁止情報の共有)

きまっし金沢関連のサイトでは掲示板はkent-webのYY-BOARDを利用してます。多くのサイトで使われているだけにスパム投稿に狙われる事も多いのが難点です。

スパム投稿対策として,YY-BOARD spam 対策改造を利用しています。これで自動投稿は防ぐことはできます。

きまっし金沢の関連サイトでは30個の掲示板を設置していますので、多くの掲示板に手動で1件ずつスパム投稿をしようとする例もあります。

基本的には投稿禁止IPを登録して全ての掲示板で禁止IPではアクセスできないようにしてますが,チェックできない時間の新たなIPでの投稿には対応できないという状態でした。
そういう訳でYY-BOARD spam 対策改造の同一IPアドレスの短時間での連続投稿禁止の機能を利用して,きまっし金沢関連の1つの掲示板に投稿した場合には一定時間たたないと他の掲示板にも投稿できないような制限を加えることが出来るように掲示板を改造してみました。実際に試してみましたが,なんとか動作しました。

まずは全ての掲示板のyyini.cgiを
# 制限投稿間隔(秒数)
# → $regCtl での投稿間隔
$wait = 120;
に設定します。
全ての掲示板のyybbs.cgiに
#IPファイルを開く
open(IN2,”$logfile2″) || &error(“Open Error: $logfile2″);
を設置します。
具体的には
local($no,$re,$dat,$nam,$eml,$sub,$com,$url,$hos,$pw,$col,$ico);
#IPファイルを開く
open(IN2,”$logfile2”) || &error(“Open Error: $logfile2″);
# 記事を展開
$i = 0;
$flag = 0;
open(IN,”$logfile”) || &error(“Open Error: $logfile”);
という具合です。
最後に全ての掲示板のyyregi.cgiを改造します。
まず
# IPログを開く
open(IN2,”$logfile2″) || &error(“Open Error: $logfile”);
@lines2 = ;
close(IN2);
# IPログのデータ書き出し
$top2 = shift(@lines2);
local($ip2,$tim2) = split(/<>/, $top2);
を追加します。
具体的には
# ファイルロック
if ($lockkey) { &lock; }
# IPログを開く
open(IN2,”$logfile2″) || &error(“Open Error: $logfile”);
@lines2 = ;
close(IN2);
# IPログのデータ取り出し
$top2 = shift(@lines2);
local($ip2,$tim2) = split(/<>/, $top2);
# ログを開く
open(IN,”$logfile”) || &error(“Open Error: $logfile”);
@lines = ;
close(IN);
# 記事NO処理
$top = shift(@lines);
local($no,$ip,$tim) = split(/<>/, $top);
$no++;
という具合です。
連続投稿チェックの引数を変更します。($ipを$ip2に,$timを$tim2に変更します)
具体的には
# 連続投稿チェック
$flag=0;
if ($regCtl == 1) {
if ($addr eq $ip2 && $times – $tim2 < $wait) { $flag=1; } } elsif ($regCtl == 2) { if ($times - $tim2 < $wait) { $flag=1; } } if ($flag) { &error("現在投稿制限中です。もうしばらくたってから投稿をお願いします"); } という具合です。 最後に# 親記事の場合中の#更新の後に(140行前後)に # IPログ更新 @new="$addr<>$times<>\n”;
open(OUT2,”>$logfile2″) || &error(“Write Error: $logfile2″);
print OUT2 @new;
close(OUT2);
を追加します(上記の\nは¥nの半角です)。
具体的には
# 過去ログ更新
if (@data > 0) { &pastlog(@data); }
# 更新
open(OUT,”>$logfile”) || &error(“Write Error: $logfile”);
print OUT @new;
close(OUT);
# IPログ更新
@new=”$addr<>$times<>\n”;
open(OUT2,”>$logfile2″) || &error(“Write Error: $logfile2”);
print OUT2 @new;
close(OUT2);
という具合です。(上記の\nは¥nの半角です)
yyregi.cgiの改造はわかりにくいので改造済みのファイルをダウンロードできるようにしました。