これは、a-blog cms Advent Calendar 2014の20日目の記事です。

a-blog cmsは、汎用CMSの中では、初期インストールが難しい方です。
コードの暗号化を解除する「ioncube loader」という拡張が必要となるためです。

ですが「このエラーはなぜ出るか」「どのようにサーバーの情報を調べれば良いか」がわかっていれば、よっぽどマニアックなサーバーでない限り、確実にインストールできます。

公式サイトのインストールマニュアルで書き切れないことを、ここでまとめたいと思います。

インストールできない!トラブルシューティングまとめ

真っ白

ioncube loaderが動作していません。確実に設置する方法については後述します。

ioncube loaderのビット数違い
linux版には32ビットと64ビットがあります。最近の共有サーバーは64ビットが多いですが、32ビットも試してみてください。
ファイル名末尾に「_ts」が付いているioncube loaderを指定している
末尾に「_ts」が付いているものは「スレッドセーフティー版」といって、その設定を行っているサーバー専用のファイルです。ほとんどのサーバーは「_ts」が付いていない方で動作します。
php.iniのzend_extensionのパス間違い
相対パスではリンクできません。サーバー絶対パスとしてください。
ioncube loaderを正しく設置しているにもかかわらず真っ白
PHPにエラーがあるが、サーバーでエラー文を表示しない設定になっている可能性があります。サーバーのPHPエラーログが見られる場合は、そちらを確認して原因を探ってみてください。

なお、index.phpの二行目にini_set関数を挿入することで、強引に表示する方法もあります(確認後は必ず削除してください)。

<?php //003ab

ini_set( 'display_errors', 1 );

・・・以降a-blog cmsの暗号化コード

404エラー

初期インストールではあまり報告されていません。サーバー移転の際、「themes」フォルダに移転前のテーマを転送し忘れると発生しがちです。

500エラー

インストールできたがログインできない・トップページ以外が500エラー
サーバーの仕様です。.htaccessの15行目、「RewriteBase」の前のコメントアウトを外してください。
ラピッドサイトなどのVPS、NTTメール&ビズ、お名前.comなどで確認しています。

503エラー

index.phpがトップページとして認識されていません。localhostの場合は、DirectoryIndexを確認してください。
レンタルサーバーで、旧サイト一式をごっそり削除してからすぐにアップロードすると、このエラーになることがあります。数分待ってから再読み込みしてみてください。

「ablogcms」フォルダ以下でないと表示されない

a-blog cmsは「index.phpの場所=サーバーのトップページ」となり、管理画面だけディレクトリを下げることはできません。MovableType・WordPressの扱いに慣れている人がやりがちです。
解凍したインストールパッケージを丸ごと転送しても同じ状態になります。「ablogcms」フォルダの転送は「フォルダの中身をすべて」で、「フォルダごと」ではありません。また、解説PDFや「omake」をサーバーに置く必要もありません。

確実にインストールする方法

以上、いろいろなトラブルがあるわけなのですが、ほとんどの問題はioncube loader関係です。なので、ここを確実にクリアするだけでもかなりスムーズになります。

ioncube loader設置に必要な情報

  1. すでにioncube loaderが設置されているか
  2. PHPのバージョン
  3. サーバーのOS名
  4. サーバーのフルパス

phpinfo関数を書く

サーバーに「PHPの詳細情報を調べるプログラム」を設置します。
新規ファイルを作成し、以下のコードを書いて、「phpinfo.php」というファイル名で保存してください。

<?php

phpinfo();

phpinfo.phpをサーバーに設置してアクセスすると、PHPのバージョン、サーバーの設定情報を詳しく見ることができます。

すでにioncube loaderがあるか調べる

phpinfoのページをスクロールしていくと、最初の表のすぐあとに、拡張機能に関する表記があります。
ここに「ioncube loader」の表記があれば、すでにこのサーバーにはioncube loaderが設置されています。

なお、あとで自分で設置しても、同様に「ioncube loader」が追記されることになりますから、サーバーに設置したa-blog cmsを確認しなくても、この画面を再読み込みするだけでチェックできます。

PHPバージョン、OS名を調べる

PHPのバージョンは、ページ先頭に大きく書かれています。

OS名は、 最初の表の先頭行「System」に書かれています。OSにより表記が異なり、Linuxだとこうです。

Solarisだとこうです。「SunOS」というのは、Solarisの以前の名称です。

Windowsサーバー、FreeBSDの場合は、バージョン番号も調べてください。

フルパスを調べる

サーバーの公開領域内にioncube loaderを置いた場合、以下のようにphp.iniに書くことになります。

zend_extension = "★公開領域までのフルパス★/ioncube/★ioncube loaderのファイル名★.so"

フルパスがサーバーのコントロールパネルに明記されていない場合でも、phpinfoで調べることができます。
ページをスクロールしていき、「Environment」か「PHP Variables」の表を見ていけば、公開領域へのフルパスが書かれています(どの項目に書かれているかは、サーバーにより異なります)。

まとめ

以上、参考になれば幸いです。

Web制作者にとって、サーバーやプログラムはブラックボックスです。a-blog cmsはそれをほとんど意識せずに制作に専念できるのが魅力ですが、とっかかりの部分で、どうしてもブラックボックスに向き合わなければなりません。

なので、自分でサーバーを選べる状況の場合は、自動インストール機能があるCPIか、ioncube loaderが含まれているロリポップ・ヘテムルを選ぶのがよいです。

ただ、サーバーのエラーがどのような意味を持つのか、どうすればエラーの原因をつかめるのかを知識として知っておくと、a-blog cmsに限らず、どのシステムでも安心して扱えるようになると思います。

この記事を書いた人

うぇびん

愛知県豊橋市に住んでいる、荒ぶるウェブおばさん。WordPressをはじめとした各種CMSを研究するのが好き。札幌のIT企業のビットスター株式会社に所属しています。