LinuxMySQLWordpress日記

WordPress ME2.0系から2.2系にお引越し(EUC-JPからUTF-8に)

1 Mins read

昨今のServerサイドのWeb環境文字コードはMS=Shift_JIS、Linux=EUC-JPだったが、
どうやらUTF-8に落ち着いてきたらしい。
他国の言葉もこれで一括対応出来る、マルチ言語対応が楽だからだろう:roll:

UTF-8は1Byteから4Byteで1文字を表現する可変文字コードである、
多少脆弱性の問題などあるらしいがこれが主力の文字コードときっとなるなぁ~詳しくはWiki等で:razz:

さて、Wordpress MEも2.2系からUTF-8のみの対応になったらしく、
今後、EUC版はバージョンアップが出来なくなるので、

現在のphp4系、MySQL4.0系、Web文字コードEUC-JP環境から
新版のphp5系、MySQL5.0系、Web文字コードUTF-8環境にお引越しをやります。
さらに試しにドメイン名も変えちゃいます!

もちろん、問題点が続発したので記述しておきます:evil:

作業順序
1.旧Wordpress2.0系のコンテンツ及びDB BackUp
2.新サーバーにBackUpをコピーし、起動&正常動作確認
3.Wordpress2.2を上書きしVersionUp、起動&正常動作確認

こんなところでまず

1.旧Wordpress2.0系のコンテンツ及びDB BackUp

・phpMyAdminでテーブル群をsqlとしてバイナリファイルでBackUp
 この時にCreate Databaseはいらない
・コンテンツをFTPツールでBackUp
・・・無事に終了

2.新サーバーにBackUpをコピーし、起動&正常動作確認

・sqlファイルをバイナリーEditで開き、URLとサーバーパスを置換で変更、普通のEditだと駄目ですよ:cool:
 例:URLは「hoge.mein.jp/blog」などを「hoge2.main.jp/blogman」に置換
 例:Server内コンテンツPathは「/usr/local/htdocs」などを「/usr/local/htdocs2」に置換
 あくまでドメイン(URL)を変える時なので変えない人は上記作業はいらない
・phpMyAdminで新規DBを作成する。文字コードは「UTF8」なので照会は「UTF8_unicode_ci」でCreate!
・先ほどBackup&編集したsqlファイルをphpMyAdminで作成したDBに対してインポート処理
 BackupしたsqlファイルはEUC-JPなので、ファイル種類のオプションは「eucjpms」にしてsqlオプションは「MySQL4.0」互換でGo!
・FTPでbackUpコンテンツをUpLoad!

完了!・・・・と行きたい所だけど、もちろんそうは問屋が卸さない:cry:

問題点
1.Wordpress内のオプションの文字コードがEUCのまま
 
2.これまたオプションのrole権限がEUCのまま
 「Warning: Invalid argument supplied for foreach() in /XXXX/wp-includes/capabilities.php on line 19」などのエラーがでる
 
3.テーマファイルがEUCのままなので日本語を使用している場合は文字化けする
 UTF-8はASCIIと互換があるのでASCII系の文字列の場合はEUCファイルでも問題ないが、日本語を使用しているWordpressファイルは基本的に文字化け対象に・・・
 
4.Wordpress2.0系のdbアクセス部分にMySQL5.0系のUTF-8に対応するコードが必要
 MySQLがUTF-8の場合、アクセス時に教える必要がある。
 
5.wp-config.phpの修正

解決方法 (注:DB系のプレフィックス文字「wp_」は環境により違う)
1.Wordpress内のオプションの文字コードがEUCのまま

A.phpMyAdminで「wp_options」テーブルを開き、option_nameが「blog_charset」のレコードを開くそして「option_value」値を「UTF-8」に変更しUpdate!

2.これまたオプションのrole権限がEUCのまま

A.phpMyAdminで「wp_options」テーブルを開き、option_nameが「wp_user_roles」のレコードを開く、「option_value」値が

