Sponsored Link

Archive for the ‘news’ category

続 XREA無料サーバにWordPress MUを設置 (完結編のつもり)

6月 3rd, 2009
修正したエントリを  XREA無料サーバにWordPress MUを設置 (完結編のつもり) で公開しています。

やってみて動かなかった人、ごめんなさい。

このエントリは、6/3に公開したエントリですが、
8/4編集操作しようと思ったら、ヘッダがtext/htmlに戻っている様子です。
Ajaxのエラー、画像表示ができない。など、解決したと思っていたものが、元に戻ってしまいました
チェックしなおしてみます。しばらくお待ちください。

wordPress MU を セーフモードのかかった無料XREAサーバにインストールする場合
大まかな動作は、ほぼ大丈夫でも、細かい部分で、いろいろと不具合が出たりします。

以前のエントリで紹介したphpをCGIとして動作させる方法で
AddHandler application/x-httpd-phpcgi .php
を紹介しています。

これは、モジュール版では、セーフモード環境下でディレクトリの作成ができなくなるなどの制約を、突破するための方法でした。

確かに、アップロードなどができるようになるのですが、その反面、CGIモードで動作させた場合に、利用できなくなるPHP関数も存在し、ルートにある.htaccessに追記しただけでは、CGIモードで動作するファイルが多すぎて、影響を受けるようになります。

具体的な事例としては、このサイトで起きていた 「リロードすると画像が表示されなくなる」という現象などがあります

wordPressは、アップロードした画像を、Userの画像ディレクトリに静的なファイルとして、保存しますが、それをそのまま表示しているわけではありませんでした。

ブログから、画像のURLは、見かけ上その静的なリンクに向けてあります。このため、対応する画像を画像アプリで開くと、正常に表示されます。しかし、画像URIにアクセスすると、画像としてではなく、text/htmlとして文字列として、表示されるといった現象が発生します。

なぜ、そのような現象が発生するのか?
実は、wordPressMU特有の、処理が行われていることに起因します。
rootにある.htaccess のmod_rewriteが、その画像をwp-content/blogs.phpで、静的な画像ファイルを再評価して、ヘッダをつけて送り出すという機構が存在するため、cgiモードで動作していると、画像は、text/htmlとして表示される仕組みになっています。

さらに、もうひとつの伏線があります。XREA無料サーバに由来する部分です。
それは、mod_headerです。XREA無料サーバは、広告挿入をこの機能で実行しているので、phpなどのファイルに対してすべて、text/htmlヘッダーをつけようとします。
だから、blogs.phpは、モジュールPHPとして動作し、画像ヘッダーを出すために、広告挿入を停止する必要があります。
mod_rewriteで書き換えられる形式的な、画像ファイル名に対しても、広告挿入を停止する必要があります。

したがって、
RemoveHandler application/x-httpd-phpcgi .php
みたいな事をやってみても対策にはならず、、、(泣)

このため、
ルート.htaccessには以下を追記

LayoutIgnoreURI *.gif
LayoutIgnoreURI *.png
LayoutIgnoreURI *.jpg

wp-admin/.htaccess

<files async-upload.php>
AddHandler application/x-httpd-phpcgi .php
</files>
<Files plugin-install.php>
AddHandler application/x-httpd-phpcgi .php
</Files>
<Files update.php>
AddHandler application/x-httpd-phpcgi .php
</Files>
<Files update-core.php>
AddHandler application/x-httpd-phpcgi .php
</Files>
<files upload.php>
AddHandler application/x-httpd-phpcgi .php
</files>
#import
<files admin.php>
AddHandler application/x-httpd-phpcgi .php
</files>

wp-content/.htaccess

LayoutIgnoreURI blogs.php

の設定は必要そうです

このように、無料サーバへのインストールは、coreserverへのインストールと異なる設定が必要になるようです。

とても面倒な設定になっていますが、

cgiとして動作させるPHPファイルは、きっちり決め打ちする必要があり、
それを怠ると、単に画像の部分だけでなく、Ajaxレスポンスなどもエラーを発生するので、
手数を惜しまないようにしたほうがいいかもしれません。

参考までに、2.6.5のものですが、phpのヘッダ関数を使っているファイルリストを添付しておきます。
意外と多いのでびっくりしました自分。

参考:セーフモードによる制限と対処方法 wordpress codex

wordpressMU2.6.5にアップデートしました

1月 12th, 2009

wordpressMU をアップデートしました。

上書きインストールで大丈夫そうです。

tips:wordpressは、設定の変更を行わないと、div タグを使用したり、スタイルを設定したりすることは出来ません。
kses.phpが、利用できるエレメントや属性を管理しています。

プラグインファイル(elements.php)を作成し、divタグが使えるようにしてみます。
/*
Plugin Name: html要素の可否
Plugin URI: http://text2html.s321.xrea.com/
Description: html要素と属性の管理
Version: 1
Author: s321
Author URI: http://text2html.s321.xrea.com/
*/

//check kses.php wp-includes

$allowedposttags['div'] = array(
‘align’ => array(), ‘xml:lang’ => array(),
‘lang’ => array(), ‘id’ => array(),’class’ => array(),’style’=> array()
);

$allowedposttags['p'] = array(
‘align’ => array(), ‘xml:lang’ => array(),
‘lang’ => array(), ‘id’ => array(),’class’ => array()
);

<div style=”margin:2em;padding:2em;border:1px solid #ccc”>

wordpressMU をアップデートしました。

上書きインストールで大丈夫そうです。
</div>

hello

3月 5th, 2008

このブログは、ワードプレスの、ダウンロードやインストールのメモ帖です。
記述している事柄は、精査したものではありません。
間違っているかもしれないので、その点は、ご了承ください。

もし間違いなどを見つけた方には、「教えていただけることを」ちょっと期待しております。