PHP
ablogcms
xserver

エックスサーバーにa-blog cmsを手作業で設置すると500エラーになる場合の対処

結論から

「php.ini直接編集」でPHP設定を変更する際、以下のように「opcache.so」よりも下の行にionCubeローダーのパスを書くと500エラーになります。

php.ini
[Zend Optimizer]
zend_extension = opcache.so
zend_extension = "/home/myid/mydomain.com/public_html/ioncube/ioncube_loader_lin_5.6.so"

以下の通り、「opcache.so」よりも上の行に書いてください。

php.ini
[Zend Optimizer]
zend_extension = "/home/myid/mydomain.com/public_html/ioncube/ioncube_loader_lin_5.6.so"
zend_extension = opcache.so

原因

エックスサーバーのsv2000以降のサーバーでは、高速化のため、OPcacheというPHPの拡張モジュールが実装されています。
この処理よりも後に暗号化を実行しようとすると、エラーとなるようです。

APC/OPcacheについて | レンタルサーバー【エックスサーバー】
https://www.xserver.ne.jp/manual/man_server_php_apc.php

エックスサーバーにかぎらず、Vagrantの仮想環境など、OSレベルからセットアップしているサーバーへインストールする場合は、この問題が起きやすいので注意してください。

簡単セットアップは大丈夫?

開発元が提供している「簡単セットアップ」は、[Zend Optimizer]の行の直後にionCubeローダーのパスが挿入されるようになっているため、この問題は起きません。

簡単セットアップで500エラーが出る場合は、ダウンロードに失敗している、php.iniの書き換えに失敗しているなどの、別の原因が考えられます。