» ファーストサーバーのブログ記事

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をインストールするくらいならと検討していましたが、さまざまな部分で融通が利かないためあきらめるに至りました。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

さて、ながらく更新していませんでしたが、ファーストサーバーにて現在のバージョンの新規インストールの案件がでましたので、覚書です。

まずはコンフィグレータにてデータベースの設定です。おっと忘れずにPHPをDSO版に切り替えてください。PHPインストールからバージョンの切り替えです。htaccessを設置するため必須です。

ではデータベース管理からデータベース用管理者アカウントの発行を行います。メールで届きますのでなくさないようにしましょう。次にデータベースサービスの起動です、ここまでは簡単ですね。
ここからデータベースを作成します。データベース操作でphpMyAdminを起動します。MySQL 接続照合順序はutf8_general_ciでデータベース名(wordpressやblogなど)を入力して作成を押してデータベースを作成します。

次にファイルのアップロードです。FTPソフトを使用してサーバにwordpressフォルダをアップロードします。好きな名前にリネームしてかまいません、とりあえずwordpressでインストールしてblogフォルダで運用するためそのままアップロードしました。

いよいよインストールです。http://www.example.com/wordpress/wp-admin/install.phpへアクセスしてwp-config.php ファイルを作成するをクリックしましょう。設定情報は以下の通りです。
データベース名:データベース作成で作ったデータベース名
ユーザー名:phpMyAdminにログインするときのアカウント(別にwordpress用に作成している場合はそのアカウント)
パスワード:phpMyAdminにログインするときのパスワード(別にwordpress用に作成している場合はそのパスワード)
データベースのホスト名:fsv(数字).mysql.db.fsv.jp(phpMyAdminの上部にも表示されています)
テーブル接頭辞:wp_(デフォルトのままでいいです。複数インストールする場合などは変更しましょう)
以上でインストールすればブログタイトルなどを入力する画面に進めます。ただし、ここではまだ文字化け対策を施していませんので、日本語のタイトルなどを入れるのは控えましょう。

インストールをするとパスワードが表示されます。忘れずに控えましょう。先ほどの画面で入力したメールアドレスにも送信されているはずです。

これでログインすれば管理画面に入れます。忘れずにパスワードを変更しておきましょう。

最後に文字化け対策です。htaccessを作成してインストールフォルダにアップロードします。
ついでにパーマリンク用設定も施してしまいました。

php_flag mbstring.encoding_translation off
php_value default_charset "UTF-8"
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>

これでタイトルなどに日本語を入力しても文字化けしないはずです。

以上簡単ですがファーストサーバーへのwordpress2.7.1のインストールは完了です。

当サイトもwordpressに変更してからしばらくたちますが、3月末にてwordpressMEを公開していたサイトが閉鎖してしまいました。そこで、wordpress日本語版 バージョン2.5へ変更しようとの試みです。

前回までファーストサーバーの仕様変更によりテストサーバの立ち上げなどどたばたしておりましたが、フォーラム(ここも3月末にて閉鎖)にて話題を投げていたところ、ファーストサーバー側の仕様変更という形で収束いたしました。

ついでのご報告ですが、コンフィグレータでPHP5(DSO)へ切り替えを行えばPHP4(DSO)で動いていたwordpressはそのままで動きます。日本語化の方法についても以前書いた方法で問題なく行えました。
パーマリンク変更についてはダッシュボードの修正とプラグインの追加でちょっと記入していましたが、相変わらずデフォルトでは変更が有効になりません。(.htaccessに関する記述はダッシュボードの修正とプラグインの追加に追記しておきます)

で、wordpress日本語版 バージョン2.5についてですが、ファーストサーバーのPHP5(DSO)で新規インストールして動作確認しております。MEからのバージョンアップは予定しておりませんが、希望があればやってみます(笑) 今ならMEで動いているサーバがまだあるし。

バージョンアップに関しては当サイト(チカッパサーバ)で実証することにしました。2.5はダッシュボードなどメニューまわりが大きく変更され使いやすくなっています。バージョンによっては画像のアップロードなどにバグがあるなど注意も必要ですので、フォーラムをよく読んで対処法を見つけておきましょう。

