[WordPress]DBのデータをバックアップするプラグイン | WP-DBManager


ダウンロード

WordPress › WP-DBManager « WordPress Plugins

インストール

ダウンロードしたファイルを解凍し、wp-content/pluginsへコピーするだけです。

日本語化

WP-DBManager 日本語版 – MMRT daily life

こちらのサイトからダウンロードして解凍したファイルをwp-content/plugins/wp-dbmanager/にコピーしました。

2008-03-15 v2.20用の古いものですが99%問題なく日本語化されています。

プラグインの有効化

プラグインを有効化するといきなりエラー発生。

Your backup folder MIGHT be visible to the public

To correct this issue, move the .htaccess file from 【wpのPath】/wp-content/plugins/wp-dbmanager to /wp-content/backup-db

wp-dbmanager/にhtaccess.txtファイルがあるので、これを.htaccessにファイル名を変更して/wp-content/backup-dbへ移動したらこのエラーは出なくなりました。

設定

プラグインを有効化すると管理パネルに以下のようなメニューが追加されるので、ここで設定を行います。

WP-DBManager メニュー画面

データベースオプション

WP-DBManager データベースオプション画面

まずはmysqldumpのパス、mysqlのパス、バックアップファイルのパス、バックアップファイル保有数を設定します。mysqlをインストールしたディレクトリを指定する部分が重要です。

あとは何日ごとにバックアップをとるかといった自動スケジュールに関する設定をして[Save Change]しておくだけで自動的にやってくれるようです。

めちゃくちゃ簡単でしたね。他にもSQL操作できたりいくつか機能がありますが、それは必要に応じてやろうかなと思います。

[WordPress]連続したハイフンが勝手に変換されてしまう


【現象】

--rootといったように連続したハイフンを入力して投稿すると–rootというように変換される。

【関係する場所】

  • 記事の投稿編集画面
  • 投稿後の記事ページ

【原因分析】

  • この部分のHtmlコードは–rootとなっている。
    --rootと入力したものが–rootに変換され—rootと表示されている。
  • 変換しているファイルはwp-includes/formatting.php、関数はwptexturize()。
  • 該当部分のソースコード
    $static_characters = array_merge(array('---', ' -- ', '--', ' - ', 'xn–', '...', '``', '\'\'', ' (tm)'), $cockney);
    $static_replacements = array_merge(array('—', ' — ', '–', ' – ', 'xn--', '…', $opening_quote, $closing_quote, ' ™'), $cockneyreplace);
    

【対策】

  1. formatting.phpのソースコードを改変する
    これやってはまりました。このページなどを参考にやってみましたがうまくいかず、あちこちでエラーが発生するようになってしまい、しまいにはWPがうまく動かなくなってしまいました。ソースコード自体をいじるのはちょっと危険かなぁと。(自動)アップグレードのたびに変更するのもいまいちだし。
  2. <pre>タグで囲む
    これならそのまま変換されずに表示されます。
  3. 自分で文字実体参照に変換してから投稿する
    「-(ハイフン」)」の文字実体参照は「&#45;」なので、--rootと入力する場合は「&#45;&#45;root」と入力するようにする。

Subversion:svnserveのセキュリティ(認証・アクセス制限)


svnserveはデフォルトでは誰もが「読み取り専用」でアクセスできるようになっています。チェックアウトや更新はできるけどコミットはできません。

設定を変更するにはリポジトリディレクトリ内のconf/svnserve.confファイルを使用します。

誰でも書き込めるようにする

[general]

anon-access = write

パスワードでアクセス制限する

パスワードファイルの作成

リポジトリを作成すると自動的にsvnserve.confファイルなどと一緒にpasswdというファイルが生成されます。このファイルをエディタで開くと以下のようになっているので、ここにユーザ名とパスワードを追加します。

[users]
# harry = harryssecret
# sally = sallyssecret

ユーザ名とパスワードの追加

[users]
# harry = harryssecret
# sally = sallyssecret
taro = ****** # 適当なパスワードを設定

svnserve.confファイルの設定

