xreaでのppBlogインストール方法
レンタルサーバーは、XREAプラス(s107サーバー)を使ってます。
これがけっこうppBlogには鬼門っぽくて、何かと問題が……。
バージョンアップの時の自分のために、また他のどなたかのお役に立てればということで、メモしておきます。
XREAはPHPがセーフモードなので、普通にインストールしようとしてもダメ。
1.4系の時はppBlogのセーフモード版をダウンロードしてくれば大丈夫だったのだけど、1.5系からはそれでも挙動がおかしくなってしまいました。
これについては、PHPをCGIとして動かすことで解決します(mixiコミュで知りました)。
XREAのサポートボード「PHPをCGIとして動かす方法について」を参考に .htaccess を用意してください。
通常版のppBlogと一緒にこの .htaccess をアップロードし、パーミッションを変え、 install.php にアクセスすればあっという間に設置完了すると思います。
この後、 .htaccess を消してしまうとまた挙動がおかしくなると思います。私の場合は、管理画面へのログインや編集は可能だけれど、index.php にアクセスができない状態になりました。
検索していたところ、 stat/data/ の中に lock.txt というファイルを入れたら上記の症状が直ったという記事を見かけたので試してみました。これだとインストール後に .htaccess を消しちゃっても大丈夫みたいです。ただし、他のことでも .htaccess を使用している場合(アクセス制限など)、『AddHandler application/x-httpd-phpcgi .php』部分を消したらまた動かなくなると思うのでそのまま使うよりほかないかも。
使っているうちに、「古い順」が上手く機能しないことも判明。これもXREAのせいなのかは不明だけど……。
「古い順」を押すと、最初はちゃんと一番古い○件が出てくるのですが、「次の○件」を押すと「新しい順」になってしまうのです。(リスト表示・ボックス表示とも)
これについては、フォーラムで相談したところ、作者のmartinさんが解決してくれました。実はmartinさんには、vodafoneからのメール更新やMTからのインポートでも助けていただいたのでした。ほんとにお世話になりっぱなしです。(コチラ)がその記事ですが、一応ここにもメモしておきます。
utils.phpの42行目から58行目を /* $displayMode = 'box'; $_asort = 'descend'; // from new to old if(isset($_COOKIE['PPBLOG_DISPLAY_MODE'])){ $_modes = explode(',', $_COOKIE['PPBLOG_DISPLAY_MODE']); if(!empty($_modes[0])) $displayMode = $_modes[0]; if(isset($_modes[1])) $_asort = $_modes[1]; } if(g_('display') != ''){ $displayMode = g_('display'); setcookie('PPBLOG_DISPLAY_MODE', "$displayMode,$_asort", time()+60*60*24*30); } if(p_('_asort') != ''){ $_asort = p_('_asort'); setcookie('PPBLOG_DISPLAY_MODE', "$displayMode,$_asort", time()+60*60*24*30); } */ のようにしてコメントアウト。 続いて、 index.php の48行目あたり if(GET_STATS==TRUE) include_once('stat/log.php'); # $theme_dir という行の後に、 $displayMode = 'box'; $_asort = 'descend'; // from new to old if(isset($_COOKIE['PPBLOG_DISPLAY_MODE'])){ $_modes = explode(',', $_COOKIE['PPBLOG_DISPLAY_MODE']); if(!empty($_modes[0])) $displayMode = $_modes[0]; if(isset($_modes[1])) $_asort = $_modes[1]; } if(g_('display') != ''){ $displayMode = g_('display'); setcookie('PPBLOG_DISPLAY_MODE', "$displayMode,$_asort", time()+60*60*24*30); } if(p_('_asort') != ''){ $_asort = p_('_asort'); setcookie('PPBLOG_DISPLAY_MODE', "$displayMode,$_asort", time()+60*60*24*30); } を追加。