freoのphp7.3対応
- 2022/06/28 21:22
- カテゴリー:Nano Pi NEO, PC
ブログシステムであるfreoは独自仕様を追加しているため個別にバージョンアップしてきた
これまでphp5で動作していたが,Armbian Bullseyeとなってphp7では動作しないので対応する
freoで対応する部分は3箇所
①初期設定
freo導入時に最初にトップページを開くと環境設定を行うがphp7では正常に動作しない
こちらに書かれているとおりで対応できる
config.phpを編集すれば対応させなくても問題ない
②smarty
上記サイトにも記載があるsmarty2の「Smarty_Compiler.class.php」に問題がある(7.3では非推奨)
- コンストラクタのメソッド名を変更(クラス名と同じでは駄目になった)
function Smarty_Compiler()
(変更)
function __construct()
- preg_replaceの修飾子eは廃止
$source_content = preg_replace($search.'e', "'"
. $this->_quote_replace($this->left_delimiter) . 'php'
. "' . str_repeat(\"\n\", substr_count('\\0', \"\n\")) .'"
. $this->_quote_replace($this->right_delimiter)
. "'"
, $source_content);
(変更)
$source_content = preg_replace_callback($search
, function ($matches) {return $this->_quote_replace($this->left_delimiter) . 'php'
. str_repeat("\n", substr_count($matches[0], "\n"))
. $this->_quote_replace($this->right_delimiter);}
, $source_content);
- each()が非推奨なので同等な別コードに変更
list(, $block) = each($this->_folded_blocks);
(変更)
$block = current($this->_folded_blocks);
next($this->_folded_blocks);
(最新の1.21.0のsmartyを使えば問題ないことが後で判明)
③人気コンテンツプラグイン
エラーが発生しているが必要ないので削除
※)このプラグインはデータ量が膨大になることも理由の1つ(バックアップのSQL文のほとんどを占める)
(参考)
- google検索「php5 php7 違い」
- php.ini(/etc/php/7.3/apache2/php.ini)を編集して画面にphpのエラー表示(logファイルを参照しないても良くなる)
display_errors = On #was Off
- php7.4でも問題なし