Open yuichimita opened 6 years ago
@yuichimita Deprecated エラーそのものでは処理が止まることはありません。私は PHP 7.2.0 RC1 + MySQL 5.5.55 でインストールテストを行ってみました。ご指摘のエラーメッセージは出ましたが、処理は止まることなく正常にインストールは完了しました。
MySQL が 5.7 からデフォルトの動作がかなり変わっているようですのでそのあたりが原因かもしれません。
html/class/database/mysqlidatabase.php の 100行目あたりに
// set sql_mode to '' for backward compatibility
if (version_compare(mysqli_get_server_info($this->conn), '5.6', '>=')) {
mysqli_query($this->conn, 'SET SESSION sql_mode = \'\'');
}
を挿入して connect()
関数を
public function connect($selectdb = true)
{
$this->conn = mysqli_init();
if (!$this->conn) {
$this->logger->addQuery('', $this->error(), $this->errno());
return false;
}
if (XOOPS_DB_PCONNECT == 1 && version_compare(PHP_VERSION, '5.3.0', '>=')) {
mysqli_real_connect($this->conn, 'p:'.XOOPS_DB_HOST, XOOPS_DB_USER, XOOPS_DB_PASS, null, null, null, MYSQLI_CLIENT_FOUND_ROWS);
} else {
mysqli_real_connect($this->conn, XOOPS_DB_HOST, XOOPS_DB_USER, XOOPS_DB_PASS, null, null, null, MYSQLI_CLIENT_FOUND_ROWS);
}
if ($selectdb != false) {
if (!mysqli_select_db($this->conn, XOOPS_DB_NAME)) {
$this->logger->addQuery('', $this->error(), $this->errno());
return false;
}
}
// set sql_mode to '' for backward compatibility
if (version_compare(mysqli_get_server_info($this->conn), '5.6', '>=')) {
mysqli_query($this->conn, 'SET SESSION sql_mode = \'\'');
}
return true;
}
とすると結果は変わりますでしょうか?
サジェスチョンありがとうございます。 残念ながら、状況は変わりませんでした。
Step 2で、同じエラー表示が多数出て、進めませんでした。
環境の記述が不十分だったかもしれません。 データベースサーバは、MySQLではなく、MariaDBを使っております。
また、ウェブサーバは、Nginxです。
エラーが出たファイルの該当箇所のclassと同じ名称のfunctionを"__construct"で置換すると、エラーは消えました。ただし、画面が真っ白になってしまいました。
こちらを参考にしました。 【PHPエラーの対処方法】Methods with the same name as their class will not be constructors in – Lapinlop https://lapinlop.com/blog/php7error-deprecated/
引き続き、情報ありましたら、よろしくお願いします。
ちょっと話がずれてしまうんですがxoopsってnginx対応してるんでしょうか。picoで.htaccessとか使われてたような…一部モジュールだけなのかな。関係なかったらスミマセン
こちらでよいかわかりませんが、対応いただけると助かります。
インストーラでエラーが出て完了できません。
Step 1はエラーが出ても、完了することができました。 Step 2は、進めませんでした。 phpは7.1です。
よろしくお願いします。