順を追って説明をしますが、ほとんどはTaiさんのブログを参考にしていますのでチカッパ以外のサーバであるとか環境が違う場合は一度読んでみることをお勧めします。※参考にした記事はこちら(アップグレードをどうするか?

wordpressME2.2.3からwordpress日本語版2.5へのバージョンアップ方法(チカッパサーバ版)

1.バックアップをとる(常識ですね!)

まずはwordpressのバックアップをとります。私の場合はFTPでwordpressフォルダを まるごとダウンロードしました。
さらにデータベースのバックアップをとります。WordPress Database Backupを使用してみました。ですが、プラグインは動くのですがリストアの方法がわかりません(汗) おそらくPHPMyadminなどでインポートでしょうけど。
一応wordpressME2.2.3に標準でついている[管理]の[エクスポート]でXMLをダウンロードしてから「アップグレードをどうするか?」にある「FTP でアップグレード」を試みました。

2.FTPでアップグレード

ダウンロードしたwordpressフォルダをリネームします。(例:「wordpress」->「_wordpress」)
展開したwordpress日本語版2.5フォルダをダウンロードしたフォルダ名に変更します。(例:上記例から「wordpress」)
今回はバージョンが大きく変更されるので、wp-config.phpはコピーせずに中身だけ移しました。
 define(‘DB_NAME’, ‘putyourdbnamehere’);    // データベース名
 define(‘DB_USER’, ‘usernamehere’);     // ユーザー名
 define(‘DB_PASSWORD’, ‘yourpasswordhere’); // パスワード
 define(‘DB_HOST’, ‘localhost’);    // データベースサーバ (ほとんどの場合変更する必要はありません)
 define(‘SECRET_KEY’, ‘put your unique phrase here’); // 固有のフレーズに変更してください
 $table_prefix  = ‘wp_’;   // 半角英数、アンダースコアが使用できます。
変更したのはここだけです。元の内容をそのままコピペしました。(もちろん ‘putyourdbnamehere’などの中身だけです)
現在のブログでは画像を使用していませんので、もし画像を使用しているなら/wp-content/uploadsもコピーする必要があるかもです。

次に、FTPソフトでサーバにアクセスし、サーバ上の旧フォルダもリネームします。そのまま新フォルダをアップロードです。
私の場合はテーマにclassicを使用していたのでアップロード後すぐにブログが表示されました。別のテーマを使用している場合でもテーマが存在しなければデフォルトが使用されるはずですので表示はされると思います。
そのまま管理ページにログインしようとすると「アップデートが必要です」と促されます。リンクをクリックするだけでアップデートされます。相変わらずwordpressは簡単ですね♪

3.テーマやプラグインのアップグレード(?)

テーマやプラグインはバージョンの違いで使えないものもあるかもしれません。特にプラグインでメニューまわりを変更しているものは2.5では動かない可能性大です。TinyMCE関連も大きく変更されているようです。(以前の記事は使えませんね・・・)

ファーストサーバーにてPHP5の導入がコメントされました。

平素よりファーストサーバをご利用いただき、誠にありがとうございます。

弊社にて提供しております PHP について、 2008年1月8日より PHP5への対応を開始いたしました。

また、従来提供の PHP4 は今後提供を終了する予定でございますので、現在PHP4にてご利用中のお客様は、ご利用のPHPプログラムの見直しをお願いいたします。

ただし、PHP5の提供はCGI版になりプログラムの変更は免れない模様。
以下に変更内容を示す。

PHP4とPHP5とでは、弊社でのご提供において以下の相違点がございます。
ご確認いただき、プログラムの見直しを行ってください。

  PHP4(従来) PHP5
提供形態 DSO版 CGI 版
プログラムへのパス記述 不要 必要
ファイルのパーミッション 644 755※アップロード後に変更が必要
プログラムの拡張子 .php .php5

つまり、wordpressに関していえば

  1. 拡張子の変更 .php → .php5
  2. パーミッションの変更 644など → 755
  3. phpパスの追加

の作業が、最低でも必要になる。

ここで、拡張子の変更に関してはFAQに答えがあった。

拡張子「.php」でPHP5プログラムを動作させたい。
「.htaccess」ファイルの設置によりお客様にて設定の変更が可能です。手順は下記をご参照ください。
====================================
■.htaccess の設置方法(.php でPHP5プログラムを利用する場合)
====================================
 1) テキストエディタに下記の内容を記述します。

—–ここから—–ここから—–ここから—–
AddHandler cgi-script .php

—–ここまで—–ここまで—–ここまで—–

 ※記述の最後には必ず「Enter」キーなどで改行を挿入してください。
 2) 1)のファイルを .htaccess という名前で保存し、サーバにアップロードします。
※「.htaccess」は、認識させたいファイルと同階層にアップロードしてください。
※「.htaccess」は、wwwディレクトリ以下全てに同じ設定をされる場合は
wwwディレクトリ直下に、特定のディレクトリのみに設定
される場合は特定のディレクトリにだけアップロードしてください。
※.htaccessはサーバの挙動を制御するものですので、取り扱いには
十分にご注意ください。

