WP-DBManagerでバックアップ

2010/1/14追記:どうも動いていなかった模様。ファーストサーバから回答を頂いた。

「現在ご契約中のサーバでのデータベース機能(MySQL) は、ホスト名で
のアクセスを前提に提供させて頂いており、MySQL のパスはご案内いた
しておりません。

また、弊社サーバでは mysqldump をご用意いたしておりません。

  ※個別にmysqldump をご用意させていただく等の対応も
    行なっておりません。」

フォーラムでも混乱を招いてしまったので早めに追記しておきます。

以前にもWP-DBManagerの記事を載せたのですが、今回wordpress2.8.4、WP-DBManager2.50でファーストサーバーのバックアップ方法を覚書。以前の記事では一部エラーが残っていたが、今回はきっちり動きました。

WP-DBManagerはプラグインの新規追加から検索すれば簡単に見つかります。インストールも自動でOK。
有効化すると「バックアップフォルダが安全じゃないよ!」と怒られるので、プラグインフォルダにあるhtaccess.txtを.htaccessにリネームしてWP-DBManagerが自動生成したwp-content配下のbackup-dbフォルダにアップロード、以降怒られません。

日本語化の方法は今回は小粋空間さんを参考にしました。ご覧あれ。

日本語化するとメニューも「データベース」になります。ここからDB オプションを選びましょう。
mysqldumpのパスもmysqlのパスも自動検索は無理です。以下の設定で。
mysqldumpのパス:

/usr/local/mysql

mysqlのパス:

/usr/local/bin

これでDBバックアップをクリックすればエラーはでないはずです。試しに手動バックアップしてFTPで確認してみてください。メールでも送れます、便利ですねぇ。

wordpress MUの諦めとリダイレクトプラグイン

さんざん格闘をしてきたwordpress MUですが、今のままでは使えないと判断しあきらめました。
今後wordpressとMUが統合されると言われていますので、複数wordpressをインストールするくらいならと検討していましたが、さまざまな部分で融通が利かないためあきらめるに至りました。

で、wordpressを複数インストールする方向で検討していますが、これが1つでなんとかなるならそれでもいいかな~ということで。再度検証開始。

まず、ページの構成から。
ページは例えばnewsという階層を作ってexeample.com/news/index.htmlなどとしたい場合、パーマリンクの変更はページには及ばないので、ページの機構だけを使って実現します。
とりあえず、newsというタイトルのページを空で作成し、過去に紹介したプラグインを利用してページにhtmlを付加します。これでexeample.com/news.htmlというページができました。

次に、indexというページを作成し、親にnewsページを指定します。これだけでexeample.com/news/index.htmlができちゃいます。
ただし、このままでは空のnews.htmlにもアクセスができてしまいます。そこで新たなプラグイン。WordPress & Business メモさんのリダイレクト設定ができるプラグインを参考にRedirectionをインストール。news.htmlにアクセスがあった場合はnews/index.htmlにリダイレクトしてしまいます。

同じ方法でexeample.com/news/old/index.htmlなど深い階層も実現できます。

今回、TOPページはhome.phpを利用して固定ページを作成していますが、ブログの一覧ページも表示したいなということで、アクセスアドレスはexeample.com/blog/でブログページを表示させます。
通常であれば[設定]の[表示設定]で固定ページを選択してあげればよいのですが、今回パーマリンクの設定は[/blog/%category%_%post_id%.html]になっていることが原因なのか、ページでblogを作成し投稿ページでblogを指定しても上記アドレスでアクセスができませんでした。
投稿の単発表示ではexeample.com/blog/category_1.htmlでのアクセスが可能なので、パーマリンクは問題ないといえます。
そこで、indexページを新規作成し、親にblogを指定することにしました。あとは上記方法でリダイレクトを指定して/blog/にアクセスがあった場合は/blog/index.htmlにリダイレクトしてしまいます。/blog/のままではアクセスできませんがリダイレクトされて一覧が表示されるので(404にはならない)問題なしとします。

この件を調査中にis_homeとis_front_pageでの動作に違いがあることがswhrykの日記ではじめて知りました。勉強になりますねぇ~

ようやくテスト稼動にこぎつけた

wordpressMUと格闘すること1週間。ようやくテスト稼動させることまで成功した。

まず、既存のhtmlを置き換えることを念頭においてパーマリンクを作成しなくてはならない。パーマリンクは「/%category%/%postname%.html」にした。これなら現在フォルダで構成している(hoge/index.html)ファイルもフォルダ名と同じカテゴリー名を作成すれば実現できる。

