メモ『CPIでパーマリンク設定を変更した、UTF-8な文字コードのWordPressを構築する方法』

08. 16. 2008

WordPress

はまった。

CPIではMySQLの文字コードがEUC-JP固定。
最新のWordPressを使おうと思うと、ちょっと問題がある。

ただ、この辺りは解決方法はネット上でもチラホラと見つけられるし、実際クリアできたのだが、今度はパーマリンクをデフォルト以外に変更するとエラーが発生。困った。

結局、半日問題と格闘して見つけた正解は『PHPのバージョンを5.2.4に』って事。

以下に、CPIのサーバーを使ってWordPressを構築する際の問題と解決法をメモっておいたので、心当たりのある方は目を通してもらえればと思う。と言うか自分用メモ。
(※サーバー契約時期やプランによっては内容が異なる事もあります。)

まず最初に

CPIのMySQLでUTF-8を使う方法に関しては下記サイトを参照させて頂きました。

[WordPress]CPIのサーバでUTF-8で設定する方法 ? BeLive : Blog Archive
CPIでWordpress ME2.2が文字化けする - 我流天性 - がらくた屋

条件・設定等

  • 共用サーバーシェアードプラン 2007 / G10 (相当)
  • PHP 5.2.4(←ここがポイント)
  • MySQL 5.0.26
  • WordPress 2.5.1(日本語版)
  • WordPressを新規構築

まずはphp.iniの設定

早速、作業に取りかかります。コントロールパネル(サーバーの)にログイン。
『お客様情報』→『プログラムのパスとサーバの情報』→『PHP 5.2.4』でphp.iniを表示。

表示されたphp.iniをコピーしておき、下記の5行を書き換えます。

mbstring.language = Japanese;
mbstring.internal_encoding = utf-8
mbstring.encoding_translation = On
mbstring.http_input = UTF-8,SJIS,EUC-JP
mbstring.detect_order = auto

書き換えたphp.iniを /secure/ 内に適当なフォルダを作成してアップロード。

FTPルート/secure/wp/php.ini

と言った感じに。

.htaccessの編集

先ほど書き換えたphp.iniを適用させるために、.htaccessを編集して行きます。
.htaccessに下記行を書き加えて、Wordpressをインストールする階層(フォルダ)へアップロードします。

AddHandler x-httpd-php524 .php
Options +FollowSymLinks

suPHP_ConfigPath /usr/home/(CPIのユーザID)/secure/(php.iniをアップロードした階層・フォルダ名)/

※『()』内はそれぞれ、該当する文字列に書き換えて下さい。
※『AddHandler〜』で始まる最初の行はPHPを適用するために必要な記述。

MySQLの設定

BeLiveによると『通常、CPIの設定ではMySQL5の文字セットは「ujis」となっている。それを無理矢理、「utf8」に変更する。』ように書いてあるのだが、TOKIZAKIの環境では、既に文字セットが「utf8」になっていた。

そのためこの作業は行っていない。
文字セットが「ujis」な方は下記方法でどうぞ。

まずは文字セットを確認。

phpMyAdminにログインして、メインページから『エクスポート』→『任意のDBを選択』→『実行する』をクリック。

データベースの内容が表示されます。
上から15行目あたりに注目。

CREATE DATABASE `あなたのDB` DEFAULT CHARACTER SET ujis COLLATE ujis_japanese_ci;
USE `あなたのDB`;

となっていたら、文字セットを変更しましょう。

文字セットの変更

phpMyAdminから、DBを選択→上部メニューの『SQL』をクリック。

『データベース (データベース名) 上でクエリを実行する』の画面内に下記行をコピペして『実行する』

ALTER DATABASE `あなたのDB` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

終了したら、もう一度DBをエクスポートして文字セットが変更されている事を確認しておきましょう。

WordPressをインストール

後は、通常通りWordPressをインストールすればOK。

ちなみに、wp-configで指定する『ホスト名』は『localhost』では無く、『127.0.0.1』でも無く『127.0.0.1:3307』だ。
(TOKIZAKIは『127.0.0.1』と誤った指定をしてしまって数分無駄にしました!)

PHPのバージョンを5.2.4にしたので、パーマリンク設定を変更しても問題なく動作すると思います。
PHPのバージョンを4.4.7以下にすると、パーマリンク設定を変更したとたん『403』になってしまうかと思います。(TOKIZAKIの環境ではなりました)

参照:CPI上でWordpressでパーマリンク構造を変更した後、アクセスできない - 我流天性 - がらくた屋

あ〜疲れた。
ここまでしてCPIでWordPressを使う価値があるのか…。
考えたら負けです(><)

