通常画面は表示されるのにセットアップ、メンテナンス画面が表示されない(Ver. 2.11.x 以下)
セットアップ、メンテナンス画面の時だけ ionCube Loader が動いていない可能性があります。ドキュメントルートにphp.iniを置くようなレンタルサーバーにて問題が発生するケースがあります。
解決策
この場合、php.iniをsetupディレクトリにコピーしてお試しください。
このページでは a-blog cms を利用される上でよくはまるトラブルとその解決方法についてご紹介しています。
セットアップ、メンテナンス画面の時だけ ionCube Loader が動いていない可能性があります。ドキュメントルートにphp.iniを置くようなレンタルサーバーにて問題が発生するケースがあります。
この場合、php.iniをsetupディレクトリにコピーしてお試しください。
config.server.php の DEBUG_MODE が ON(1)になっている可能性があります。OFF(0)に設定してお試しください。
Ver. 2.11.0 から 校正オプションの仕様が変わり、校正オプションが指定されている場合も自動でサニタイズ(エスケープ)処理がされるようになりました。 これにより、アップデート後に閲覧画面を表示すると意図していないHTMLがタグのまま表示されてしまう可能性がございます。
詳細・対応方法は以下をご覧ください。
接続元IPアドレスのグローバル変数が正しく取得できなかったり、ログの接続元IPアドレスやログイン制限が正しく動作しない場合がございます。
これはリバースプロキシやCDN、ロードバランサーなどが入っている場合に、正しい接続元IPアドレスが取得できないためになります。
リバースプロキシなどが入っている環境でも正しく接続元IPアドレスを取得するには「config.server.php」の「TRUSTED_PROXY_LIST」に信頼できるプロキシのIPアドレスを設定ください。
複数ある場合はカンマで区切って指定します。
define('TRUSTED_PROXY_LIST', 'xxx.xxx.xxx.xxx,yyy.yyy.yyy.yyy');
これは「X-Forwarded-For」HTTPヘッダーから接続元IPアドレスを取得するときに、偽装された接続元IPアドレスを取得しないようにするための対策となっております。 (「X-Forwarded-For」は簡単に偽装できるため)
アップデートしたら管理画面にスタイルが当たらなくなってしまった場合、以下の原因が考えられます。
詳しく説明していきます。
a-blog cms の管理画面のCSSは、/themes/system/css/ディレクトリに設置されています。
以下のCSSがなかった場合、正常にページが表示されない可能性があります。
アップデート時にうまくアップロードされていなかった場合、再度アップロードし直すことで解決できます。
CSSがうまくアップロードできていなかった場合は、以下のような特徴があります。
古いテンプレートを使用している場合に、正しくスタイルが適用されない可能性があります。
よくあるパターンとしましては、/admin/blog/edit.htmlなどの一部分のファイルを使用しているテーマに設置しており、一部分だけスタイルが適用されていないケースです。
Ver.1系から使用されているサイトでとくにみられるケースです。たとえばブログ管理のページで、Ver.1系の/admin/blog/edit.htmlを適用していると以下の図のような状態になります。
Ver.1系の/admin/blog/edit.htmlを適用している場合は、以下のような特徴があります。
この場合の解決策としては、原因となっているテンプレートをリネームまたは削除することで解決できます。
もし何らかの理由でアップロードしている場合は、/themes/system/から新しいテンプレートを複製し、カスタマイズし直してください。
Ver 3.0.0 以前から Ver 3.1.0以降にアップデート
システムを Git管理しており、ローカル環境でシステムアップデートをした上で本番反映後に、本番環境のデータベースをアップデートできない
Ver 3.1.0 からコンフィグセットが、コンフィグセット / テーマセット / 編集画面セット に分割された影響により、CMSとデータベースにバージョンの差がある場合に正しくコンフィグセットが読み込めず、データベースのアップデートができない場合がございます。
メンテナンス画面からのデータベースアップデートをお願いいたします。
Ver. 3.2.0 未満からアップデート
column_sort must be greater than 0 から始まる PHPエラーが発生
Ver. 3.2.0 よりエントリーのカラム番号で0を許容しなくなり、一部インポートしたデータや外部から挿入されたエントリーデータが不整合と判断されているケースが確認されております。
必ずデータベースのバックアップを行い、以下のSQLを実行してください。
config.server.php で DB_PREFIX を変更されている方は、以下SQLのテーブル名 acms_ 部分を変更してください。
-- ---------------------------------------------------------------------
-- 1. column テーブルの再採番
-- ---------------------------------------------------------------------
-- column_entry_id + column_blog_id + column_parent_id 単位でグルーピングし、
-- column_id 昇順に 1 から連番を振り直す。
-- column_parent_id は NULL 許容のため NULL 同士も同一グループとして扱う。
UPDATE acms_column c
JOIN (
SELECT
column_id,
ROW_NUMBER() OVER (
PARTITION BY column_entry_id, column_blog_id, column_parent_id
ORDER BY column_id ASC
) AS new_sort
FROM acms_column
WHERE column_entry_id IN (
-- column_sort = 0 を含むエントリーのみを対象にする
SELECT DISTINCT column_entry_id
FROM acms_column
WHERE column_sort = 0
)
) t ON c.column_id = t.column_id
SET c.column_sort = t.new_sort;
-- ---------------------------------------------------------------------
-- 2. column_rev テーブルの再採番
-- ---------------------------------------------------------------------
-- リビジョン(タイムマシン機能)側も同様に、column_entry_id + column_rev_id +
-- column_blog_id + column_parent_id 単位でグルーピングして再採番する。
UPDATE acms_column_rev c
JOIN (
SELECT
column_id,
column_rev_id,
ROW_NUMBER() OVER (
PARTITION BY column_entry_id, column_rev_id, column_blog_id, column_parent_id
ORDER BY column_id ASC
) AS new_sort
FROM acms_column_rev
WHERE (column_entry_id, column_rev_id) IN (
-- column_sort = 0 を含む (entry_id, rev_id) の組み合わせのみを対象にする
SELECT DISTINCT column_entry_id, column_rev_id
FROM acms_column_rev
WHERE column_sort = 0
)
) t ON c.column_id = t.column_id AND c.column_rev_id = t.column_rev_id
SET c.column_sort = t.new_sort;