CPIレンタルサーバーな、なんじゃごらーーーーーー!?

CPIレンタルサーバーWordPressご利用の場合、こちらのCPI公式ガイド「FTP を用いて手動でインストールする場合」に詳しく書いてあるのだが、 ここで紹介する不具合に必ずぶちあたるだろう、その備忘録。DBホストに独自ポート番号あてることや、難解な文字化け対策が必要で、幾重にもハードルが立ち並び、ハマった人に参考になればと思います。

スポンサードリンク

WordPress 4.4.2 インストールに必要な作業概要

DBポート指定、PHP利用コード付htaccess設置、UTF-8化済みphp.initのアップロード、など、調べるとCPIサーバーにはWordPressに必要な様々なオンラインヘルプ非公式対策が必要らしい。まとめて案内されているところがないので、下記に図表化した。

原因  対策箇所
前準備 PHP5利用の有効化が必要  右記コード記述した.htaccessファイルをドキュメントルート(html)に保存 AddHandler x-httpd-php524 .php
不具合1
インストールエラー
MySQL5利用のためのポート指定が必要  wp-config.phpのDB_HOST値 127.0.0.1:3307
不具合2
投稿だけが文字化け
サーバーの文字コードがEUTで古い。
UTF-8に要変更
管理画面のコントロールパネルで、「ホーム > お客様情報 > プログラムのパスとサーバの情報 > PHP iniの設定情報 > PHP 5.2.4」と進みコードをコピー(そのページでは編集不可)。コード中の下記部分を修正。

  • (修正前)mbstring.internal_encoding = EUC-JP
  • (修正後)mbstring.internal_encoding = UTF-8
  • (修正前)mbstring.encoding_translation = On
  • (修正後)mbstring.encoding_translation = Off
  • ファイル名「php.ini」としwp-adminフォルダに保存。
  • パーミッションを640に
不具合3
CF7文字化け
POSTの値の文字化け  /.htaccessにphp.iniの場所を明示必要 Options +FollowSymLinks
suPHP_ConfigPath /usr/home/ユーザーID/html/wp/wp-admin/
不具合4
パーマリンク変更エラー
mod_rewrite  /wp/.htaccessにmod_rewrite有効を明示 Options FollowSymLinks

この具体的な対策を下にひとつづつ説明します。

不具合1)インストールでエラー(原因:WP4.4.2以上にはDBのポート3307指定が必要)

CPIレンタルサーバー(KDDIコミュニケーションズ運営のホストsecure.ne.jpドメイン)へのWordPressインストールをレンサバ公式オンラインヘルプ通りに試みた際に、wp-install.php実行で

データベースのホスト、あるいはパスワードが間違って居るか、データベースがダウンしている可能性があります

とのエラー表示にドハマり、無駄に数時間失ってしまった。

原因はDBポートの指定

原因は、サーバーにDB標準ポート以外のポート番号が設定されており、wp-config.phpのホスト項目にポート番号を明示する必要があったこと。パーミッション設定やWP、PHPなどのバージョンが原因だとみていて失敗。

DBポートの指定方法

ポート番号を明示するところはwp-config.phpの「DB_HOST」(デフォルトではlocalhost)。その欄に「:ポート番号」の要領で追記すればOK(下記参照)。これで無事にインストール画面が出た。

define( 'DB_HOST', '127.0.0.1:3307' );
define( 'DB_NAME', 'wordpress_db' );
define( 'DB_USER', 'wordpress_username' );
define( 'DB_PASSWORD', 'wordpress_password' );

CMSインストールから外されたWordPress

ちなみに、レンサバ公式オンラインヘルプではWordPressのインストール方法をガイドしているものの、実際は記述されているように出来ず(2016.2月現在)代わりにショッピングツール内にMovableTypeが案内されている。想像だが、WordPressのバージョンアップとサーバーのPHPバージョンなどが合わなくなったため、WPは標準からはずされたのだろう。オンラインヘルプ最新ニュースが2008年で、現在まで約10年間更新が無い点、使用をためらう不安なサーバーだ。

以上の理由からWordPressをカスタムインストールしたのだが、wp-install.phpの段階で上記エラー表示、というワケだ。こうなると自力で解決しなくてはならない。

CPIレンタルサーバーsecure.ne.jpドメインの仕様

さて、本題のWPインストール時のエラーだがCPIレンタルサーバーの仕様上、MySQL 5.4を利用するにはDBホストに独自ポート番号(3307)があてられている。このブログを書いている時点(2016.2)で最新のWordPress(4.4.2)を使うにはMySQL5.6 + PHP5.6以上 を使う必要があり、そうするには、レンサバのオンラインヘルプによると下記の作業が必要だった。