.htaccessに記述したうえでアクセスできることは確認した。(もちろんPHPは動かない。)

次にパーミッションの変更に関しては「FFFTP」などであれば拡張子ごとに転送時の動作を設定できるためあらかじめ転送設定に.PHPは755で転送するように設定しておけばよい。

最後のPHPパスの追加であるが、すべてのPHPファイルの先頭に「#!/usr/bin/php」の記述が必要になる。記述なしでは動かなかった。
いろいろ調べてみたが他に方法はなさそうなので、すべてのPHPファイルに追加することにする。他の方法に関する情報があったら是非教えてほしい・・・

WordpressはSQLデータベースに記事が保存されていることはご存じだと思う。
通常のホームページであれば、ローカルで作成したhtmlファイルをアップロードするわけであるので、ローカルにもサーバにもファイルが存在する。ローカルのファイルをバックアップしておけばよほどのことがない限りファイルの消失は避けられる。

しかし、Wordpressを含めブログのシステムはブラウザ上から記事を投稿し、保存先もサーバ上のSQLデータベースに保存されている。したがってローカルに記事のコピーは存在しない。
当然のことではあるが、バックアップを取る際にはこのSQLデータベース上の記事データを保存しなくてはならないが、通常考えられるやり方はphpMyAdminでバックアップを取る方法などであるが、例えばファーストサーバの場合コンフィグレータにID・パスを入力してアクセスし、さらにphpMyAdminにID・パスを入力してアクセスするなど手間が多い。

そこで登場するのがWordpressプラグインのWP-DBManagerである。
これは、Wordpress上からSQLデータベースのバックアップを取ってしまおうという、とても便利なプラグインであり、復元もできるすぐれものである。
今回はWP-DBManager2.11(日本語版)MMRT daily lifeさんのページからダウンロードさせていただいた。

MMRT daily lifeさんのページにも解説が書かれているが、例の通りファーストサーバでの運用には若干読み替えが必要であるため記憶のかけらを残しておく。

mysqldumpのパス: /usr/local/mysql/bin/mysqldump
mysqlのパス: /usr/local/mysql/bin/mysql

と書かれているが、ファーストサーバでは赤文字が消えない。パスが違うことは容易に想像できるが、ファーストサーバのヘルプを調べてもそうそうパスの記述まで出てこない。

コンフィグレータにアクセスしphpMyAdminを起動し調査したところ、mysqlのパスは「/usr/local/mysql」であることが判明した、赤文字も消えた。
しかし、mysqldumpのパスだけはどうしても探せなかった。一応「/usr/local/mysql」を入力することで赤文字は消えたが、DBバックアップの際には「MYSQLダンプロケーション」を「はい」にしないとバックアップに失敗する。
一応この設定でバックアップファイルが作成されたことまでは確認済みであるが、検証を行っていないため、使用に関しては自己責任でお願いする。

さて、ファーストサーバー用のインストール記事も完成したことなので、違うことに挑戦です。
wordpressを設置ディレクトリとは違うディレクトリで運用する方法です。

参考にしたページはpower source*さん。ファーストサーバーでは少々エラーがでたので追記します。

「設置ディレクトリとは違うディレクトリ」というのは、例えば「http://www.example.com/wordpress/」というディレクトリにインストールした場合でも「http://www.example.com/」や「http://www.example.com/blog/」でページを見れるようにするということ。ルートディレクトリにはいろいろファイルを置きたくないとか、今回の私の場合はblogディレクトリはすでに存在しているけどwordpressを仮に設置して後ほどblogディレクトリで運用したいと思い、wordpressディレクトリにインストールしつつ、blog2ディレクトリで見れるように加工し、正規運用の際にはblogディレクトリで稼働させようと画策したものです。blogディレクトリの中身を壊さずかつ運用したままwordpressをテスト稼働させ、再インストールなどをしなくても設定のみでblogディレクトリで運用可能です。

詳細はpower source*さんのページを見ていただくとして、ファーストサーバー用に変更したこと。
肝は.htaccessのアドレス表記方法。
index.phpの4行目を以下のように修正します。

require('/virtual/www/wordpress/wp-blog-header.php');

power source*さんのページでは

require('./wordpress/wp-blog-header.php');

となっていますが、エラーが出たので上記のように修正しました。ファーストサーバーのディレクトリ構成の問題だと思います。

 

2010年3月
« 2月    
 123456
78910111213
14151617181920
21222324252627
28293031  

Twitter

Follow @shokun0803 (23 followers)