Monthly Archives: 6月 2009

WordPress – 本体バックアップ

ブログのお引っ越し記事にも書きましたが、現在このブログのWordpress本体のバックアップは、LAN内にあるサーバにrsncで定期自動バックアップ(同期)しています。その方法を覚え書き程度に記しておきます。
肝は、「定期的に自動バックアップするためには、rsyncでその度入力が必要なパスワードをどうするか」だけです。これには、SSH接続で認証キー(パスフレーズ無)を使います。
では、手順を記します。(下記条件で進めますので、環境に応じて変更してください)
バックアップ元:192.168.1.2 (www.witkitty.com)
バックアップ元ディレクトリ:/home/user/wordpress
バックアップ先:192.168.1.3
バックアップ先ディレクトリ: (事前に作成しておきます)
・/backup/www.witkitty.com/wordpress
・/backup/www.witkitty.com/conf
rootユーザでの使用を前提としていますが、他のユーザの場合は置き換えてください。
sshdが動作していること。
では、手順を示していきます。
Read more »

ブログのお引っ越しに・・・

以前ブログを引っ越しした記事を書きましたが、その時に手間をかけずにサイトアドレスを書き換えた方法を記しておきます。(あくまで当方の覚え書きですが、使えるところは使ってください)
ブログを引っ越して一番面倒なのがドメイン名が変わること。検索してみると、先人の方々も苦労されているようで、どうもwp_optionsというテーブルが厄介者らしい。たしかこのテーブルってプラグインとかの設定も管理しているんじゃなかったかな。横着な当方、削除&インポート&再設定なんてまどろっこしくてやってられないんで、下記の方法を使って一気に処理しちゃいました。ただ、基本的にこれから示す方法はかなり乱暴な手法なので、「もし・・・」と思われる方は、手を付けない方がいいかもしれません。それと、自鯖運用での話なので、レンタルサーバーの方が下記手法使えるかどうか、またサーバ管理会社に怒られても責任は持てません。全て自己責任でお願いします。

前提条件として、

  • WordPressのバージョンは同一で、新しいサイトでインストール済みであること
  • MySQLのバージョンは同一であること、もしくは移行先の方が新しいこと
  • PHPのバージョンはなるべく同じ方がいい
  • プラグインで使用されている細かいものがセットアップされていること
  • テキストファイルの文字列置換が可能な環境を持っていること
  • WordPressサイトのルートURLが、新旧で相対的に同じであること
    (違う場合は、置換文字列が変わってきます)

です。
さて、ではここからが手順です。

Read more »

お行儀悪いですよ・・・おまえもなぁ~w

このブログサイトのLogwatchから不穏なログが通知されてきた。
「apache脆弱性攻撃と思われるアクセスがありましたよ~」
で、中を見るとこんな感じ。(IPの最後はとりあえず隠しておきますです)

A total of 1 sites probed the server
119.63.198.xx

A total of 1 possible successful probes were detected (the following URLs
contain strings that match one or more of a listing of strings that
indicate a possible exploit):

/wordpress/tag/\xe3\x83\xa1\xe3\x83\xbc\xe3\x83\xab\xe9\x80\x81\xe4\xbf\xa1/ HTTP Response 200

そこでアクセス元はというと、whoisでこの[119.63.198.xx]を見てみると、このセグメントは[Baidu, Inc.]が所有している。つまり検索サイト「百度」を運営している日本法人である。
警告を超意訳すると、「成功したっぽい探査が見つかったよ~、下記のURLで1つ以上の脆弱性攻撃の可能性を示す文字列リストが含まれてやんす」と。(この訳は役に立たないのでご自分で訳してくださいな)
それで、問題のURLを見ると・・・、
「あぁ~、タグに使われている漢字コードっぽいな~」
「ん?、なんで[\x]なの?、本来[%]じゃ・・・」
ふ~ん、「百度」クローラエンジンのリクエストURLのエンコードがバグっているものと思われますな。
UTF-8エンコードを別のエンコードに変換しているのならまだ可愛げがあるが、[\x]はねぇ~だろうよ・・・

実際、[\x]を[%]に置き換えると、
「\xe3\x83\xa1\xe3\x83\xbc\xe3\x83\xab\xe9\x80\x81\xe4\xbf\xa1」は、
「%e3%83%a1%e3%83%bc%e3%83%ab%e9%80%81%e4%bf%a1」=「メール送信」
という文字列になる。(実際タグとして使われている)

で、この変態リクエストを受け取るとどうなるかをtelnet接続で試してみると、Wordpressは404ページを作って返しているのだが、ヘッダが以下のようになっている。

Read more »

WordPress – データベース バックアップ

このサイトは、当方の自作サーバーで動いているので、レンタルサーバーのような制約が無い。
レンタルサーバを借りたことがないので、どこまでレンタルサーバーでどこまで制約があるか分からないが・・・
以下は、レンタルサーバーでも出来るかもしれないが、基本的に自鯖の方用ということで。
また、WordPress Database Backupプラグインを入れている方も不要と思われるんですが、データベースが大きくなると、ブラウザでの処理中にタイムアウトが発生する可能性があります。(タイムアウトするほどポストしていないので何とも言えませんが・・・)

日々のデータベースバックアップをどうするかというと、mysqldumpコマンドを使ってごっそり引っこ抜いてしまうという手法を使います。このコマンドで得られたダンプファイルというのは単なるテキストファイルなんですが、このフォーマットはリストアするときにMySQLが分かるような書式になっています。ということなので、このテキストファイルを圧縮し、メールで送れれば、ほぼWordPress Database Backupプラグインと同じことをブラウザのタイムアウトを気にせずバックアップを取ることが可能でやんす。
(当方はこのダンプファイルがテキストファイルであるということで、ブログの引っ越しにこの性質を利用して手間を掛けずに数時間で引っ越しを終わらせました。このことは後で記事にでもしてみます)

さて、では順を追って簡単に説明します。

まずは、mysqldumpコマンド例は以下の通りです。

# mysqldump [DB name] --host=[hostname] -u [DB user name] --password=[DB password] > [backup file name]

で、このままだと手動でコマンドを叩くしかないので、cronに任せたくなりますが、そこをちょっと我慢してメールの送信まで一気に処理しちゃうスクリプトを書いちゃいましょ。

基本的にダンプファイルを作るまではシェルスクリプト(bash)で、メール送信だけPerlスクリプトで書きました。Perl部分は[Bird-Soft]さんのコードを丸写しなので合体させました・・・orz

とりあえず、スクリプト全体のコードはこれ。(エラー処理は端折ってます)

Read more »

Page 1 of 812345...Last »