secure.ne.jpドメインのオンラインヘルプ

secure.ne.jpドメインのオンラインヘルプにはDBの独自ポート番号について記述があるが、WordPress設定(wo-config.php)どこにポート番号を入力するかはもちろん説明がない。

参考にしたブログ

MySQL が 3306 番以外のポートで動いている時の WordPress 設定

不具合2)WordPressのタイトルや投稿だけが文字化けする

タイトル、投稿などに入力した日本語が、保存ボタン(公開ボタン)を押すと文字化けする。phpMyadminでの言語設定でUTF-Generalに設定されているし、テーブルに日本語を直接入力しても文字化けしないところをみると、さらに上位のところの不具合に見える。

どうやら、CPIサーバーのデフォルト文字コードがUTF-8ではないのことが原因で、このサーバーにWordPressを設置したら日本語入力ができず半角英数文字しか保存できないようだ。解決方法は、管理画面コンパネからphp.iniの設定を取り出し編集後サーバーに保存する、というハードルが高いもの。その方法は下記の通り。

  1. CPIレンタルサーバーのコントロールパネルへ(https://ユーザーID前5文字.secure.ne.jp/admin/)
  2. ホーム > お客様情報 > プログラムのパスとサーバの情報 > PHP iniの設定情報 > PHP 5.2.4…へと進む
  3. PHP 5.2.4の設定情報をコピーし、後述の通り編集する
  4. それを、wordpressの「wp-admin」フォルダに「php.ini」のファイル名で保存
  5. php.iniパーミッション640に変更

PHP iniの編集

❌編集前 ➡️編集後
mbstring.internal_encoding = EUC-JP mbstring.internal_encoding = UTF-8
mbstring.encoding_translation = On mbstring.encoding_translation = Off

これで無事にWordPressが運用できる?のか、この先不安なので、様子を見てCPI解約を考え、しばらく様子見。

参考にしたブログ

CPIサーバーのように、デフォルトの文字コードがUTF-8で無いレンタルサーバーで、WordPressを設置したら日本語や中国語などのマルチバイト文字の入力ができないで、半角英数文字しか入らない問題を解消する方法

CPI公式ガイド「FTP を用いて手動でインストールする場合

CPIレンタルサーバーのWP-DBManagerのパス値

WPプラグイン「WP-DBManager」の設定にあるパス値。いろいろ設定があるようだが、当契約サービスだと下記設定でうまくいった。

mysqldumpのパス
/usr/local/mysql5/bin/mysqldump

mysqlのパス
/usr/local/mysql5/bin/mysql

うまくいかない場合、下記サイトを参考に

CPIでのWP-DBManagerの設定

不具合3)contact form7 のメールが日本語だけ「??」と文字化け

php.iniで文字化けが治ったと思いきや、プラグインでも起こり、ここでも1日ハマる汗。なんじゃこらー;

ドキュメントルートのhtaccess.に下記コード追記(wp-adminフォルダにphp.iniを入れたことが前提)。その下でiniへのアクセスを拒否した。

# CF7 POST MOJIBAKE taisaku
Options +FollowSymLinks
suPHP_ConfigPath /usr/home/ユーザID/html/wp/wp-admin/
# php.ini ACCESS DENY
<Files ~ "\.ini">
deny from all
</Files>

index.phpに下記コード追記が必要とするブログもあったが、こちらのCPIサーバーではエラーが出て実施せず。

suPHP_ConfigPath /home/ユーザID/html/wp/
<Files ~ "^(\.htaccess|\.htpasswd|php\.ini|.*\.sql|.*\.log|.*\.cron|.*\.inc|.*\.phps|.*\.yml)$">

参考にしたブログ

cpiサーバでpostの値が文字化けする対処方法

不具合4)パーマリンク変更でForbiddenエラー

/wp/.htaccessに下記コード追記し、mod_rewriteを有効化させる。(mod_rewriteはapacheのファル変換機能)

# mod_rewrite acctive
Options FollowSymLinks

参考http://www.retropc.net/mm/archives/33

ウィジェットが突然消えるなど、その他確認できた不具合

  • 全ウィジェットが突然消える(テンプレをいじっていたら突然正常戻った。よく分からない汗。)
  • ほんとナンナンダ?このサーバー。誰が使うん?

スポンサードリンク