さくらのレンタルサーバ、マネージドサーバ で PHP 7.3 の提供が終了になります
対象のお客様
a-blog cms を さくらインターネットの さくらのレンタルサーバ・マネージドサーバ において PHP 7.3 でご利用中のお客様が対象になります。
ご利用のサーバのPHPバージョンがわからない場合は、ご利用中の a-blog cms にログインし、管理画面からチェックリスト のページをご覧ください。
下記に該当する方は影響ありません。
- さくらインターネット以外のレンタルサーバをご利用中のお客様
- さくらインターネットで PHP 7.3.x 以外をご利用中のお客様
現象
さくらインターネットでは、2021年11月30日(火)をもって PHP7.3 のセキュリティサポートを終了します。 これに伴い、2021年10月28日(木)に、PHP 7.3 が PHP 7.4 へ自動的にバージョンアップされます。 この対応により、対象のサイトでは、以下のようなエラーメッセージが表示され動作しなくなります。
Site error: the ionCube PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking. Please visit get-loader.ioncube.com for install assistance.
対応方法
お使いの a-blog cms のバージョンに合わせた対応方法をご確認ください。
a-blog cms Ver. 2.11.15 以降をご利用の場合
このバージョンであれば、システムは PHP 7.4.x に対応しておりますので、さくらインターネットの サーバコントロールパネル にアクセスして以下の設定を行うだけで PHP 7.4 に切り替わります。
手順1 : 現状の php.ini の設定を確認
メニューから スクリプト設定 > php.ini 設定 の順にページを移動し、設定されている php.ini の内容を表示し確認します。
date.timezone = 'Asia/Tokyo' zend_extension = "/home/*****/www/ioncube/ioncube_loader_fre_7.3.so"
手順2 : ionCube Loader の 7.4 対応のファイルの存在を確認
上記の 手順1 の場合には、FTPソフトなどで php.ini に書かれていた /home/*****/www/ioncube/ に ioncube_loader_fre_7.4.so のファイルがアップロードされているかを確認してください。
もし、無い場合には Loaders for ionCube Secured Files にアクセスして ionCube Loader FreeBSD 11 (64 bits) のファイルをダウンロードして ioncube_loader_fre_7.4.so を指定の場所にアップロードください。
手順3 : PHP のバージョンを変更
この作業を行う事で、手順4 を完了するまで一時的にサイトが表示されなくなります。
さくらインターネット サーバコントロールパネル の スクリプト設定>言語のバージョン設定 の順にページを移動し、 PHP 7.4 へご変更ください。
手順4 : php.ini の設定を変更
さくらインターネット サーバコントロールパネル の スクリプト設定 > php.ini設定 の順にページを移動し、7.3 のところを 7.4 に修正して保存してください。
date.timezone = 'Asia/Tokyo' zend_extension = "/home/*****/www/ioncube/ioncube_loader_fre_7.4.so"
a-blog cms Ver. 2.11.0 - 2.11.14 をご利用の場合
a-blog cms の管理画面にアクセスし システムの更新 のページから最新版の a-blog cms にバージョンアップを行ってから上記の対応をお願いします。
a-blog cms Ver. 2.10.x 以前をご利用の場合
Ver. 2.11 へアップデートをお願いいたします。
a-blog cms は Ver. 2.11 よりアップデートに 11,000円 の費用がかかることになりました。
マイページ のライセンス一覧より該当するライセンスを選択し、アップデート費用のお支払いを済ませてください。新しいライセンスファイルをダウンロードしサーバーにアップロードください。
Ver. 2.5.0 - 2.10.x であれば、基本的には同じテンプレートのままで動作しますが、追加で実装した JavaScript など jQuery のバージョンが上がったことなどで動作しないこともあります。 一度テスト環境などでバージョンアップのテストなどを行なって大丈夫かをご確認 ください。
Ver. 2.5.0 より古いバージョンの場合にはテンプレートの修正が必ず必要になります。詳しくは アップデート をご覧ください。
その他
さくらインターネット のPHP 7.3 の提供終了日
2021年11月30日(火)までとアナウンスされていますので、2021年10月28日(木)に自動アップデートされた場合でも、コントロールパネルから一時的に 7.3 に戻すことは出来ると思われます。
アップデートなどが必要な場合には、まずは一時的にコントロールパネルから PHP のバージョンを 7.3 に戻して 11月中にアップデート作業を行ってください。
ご不明な点がある場合
有償対応になりますが、お困りの際には お問い合わせフォーム よりご相談ください。
【Ver.2.11.25〜】POST_2GET利用の際にallow_pathに記述しなくてもtplが有効になる現象について
先日「Ver. 2.11.25からのテンプレートの仕様変更について」という記事を掲載しましたが、中にはallow_pathを記述しなくても読者以下の権限で正常に使用できるとご報告をいただきました。
弊社でもある条件下において該当の現象を確認しましたが、弊社としては変わらずconfig.system.yamlのallow_pathを記述してテンプレートを許可することを推奨します。この記事では、その件について詳しく説明します。
現象の詳細
config.system.yamlのallow_pathの項目からテンプレートを許可しなくてもポストインクルードおよび検索機能などのPOST_2GETを使用している機能にてtpl指定が利用可能な状態になっているケースが確認されています。
ただし、中には適切に記述をしないとPOST_2GETの機能を利用できないケースもありますので、弊社としては引き続きallow_pathを指定していただくことを推奨しています。
起こっている現象を詳しく説明すると、tplをテンプレート経由で記述していても、実際のプログラム側に送られているRequest URLではtpl指定がされている場合とそうでない場合があります。
tpl指定が指定されているとステータスコードは400エラーになり、tpl指定がなければ基本的にはステータスコードが200になり、正常に表示されます。
挙動がバラバラになってしまうことを防ぐため、統一するためにallow_pathの指定を推奨しております。
ステータスコードが200の条件
BIDとキーワード指定のみ
この時はRequest URLが http://example.com/include/entry/summary-custom.html/keyword/テスト/ となります。
子ブログのBIDを指定して検索したとき
この時はRequest URLが http://example.com/test/include/entry/summary-custom.html となります。
子ブログのBIDとキーワードを指定して検索したとき
この時はRequest URLが http://example.com/test/include/entry/summary-custom.html/keyword/テスト/ となります。
フィールド検索
この時はRequest URLが http://example.com/include/entry/summary-custom.html/field/station/あの駅/ となります。
ステータスコードが400の条件
400になる時、起こっている現象は2種類あります。
その1:REQUEST URLにtplを渡している
ブログのトップページでEIDを指定して検索したとき
この時はRequest URLが http://example.com/entry-2.html/tpl/include/entry/summary-custom.html となります。
tplがURLに入っているので、404エラーで表示されません。
その2:Request URLにtplを渡していないけど、パスが成立していない時
CIDを指定していて、「/〇〇(カテゴリーコード)/include/entry/summary-custom.html」というテンプレートがないとき
この時はRequest URLが http://example.com/〇〇(カテゴリーコード)/include/entry/summary-custom.html となります。
カテゴリーコードをURLに挟んでいるので、テンプレート(include/entry/summary-custom.html)をカテゴリーコードと同じ名前のディレクトリに設置する必要があります。
もし、テーマディレクトリ直下に該当のテンプレートが設置されていた場合は、 http://example.com/〇〇(カテゴリーコード)/include/entry/summary-custom.html に該当するテンプレートがなく、400エラーが発生します。
REQUEST URL の調べ方
開発者ツールから調べます。ここではGoogle Chromeを使用しています。
開発者ツールのNetworkタブをクリックしてください。

ポストインクルードを発火させると、一覧にポストインクルードで使用しているテンプレート名が表示されている(キーワード検索なら、指定したキーワードが表示される)のでクリックします。

Request URL を確認します。今回の例ではtplが使われておらず、カテゴリーコードも指定されていないので、読者以下の場合でも特にallow_pathでテンプレートを指定しなくても正常にポストインクルードが動作します。

まとめ
基本的には弊社としては allow_path を指定し、該当のテンプレートのみ許可することを推奨しています。
allow_pathの指定の仕方については、くわしくは「Ver. 2.11.25からのテンプレートの仕様変更について」の記事をご覧ください。