CPIでパーマリンク

CPI独自仕様のPHPでは、WordpressでPermalinks機能が正常に動作しない。
パーマリンクの設定をすると、.htaccessファイルに

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

と自動挿入するが、これだけだと駄目で、その前に

Options +FollowSymLinks

を入れる必要がある。これは、CPIサーバーでmod_rewriteを有効にするための記述。

.htaccessファイル全部の内容

suPHP_ConfigPath /usr/home/サーバー番号/secure/ ←php.iniの場所
AddHandler x-httpd-php528 .php ←使用するPHPのバージョン指定
Options +FollowSymLinks ←今回手動で追加

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

CPIでWordPress

クライアントのCPIサーバーにWordPressをインストールする。たしかここは、PHPに対する扱いが面倒だったような気がしたので、.htaccessファイルが自動で追加されるのを期待して、コントロールパネルからインストールしてみる。インストール自体はうまくいったが随分と古いバージョンだったので、上書きで2.7Jをインストール。すると、文字化け。軽くググってみたら、CPIでWordPressをやるのは結構厄介?

あと、utf-8にしたphpMyAdminでテーブルを削除できないのだが、ja-eucに変更してからだと削除できる。

ここを参考にphp.iniを作成する。コントロールパネルの【お客様情報】から、【プログラムのパスとサーバの情報】の下の方にある使用するPHPと同じバージョンのphp.ini情報をコピーして、下記の記述を修正する。

mbstring.internal_encoding = utf-8
mbstring.encoding_translation = Off
mbstring.http_input = auto
mbstring.detect_order = auto

ァイル名を【php.ini】として保存して任意のディレクトリにアップロードする。(secureなディレクトリが良)

次に、php.iniの設定を反映させるため、php.ini の設置場所を指定した一行を記載した.htaccessを作成する。これにより、下位ディレクトリ全体にPHPの独自設定を反映させる。

suPHP_ConfigPath /usr/home/(ユーザーID)/secure/(ディレクトリ)/

これで、utf-8のPHPが指定したディレクトリで動くようになり、wordpressの文字化けも解消した。phpMyAdmin が ja-euc のままだったが、文字化けにならず、念のため utf-8 にした後も問題なく動作した。