サイト運営の話」カテゴリーアーカイブ

WordPressのインストール

サーバーの引越が完了したので,さっそくWordPressのインストールを始めました。

最初はMovableTypeのブログをすべてWordPressのブログにしようと思っていたのですが,基本的には1つのWordPressでは1つのブログしか運営できなくて,複数のブログを運営するときに,複数のWordPressをインストールしなくてはいけないようです。そうすると複数のデータベースを使わないといけなくなってします。XREAの場合はデータベースは5個までしか使えないという制限があるので,きまっし金沢は全部のブログをWordPressにするのは無理があることがわかりました。

裏技で1つのWordPressで複数のブログを運営できるようになるようですが面倒なので断念しました。

そういう訳で,とりあえずは「きまっし金沢の雑記帖」だけをWordPressで運営することにしました。

WordPressではデータベース(MySQL)を使うので,設定が必要です。 元々MovableTypeのためのデータベース(MySQL)をkimassiという名前で作成してあったのですが,WordPress用に別の名前のデータベースを作成しないといけないのでkimassi-wpという名前にしました。文字コードはUNICODEにしました。 WordPressをダウンロードして解凍すると,WordPressのフォルダの中にあるwp-config-sample.php というファイルがありますが,エディターで内容を書き換え設定をしないといけないです。wp-config-sample.phpの設定についてxreaの場合はユーザー設定と,データベース設定で同じものを入力しないといけないということでkimassi-wpと入力しkimassi-wpしました。実際にユーザー設定と,データベース設定を別のものにしたら正常に動作しませんでした。その他にパスワードの設定も変更してファイル名をwp-config.phpに変えて保存します。。 解凍したファイルとwp-config.phpを全部,ブログに使うアドレスのフォルダに全部アップロードします。ブログのファイルとWordPressのファイルを別のフォルダにアップロードしても良いのですが,設定が少しだけ面倒なのと,WordPressでは,1つのブログしか動作させないのが一般的なので別のフォルダに入れるメリットが無いようです。

きまっし金沢の雑記帖はMovableTypeでhttps://kimassi.net/zakki がアドレスでしたがWordPressではhttps://kimassi.net/zakにすることにしました。裏技を使うと,MovableTypeのページのアドレスを,そのままWordPressに移植することも可能のようですが,今回は新たなアドレスで移植することにしました。

いざWordPressをインストール(https://kimassi.net/zakにすべてのファイルをアップロードした場合にはhttps://kimassi.net/zak/wp-admin/install.php)する際にブログタイトルとメールアドレスの入力を求められます。その後ユーザー名とパスワードが表示されますのでメモしておきます。ユーザー名とパスワードはメールでも通知されます。 その後ユーザー名とパスワードを求められることがありますが,ユーザー名はメールで送られてきたユーザー名に決まっていて他の名前を入力してはいけません。パスワードは最初に表示される自動作成のパスワードを入力しないといけないです。パスワードは後ほどプロフィールの登録で変更できますがユーザー名は変更できないようです。(新規ユーザーを設定した後はメールで送られてきたユーザー名adminは削除できるようです。)

最初に,Movable Typeのデータの移植してみました。Movable Typeの「きまっし金沢の雑記帖」の管理画面に入り,ユーティリティの読み込み・書き出しをクリックします。エントリー書き出しを選んで,「きまっし金沢の雑記帖」のエントリーの書き出しを実行します。 ダウンロードするフォルダに指定されているフォルダにexport-000015-20090807165530.txt(数字はおのおの違う)がダウンロードされています。 WordPressの管理画面に入ってツール,インポートをクリックしてMovableTypeからのインポートを選びます。 MovableTypeからのインポート画面でMovable Typeから書き出したファイルexport-000015-20090807165530.txt(数字はおのおの違う)を選んでファイルを選んでアップロードのボタンをクリックします。 その際,サーバー側のフォルダwp-contentの属性を757(他の人も読み書き実行が可能)にしておく必要があります。インポートが完了した後は属性を755に戻しておきます。

投稿者のユーザー名を変更してインポートするかという画面が出てきますので,WordPressのユーザー名に変更してインポートするほうが良いです。

WordPressの管理画面(ダッシュボード)を見ると投稿数が増えているのがわかります。

移植したブログの内容を実際に見てみましたが,改行が無視されていました。あと「~」の文字が文字化けしていました。まだ53個の投稿なので手作業で修正しました。

画像も以前のブログのアドレスからの参照になっているので画像ファイルの移植と画像ファイルのアドレスも手作業で移植しました。

ブログのページのアドレスも変更されているので同じブログ内でのリンクは全部修正しました。

これで,記事の移植は完了しました。

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

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の改造はわかりにくいので改造済みのファイルをダウンロードできるようにしました。