しかし、TOPページはそうはいかない。ファイル名の指定なし(http://exeample.com/)でアクセスした場合は問題ないが、index.htmlを指定して(http://exeample.com/index.html)アクセスした場合ページが存在しない。

そこでまず、ページのパーマリンクにhtmlを付与してくれるプラグイン(.html on PAGES)を導入。次にindexというページ名のページを作成。しかし、ここでページを固定表示してはいけない。固定ページにしてしまうとindex.htmlでアクセスした場合にリダイレクトされスラッシュ付のアドレス(http://exeample.com/index.html/)に変換されてしまう。

そこで、home.phpを作成した。wordpressのテンプレート階層によりhome.phpが存在すればindex.phpよりも先に使用される。このhome.phpに今までhtmlで作成されていたページをループを使わずにそのまま作成した。TOPページはほとんど修正がないので固定作成でも問題はないのだ。(一応NEWSの一覧などはtxtから自動取得して表示するように作りこんである)
コツはここからで、このhome.phpにページテンプレート用の記述を組み込み、ページ編集画面からテンプレートとして読み込めるようにした。これであらかじめ作成しておいたindexというタイトルのページにhome.phpをデザインとして読み込める。indexページには何も記述していないが、そもそもhome.phpにループを作成していないため、ルートでアクセスした場合もindex.htmlでアクセスした場合も同じページが表示できるようになった。

そして実際にルートでアクセスできるようにWordPress MU ブログディレクトリの変更を参考にファイルの修正とコピーを行った。
ここではまったのがオリジナルで作成していたphpファイルをincludeする場合のテンプレートディレクトリの指定方法だ。最初はinclude(‘hoge.php’)としていたが、ルートにアクセス先を変更するとincludeもルートから行ってしまう。気づくまで時間がかかった・・・。これをbloginfo(‘template_directory’)とすることでテンプレートディレクトリを取得し、動的に変更するようにした。(これはこれで後ではまることになる)

ようやくテスト稼動の確認までできるようになった。実際に動作には問題なさそうだ。次はいよいよ複数のwordpressブログをMUひとつで動かすテストです。

WordPress MU と格闘中・・・

相変わらずWordpress MUと格闘中です。URLに関しては「wwwって何?意味あんの?」ってことで、つけていることに意味を見出せないものの、なければURLが簡素化されるなどの利点があり、また、なくてもあってもリライトで飛ばされるのでページが見れなくなるわけではない、という結論に達しました。別に推進派になったわけではありませんが。

WordPress MUのシステムにはいろいろと通常版とは違うところがあるようで。

  1. テーマの編集がサイト上からできない(その機能がない)
  2. 表示設定にフロントページの表示項目がない(つまりページをトップ表示ができない?)

など。他にもあるかも。これって最初にインストールしたときに自動的に生成される管理者ブログ(?)のみに起こることなのか、サブブログにも起こるのか、まだ試してないのでわからない。2は不便だろ?

とりあえず、ヘッダ、フッタ、サイドバーはなんとかテスト段階までいけた。メインindexをページで作ってhome.phpで表示させようと思ったらトップ表示できないので困った・・・

[追記]2については作ったつもりのページが下書きのままになっていた(汗)公開して表示できた。ただ、検索中に気になる記事を見つけた。TOP固定表示にする場合home.phpはだめだという。状況は不明なので試してみるかな。

[さらに追記]home.phpは存在するとindex.phpの代わりにトップページとして自動的に使用されてしまうためにページテンプレートとしてはだめだよという意味らしい。私の構築サイトの場合はそもそもトップページとして使用したかったので問題なかった。ちょっとややこしいことをして構築しているが、詳細はのちほど。

ファーストサーバーでwordpress MU

ファーストサーバーにwordpress MUをインストールする必要性が出てきた。

出たばかりのwordpress MU 2.8.1 をダウンロードしてきて、日本語ファイルは2.7.1のものを使用。

文字化け対策は通常のwordpressと同じ方法が適用できる。

インストールに特に問題は見受けられない、とりあえずサブディレクトリタイプでインストール。ktai styleも稼動を確認。現状は/wordpress-mu/にて稼動。

が、ここで問題が発生。urlを確認するとドメインにwwwがない。サブディレクトリタイプにしたからか?

ブログの管理でドメイン部分にwww.を追加して更新・・・・・・・・・・エラー画面になって更新不能に。

インストールからやり直しか?とりあえずmysqlを覗いてみよう。(悲)