a-blog cmsが動かなかった理由

佐野

佐野 2014年1月6日

あけまして、おめでとうございます。
年をまたいで、今回もa-blog cmsの話題に入りたいと思います。

a-blog cmsがEC2の基本的なウェブサーバーで動作しなかった理由。
それは、単にa-blog cmsのPHPファイルが暗号化されていたという事でした。

暗号化には、「ionCube」という暗号化ソフトが使用されています。
そしてその暗号化を読み取れるようにするには、
ionCubeローダー」というライブラリが必要となります。

上記リンクから、サーバーに合ったファイルをダウンロードします。
EC2のウェブサーバーなら、「Linux (x86)」か「Linux (x86-64)」あたりでしょうね。
そのzipファイルを解凍すれば、「ioncube」フォルダの中に、
いくつかの「.so」拡張子のファイルが入っています。
これらは、PHPのバージョンごとに用意され、
サーバーで動いているPHPのバージョンに合わせて、
これらのファイルを選択します。

PHPのバージョンを調べるには、コマンドで「php -v」を打つか、
「phpinfo()」関数だけが書かれたPHPファイルをアップロードし、
それにアクセスします。

20140106140913

ファイルをアップロードする場所は、どこでもいいのですが、
なるべくHTTPでアクセスしないような階層がいいでしょう
(今回の場合はテストなので、
「/var/www/html/」の階層のうち、「var」に入れています。)。

次に「php.ini」ファイルの追記なのですが、
要は単に、「php.ini」ファイルがionCubeローダーのファイルを
読み込むようにすればいいのです。
とりあえず悪影響のなさそうな所に、
「zend_extention=(ファイルの場所)」を追記します。

20140106141019
(今回はテストなので、とりあえず適当な開始数行の場所に書き込んでいます。)

ファイルを編集できたら、「service httpd restart」でApacheを再起動します。

うまくいけば再起動が正常に行われ、a-blog cmsも正しく動作するはずです。
Apache再起動はできてもa-blog cmsが動かない場合は、
たぶんionCubeのファイルのバージョンが間違っていると思います。

そして、「php -v」コマンドでも、
ionCubeがインストールされている事が表示されます。

20140106142829

これでめでたく、a-blog cmsが動く環境が出来上がるはずです。

20140106135342

じつは、EC2でa-blog cmsが動かなかったのは、
本当にサーバーとの相性の問題かと思っていました。
その理由はa-blog cmsのインストールマニュアルには、
「ioncube」フォルダは
『セットアップ時にエラーが表示される場合に別途ダウンロードする必要があります。』
と書かれており、
逆に何も表示されない場合は、これに該当しないものであり、
別の理由だからと思っていたからです。

この何も表示されないという状況は、
要はPHPでエラーが起こっていたからであり、
おそらくはa-blog cmsが動作確認を行ったサーバーでは、
何らかのエラーが表示されるのでしょう。

そして、PHPでエラーが起こっていたのは、
「ionCube」にて暗号化されたPHPは、PHPとして認識せず、
エラーが起きていたのでしょう。

ともかくこれで、EC2でも運用できる事がわかりました。
ようするに、a-blog cmsは「ionCube」にて暗号化されているため、
サーバーに「ionCubeローダー」がインストールされている必要がある
という事です。
もしこれを必要とせずに動作したというのであれば、
サーバーにionCubeか、それと同じような解読ライブラリが
最初からインストールされたサーバーなのでしょう。
ただし、暗号化されるのはCMS本体のようで、
テーマ化するHTMLファイル自体や、
MySQLのパスワード等の情報が記載されたファイルまでは、
暗号化されていないという点には注意が必要でしょう。
これはWordPress等も同様であり、パーミッション等の設定を
正しく行う事が大切な所でもあります。