WordPress2.8の問題点
XreaサーバーでCGI版PHPを使っていると、管理画面が崩れる問題点があり、色々調べてみると、WordPressが2.8になってから、必要なPHPのメモリが64MBになったことが原因のようです。xreaのCGI版PHPのメモリは32MBなので問題を起こしていたようです。
解決策は、2通りあります。
1.wp-config.phpに以下の一行を追加してメモリ使用量を減らす
define( ‘CONCATENATE_SCRIPTS’, false );
2.モジュール版PHPを使用する
CGI版PHPは、必要な場合に限定する。
具体的には、/wp-admin 直下の.htaccess を以下のようにすること。
Files で指定したphpのみCGI版PHPで動かし、他はモジュール版で動かすという訳です。
<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 admin.php> AddHandler application/x-httpd-phpcgi .php </Files> <Files options-general.php> AddHandler application/x-httpd-phpcgi .php </Files>
両方試してみましたが、1.の方法は全く問題なし。ちなみに、自分の場合は、もともとWP Super Cache を使っていたので.htaccessを/www.hbirds.net の直下において、AddHandler application/x-httpd-phpcgi .php の一行を追加してます。
2.の方法では、/www.hbirds.net の直下の.htaccessからAddHandler application/x-httpd-phpcgi .php の一行を削除すると、使っているプラグインEazy Contactのsession_start();でエラーが出てしまいます。
XREAではphpはApacheモジュールの前提なので/tmpにSessionデータを書き込む設定になっている。つまりプロセスのオーナーがApacheで書き込みされる。
一方でCGI版だと、プロセスのオーナーが自分になる。つまり/tmpのアクセス許可が必要だ。たぶんXREAのミスだと思うが/tmpのパーミッションでCGI版のSessionはそのままでは動かない。
なので自分のsession_save_pathを変更して自分のHOME内に用意しておく
session.save.path = /virtual/XXXXXXXX/temp/session/
の様に設定が必要。
.htaccess に以下のように追加するらしい(未確認)
<IfModule mod_php5.c> php_value session.save_path "/virtual/username/tmp" </IfModule>
または
php_value session.save_path ‘/virtual/username/tmp’
または
php_value session.save_path “/virtual/ユーザID/public_html/ドメイン名/tmp”
また、tmpディレクトリを作って、パーミッションを変更する必要もあるようです。
Related Posts
No Comments »
RSS feed for comments on this post. TrackBack URL
Leave a comment
You must be logged in to post a comment.