「a:5:{s:13:"administrator";a:2:{s:4:"name";s:6:"管理人";s:12:"capabilities";a:31:」

などになってると思いますが、ここがみそで「s:13:”administrator”」はs:13とは文字数を表していてEUCでもUTF-8でも”administrator”は13Byteなのですが、「s:6:”管理人”」などはEUCだと全角2Byte×3=6Byteですが、UTF-8だと全角が3Byteなので=9Byteでなくてはいけません。なので「s:9:”管理人”」として、他にも漢字、ひらがながあれば同じように修正してからDBをUpdateする。

3.テーマファイルがEUCのままなので日本語を使用している場合は文字化けする

A.これはEUCファイルをUTF-8文字コードに変換できるツールで修正して:razz:
KanjiTranslatorなど良いですよ!

4.Wordpress2.0系のdbアクセス部分にMySQL5.0系のUTF-8に対応するコードが必要

A.これはphpファイルを修正する必要があります。
「wp-includes/wp-db.php」ファイルの以下の部分に「 mysql_query(“SET NAMES utf8”, $this->dbh); 」を追加する

function wpdb($dbuser, $dbpassword, $dbname, $dbhost) {
$this->dbh = @mysql_connect($dbhost, $dbuser, $dbpassword);
if (!$this->dbh) {
...
}
mysql_query("SET NAMES utf8", $this->dbh);
$this->select($dbname);

5.wp-config.phpの修正
A.これはEUCの部分をUTF-8と変えてください。
また、2.2系からconfigに追加がありますので詳しくはWordpressMEを参照して:roll:

以上の対応で修正完了、そのあとWordpress2.2系を上書きコピーしてupgradeすればOK:razz:

関係ないけどこんなのありました!
FFFTPでUTF-8を扱える拡張版・・・ここに・・・作者さん使わせて頂きます!感謝

Read more
Linux日記

Fedora7にxamppをInstall

1 Mins read

VMの続きですが、xampp for linux版の1.6.1をインストールしてみました。

・「su -」でrootになって、ここxamppから最新版をDownload!
 
・「tar xvfz xampp-linux-1.6.1.tar.gz -C /opt」コマンドで解凍&/opt直下にlamppをコピー
 注意:以前の開発名がlamppだったのでファイル名やconfファイル等がlamppになっている箇所が多々ある!?
 
・「/opt/lampp/lampp start」で起動確認、うまく起動できたらブラウザから「http://localhost/」で確認
 
・OKなら「/opt/lampp/lampp security」でセキュリティー設定

・OS起動時にデーモンとして走らせるなら
1.「/opt/lampp/lampp」を「/etc/rc.d/init.d/」にコピー
2.「chkconfig --add lampp」でサービス追加
3.「chkconfig --list」でランレベルを確認(基本的にそのままでOK

以上・・・本当はmake、./configure したい・・・:wink:

Read more
Linux日記

Linuxコマンド

1 Mins read

Linuxを少し使ってなかったらコマンドを忘れたので覚書しておく(汗)

・コマンド履歴は「history」
 「!」+履歴番号で履歴コマンド実行、「!10」など
 「history | grep yum」などで検索できる
 検索情報をファイルに書き出し、読み込みがオプションで可能
 
・タブキーでファイル、ディレクトリ名を補完してくれる
 「/o」の状態でタブ押すと「/opt/」みたいな感じ
 
・シェル実行は「./」+ファイル名
 
・サービスの追加、変更等「chkconfig」
 「chkconfig --list」など
 ちなみにDebianは「update-rc.d」
 
・コマンド結果ファイルに上書き「>」
 「uname --all > a.log」など
 
・コマンド結果ファイルに追加書き込み「>>」
 「uname --all >> a.log」など
 
・「>」、「>>」の書き込みだと画面に結果が出力されないので
 結果表示とファイル書き込みをするために「tee」を使う。
 「./configure | tee apacheconfig.log」で上書き
 「./configure | tee -a apacheconfig.log」で追加書き込み
 
・スケジューラーは「crontab」
 編集する時はviから呼ばずに「crontab -e」のオプションで起動(viだが:roll:)
 
・ネットワーク情報は「ifconfig」

こんなもん?:roll:

Read more
LinuxVMware日記

Fedora7にVMware-toolboxをInstall

1 Mins read

VMwareにFedoraをインストールするとX WindowがDefaultで800×600の解像度になりますが、
今の世の中、800×600解像度はキツ過ぎる。ってことでVMware-toolboxをインスト!

1.前提としてFedoraの開発環境(gccなど)が入っていること
  無い場合はInstall!
 
2.linux.isoファイルをホストOSのVMwareインストールフォルダから取得し、
  Fedoraインストール時と同じくCDイメージにセットしてFedoraを起動
 
3.uname --all コマンドでkernelのバージョンを確認
Linux css03 2.6.20-1.3104.fc7 #1 SMP Sat Apr 21 22:20:43 EDT 2007 i686 i686 i386 GNU/Linux
 
4.yum list kernel-devel コマンドで同一kernelのdevelopか確認
  違うようならyum install でkernel-develをkernelのバージョンと同じものをインストール
  バージョン kernel-devel-2.6.20-1.3104.fc7.i686
 
5.CDからVMwareTools-5.5.4-44386.tar.gzを取得し解凍
 
6.cd vmware-tools-distrib
  ./vmware-install.plでインストール開始!もちろんシェル起動なので ./ 付けてね^^
 
7.基本的にすべてDefault(Enter)でOKなはず・・kernelのヘッダが最後に必要になるが、
  これも先ほどのyumでkernel-develが入っていればDefault Pathでいける
  Pathが違っていれば確認して手入力。lsでリンク作っても良いよ
 
8.シャットダウン
 
9.ISOを抜いてから起動(これは任せる!)
 
10.起動後はめでたく解像度が変えられるはず!
   必要ならvmware-toolboxも使ってあげてください。

以上

Read more
LinuxVMware日記

VMwareにFedora7をInstall!

1 Mins read

Linuxってどうよ?って感じでインスコしてみました:razz:
(本当は会社のKnowledgeWebどうしようと思って・・・インスコ開始!)

VMはVer5.54、まずはWindowsがホストでFedoraがゲスト開始。
1.イメージはlinux kernel2.6X系選択
2.メモリーは812MByte、HDDはIDEで40GByteで2GByteでストライプ
(リアルで容量を確保しなくてよい&LinuxでSCSIはやめたほうがよい)
3.後は標準でイメージ作成・・・NIC、CD、etc・・・

Fedoraはこの記事時点でVer7Test4が最新なのでISOイメージのDVD版をDownload!
4.VMを起動する前にCDにISOイメージセット
5.VW起動!ポチッ
6.シロートなのでGUIでインストール・・^^
7.インストールのオプションはX Window、開発環境、GUIネット、開発ライブラリー、
  管理者ツール、ベースとこんなところ
8.インストール終わったらFedoraをシャットダウンしてCDからISOを抜く、
  このとき注意でCDオプションのレガシーをチェックON ← 無いと起動でコケル
9.終了:evil:

Read more