[general]
password-db = passwd
realm = test repos # 自由に定義してOK
anon-access = none
auth-access = write

password-dbにはユーザ名とパスワードが記述されているファイルへのPathを指定します。realmには「認証用の名前空間」となるような文字列を入力します。

anon-accessは認証されていないユーザ、auth-accessは認証されたユーザに対してのものです。read(読み出し許可),write(読み書き許可),none(すべて禁止)の3つから選ぶことができます。

もっと詳細なアクセス制御をしたい場合はApacheを使ったほうがいいと思います。

はまった点

 anon-access = none
 auth-access = write
 realm = My First Repository

上のような設定で試すと下のようなエラーが発生して苦労しました(TortoiseSVN)。

Unable to connect to a repository at URL 'svn://localhost/test'
D:\Repositories\test\conf\svnserve.conf:19: Option expected

コードの先頭に空白があったのでダメだったようです。デフォルトのコードをコメントアウトしたら普通に空白が残ってしまうので注意が必要。これを取り除けばいいだけですが、空白一つで動かなくなるとは・・。

Subversion:サービスとリポジトリを作り直した


前回は勉強のため解説通りにPathを設定しましたが、自分に合うように作り直しました。

リポジトリの削除

ファイラでフォルダごと削除。

新しいリポジトリの作成

svnadmin create d:\Repositories\test\

サービスの停止

sc stop 【サービス名】

サービスの削除

sc delete 【サービス名】

【サービス名】 → svnserve

サービスを登録し直す

sc create svnserve binpath= "【svnserveのPath】 --service --root 【新リポジトリのPath】" displayname= "【表示名】" depend= tcpip start= auto

サービスの開始

sc start 【サービス名】

コマンドプロンプトでの操作です。あまり使いこなしていなかったですが結構便利ですね。

svnserveでWindowにSVNサーバをインストール


svnserveを利用する形でSubversionをインストールしました。結構苦労しましたが、単純にPathの記述ミスが痛かった・・。

ダウンロード

Subversionにはいくつかパッケージがあり自分にあったものを使うと良いようです。Apacheの以下のサイトからパッケージを選んでダウンロードしました。

・CollabNet
・SlikSVN
・VisualSVN
・WANdisco
・Win32Svn

Apache Subversion Binary Packages

このサイトにCollabNetのインストーラをダウンロードしてくださいとあったのでhttp://www.collab.net/downloads/subversionよりダウンロード。

このパッケージはsvnserveを Windows サービスとしてセットアップし、セキュリティのために SASL を使う場合に必要となるいくつかのツールも含んでいるとのことです。

インストール

ダウンロードしたファイルをインストール先パスを指定して実行。

リポジトリの作成

svnserveを稼働する前に[TortoiseSVN] → [リポジトリを作成]でc:/reposTestRepoにリポジトリを作成しました。解説を読みながら作業する時はできる限りその通りにフォルダなども作ったほうが間違いが起こりづらくていいので解説の通りに作成。

svnserveをサービスとして起動

sc create svnserve binpath= “【svnserveのPath】 –service –root c:/repos/TestRepo/” displayname= “【表示名】” depend= tcpip start= auto

【svnserveのPath】 → 例:c:/svnserve/svnserve.exe

【表示名】 → 例:Subversion

Windowsの[管理ツール]でサービス(services.msc)を開始。

動作確認

ここではまりました。TortoiseSVNのリポジトリブラウザにsvn://localhost/repos/TestRepo/と入力して実行すると酷い目に。

存在しないリポジトリを延々と探し続けたためか、CPUがうなりを上げて温度73度を超えましたとか警報が出てアプリが固まってしまいタスクマネージャで強制的に終了させる事態となってしまいました。

EclipseのSubversiveからSVNリポジトリにアクセスしてみると、「ロケーション情報が誤って指定されています」「svn: No repository found in svn://localhost/repos/TestRepo/’」とダイアログが表示されてうまくいかず。

結局、Pathが間違っていたようです。「svn://localhost/TestRepo」と入力したらTortoiseSVNのリポジトリブラウザからでもSubversiveからでもうまくいきました。