【 追記 】
MOO@BeLiveさんよりコメントを頂きました。
各種レンタルサーバーでWordpressを運用する時のヒントになりそうです。

レンタルサーバ情報 - WordPress Codex 日本語版
掲載情報:さくら、ロリポップ!、BlueHost、CORESERVER.JP、heteml、XREA、CPI

あとで読む

“メモ『CPIでパーマリンク設定を変更した、UTF-8な文字コードのWordPressを構築する方法』” に対するコメント・トラックバック

  1. □ NAME : MOO@BeLive

    どうも、参照ありがとうございます。
    CPIでUTF-8化で悩んでいる方が多いみたいなので、WordPress 日本語 Codexにもリンクを用意してます。
    http://wpdocs.sourceforge.jp/%E3%83%AC%E3%83%B3%E3%82%BF%E3%83%AB%E3%82%B5%E3%83%BC%E3%83%90%E6%83%85%E5%A0%B1

    CPIのUTF対応はまだまだですが、お互いがんばりましょう。

  2. □ NAME : TOKIZAKI

    MOO@BeLiveさんコメント&情報ありがとうございます。
    また、サイト内の情報、大変参考になりました。

    先日、CPIの営業さんとお会いしたんですが、UTFに関する要望を出しておくのを忘れました(><)しまった〜。

    (ちなみに、ビジネスパートナー専用サイトから、地域担当を指名して問い合わせすると、オリジナル仕様にも(なるべく)答えてくれるらしい・・・。UTFの件も答えてくれるかも?※今回はテストサーバーを使用してます。)

  3. □ NAME : tk

    初めまして、とても参考になる記事ありがとうございます。

    コメントにて大変失礼なのですが、一つ質問させてください。

    CPIのシェアードプラン X10で同様のことを試しているのですが、
    文字セットのところで、うまくいかないのです。

    MySQL5のデータベースが
    ・information_schema (17)
    ・x10xxxx (0)
    とありまして、information_schemaはutf8_general_ciなのですが…
    wordpressをインストールする「x10xxxx (0)」はujisでしたので、
    文字セットの変更の部分のクエリを実行しました。

    するとエラーメッセージ(#1044)
    #1044 - Access denied for user ‘(データベース名@localhost)’ to database ‘** ã
    と上記が出てきて変更が出来ないのです。

    お分かりでしたらご教授願いたいのですが…
    よろしくお願いします。

  4. □ NAME : TOKIZAKI

    tkさんコメントありがとうございます。
    エラーの件ですが下記方法を試してみて下さい。

    CREATE DATABASE `** あなたのDB **` DEFAULT…

    の中の『** あなたのDB **』部分をDB名に変更してみて下さい。
    つまりDB名が『x10xxxx』だった場合、

    CREATE DATABASE `x10xxxx` DEFAULT…

    と。

    記事内の記述の仕方が問題あった(わかりにくかった)かもしれません。
    (記事内修正しておきました)
    スイマセン。

    ちなみに、問題部分が上記部分では無いようでしたらまたコメント頂ければと思います。

  5. □ NAME : MOO@BeLive

    私もビジネスパートナーなので、だいぶ前からメールやアンケート、そして地域営業にも「UTF対応して」とお願いしているのですが、なかなか対応してもらえません。
    困ったものです。

    P.S.
    tkさんのトラブルの原因は私が日本語で書いたことが原因ですね。すみません。

  6. □ NAME : tk

    TOKIZAKI さん

    お答え頂きありがとうございます。
    すんなりと文字セット変更することが出来ました。

    MySQLは初心者なもので、ALTER DATABASEの書き方を分かっていませんでした。。

    WPのインストール後もブログタイトルの日本語も無事表示されました。

    お忙しい中、本当にありがとうございました。とても勉強になりました。

    MOO@BeLiveさん
    いえいえ、僕が読み解く力がなかったので…すみません。
    `** あなたのDB **`の「**」をいれたままDB名入れていてエラー起こしていました…

  7. □ NAME : TOKIZAKI

    ● MOO@BeLive さん

    ほんと、容量UPなんかより、UTF対応の方を優先して欲しいですよね…。

    ● tk さん

    インストールお疲れさまでした。
    無事日本語表示が出来たようで安心しました。

    楽しいWPライフを!

  8. □ NAME : r999.homeip.net » wordpressで日本語のコメント投稿が消える

    [...] ふざけんなメガネとおもいつつ/ect/php.ini を修正しました。 修正箇所は このサイトを参考に 僕が修正したのは mbstring.http_input = mbstring.http_output = の2行で mbstring.http_input = UTP-8,SJIS,EUC-JP mbs [...]

コメントの投稿は下記フォームから »

ページTOPへ