WordPress3.3.1を,XREAや@pagesにインストールしたときの注意点を,まとめておこうかなと思ったんだけど,書き始めるとめんど臭くなってきた。で,題名が覚え書になった(爆)。
関連する記事は,このブログで検索ワードとして「tmp wordpress」や「AddHandler application/x-httpd-phpcgi .php」を使って調べたときに出てくるものになるナ。
XREA・@pagesの共通の特徴はLAMP系であることだが,これはレンタルサーバとしてはごく普通のことだから,特記すべき点はPHPがセーフモードで動いていることだろう。PHPのセーフモードは,PHP5.3.0から非推奨になったが,XREAも@pagesもPHP5.2系を使っているようだ。憶測だが,稼働中のレンタルサーバでは,今までセーフモードを使っていたところを変更して,同等のセキュリティを実現するのは,なかなか難しいのかもしれない。
両者のフリースペースを比べた場合,いろんなことができる自由度はXREAのほうが高いが,設定の面倒さもXREAのほうが高い気がする。また,XREAのフリースペースは,現時点では,Value-Domain関連の有料サービスを使っていないと借りられないから,無料レンタルサーバとしては一般的とはいえない。
XREA・@pages,どちらの場合も稼働しているサーバは複数で,サーバごとに少しずつ設定が異なるので,注意が必要である。また,XREAでの設定はCORESERVERにも大体使えると思ってよい。
PHPがセーフモードで動いているとmkdirの使用が制限されるようだから,おおもとのWordPressのスクリプト群のアップロードのときに,前もってFTPクライアントで子ディレクトリを手作業で作っておくと,幸せになれるようだ。それに,1回にアップロードできるファイルサイズの制限に引っかかる場合なんかもあるから,小分けにしてアップロードしたほうがいいようだ。「急がば回れ」だね。
インストールがすんだら,FTPクライアントでドキュメントルートにtmpを作り,パーミッションを707にして,wp-config.phpの「/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */」の行より上に
XREAの場合は,
define( ‘WP_TEMP_DIR’ , ‘/virtual/ID/public_html/tmp/’);
@pagesの場合は,
define (‘WP_TEMP_DIR’, ‘/usr/local/www/htdocs/ユーザーID/public_html/tmp/’);
を追加。再度,wp-config.phpをアップロード。注意としては,wp-config.phpの編集には,BOMの管理のできるテキストエディタを使い,保存時にはBOMを付与しない形で保存するってこと。
wp-contentの直下にuploadsを作り,パーミッションを707にする。これは,XREA・@pages,どちらも同じ。同じところに,upgradeも作っておく。upgradeのパーミッションについては,やはり,707にしておくほうがいいのかどうか。XREAでは,しなくてもO.K.のようだし,@pageでは,しておいてもエラーが出るし?????しかし,作っておかなければいけないのは,確かみたい。
tmp,uploads,upgradeあたりの設定を済ませておかないと,「ファイルストリーミングの送り先となるディレクトリが存在しないか、書き込み不可になっています。」が出るようだ。
あとは,XREA関連になる。XREAでPHPをモジュール版で動かすとき,制限がきついためにうまく動かないことかある。これを回避する方法として,.htaccessを使って,「(新)PHPをCGIとして動かす方法について」というのが提供されている。
.htaccessに
AddHandler application/x-httpd-phpcgi .php
を記入して該当のスクリプトをGCIとして動かしてやるというものなのだが,WordPressのインストールディレクトリにこれを入れて,どれもこれもCGIモードで動かすとなるとmodule版を使う意味がない。そこで,必要最低限のスクリプトを指定してやったほうがいい。
現在のところで,私が指定しているのは以下のものだけ。.htaccessの場所はwp-adminの直下と,wp-includes/js/tinymceの直下である。
wp-adminの直下の.htaccessの内容。
LayoutIgnoreURI *
<Files admin.php>
AddHandler application/x-httpd-php5cgi .php
</Files>
<Files update.php>
AddHandler application/x-httpd-php5cgi .php
</Files>
<Files plugins.php>
AddHandler application/x-httpd-php5cgi .php
</Files>
<Files themes.php>
AddHandler application/x-httpd-php5cgi .php
</Files>
AddHandler application/x-httpd-php5cgi .php は AddHandler application/x-httpd-phpcgi .php でも動くんだが,PHP5を使っている場合は,こちらを使ってくれと「PHPをCGIとして動かす方法について」に書いてあるので,指示通りにしているのだ。
LayoutIgnoreURI * は,XREAの広告が自動挿入されるとダッシュボードのJavaScriptがまともに動いてくれないので,これを回避するために入れてある。はやわかりXREAの「自動挿入広告」のFAQのページを読んで,ダッシュボードには広告を挿入しなくても違反にはならないと判断している。当然ながら,XREA+やCORESERVERなどの有料サービスであれば,LayoutIgnoreURI * は,いらない。
wp-includes/js/tinymceの直下の.htaccessの内容。
<Files wp-tinymce.php>
AddHandler application/x-httpd-php5cgi .php
</Files>
これは,ネットワークの作成-#3。の2.で書いた,「ビジュアルエディターが使えなかった件」の対策。こっちのほうが簡単だし,バージョンアップのときに気にしなくてよい。
まぁ,こんなところかな。結構長くなっちゃったな。この件は,思い出したらまたここに足していこう。
ところで,PHP5.4.0が出てますな。