Research Artisan liteをPHP 5.6で使うための設定

こんなエラーがでて表示できない

Undefined Database Configuration
File: /home/sample/example.com/public_html/blog.example.com/access/ra_core/application/models/System.php (Line: 18)
Code: 9907
#0 /home/sample/example.com/public_html/blog.example.com/access/ra_core/system/RaModel.php(145): RaModel->_dbConnect()
#1 /home/sample/example.com/public_html/blog.example.com/access/ra_core/application/models/System.php(18): RaModel->__construct('system')
#2 /home/sample/example.com/public_html/blog.example.com/access/ra_core/application/controllers/LoginController.php(28): System->__construct()
#3 /home/sample/example.com/public_html/blog.example.com/access/ra_core/system/Ra.php(152): LoginController->login()
#4 /home/sample/example.com/public_html/blog.example.com/access/ra_core/system/Ra.php(89): Ra->_doaccesstion(Object(LoginController), 'login')
#5 /home/sample/example.com/public_html/blog.example.com/access/ra_z0iblog/analyze/index.php(46): Ra->execute()
#6 {main}


・MYSQLの設定などはきちんとできている
・同じ設定・構成でPHP5.4以下の場合はきちんと動作している

で、PHP5.6にしたら、上記のようになり動作しなくなったとかの場合です。

上記エラーは、ブラウザ上に表示されてました。

回避方法 その1



DB情報があってるのにエラーが出る場合はerror_reportingのE_DEPRECATEDにひっかかってる。
mysql_connectと非推奨の接続が原因。
一応以下の設定で動くようにはなる。
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
Research Artisan liteでインストールエラー |2015-02-09 - 遠い目日記


5.5.0 mysql_connect この関数は E_DEPRECATED エラーを発するようになりました。
PHP: 変更履歴 - Manual


php.iniの場合は
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED

php内に埋め込むには
error_reporting(E_ALL ^ E_NOTICE ^ E_STRICT ^ E_DEPRECATED);

.htaccessの場合は
# 32767 - 8 - 2048 - 8192 = 22519
php_value error_reporting 22519
古い環境で動いていたphpをphp5.4に移すときのエラー指定|ブログ|ノノログ


PHP: error_reporting - Manual

php.iniなどの設定で、
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
とすれば、回避することができて動作するようになります。

・PHP5.1.x 以降、5.4.xまで(PHP4、PHP5.5.x以降では動作を保証しません)
・MySQL4.0 以降、5.5.xまで(4.1 以降を強く推奨、5.6.x以降では動作を保証しません)
無料ダウンロード - 国産オープンソースPHPアクセス解析CGI - Research Artisan Lite - リサーチアルチザンライト


Research Artisan lite バージョン1.18ですが、PHP5.4まで対応で、PHP5.5以降は動作保証しないということになっています。

回避方法 その2

Research Artisan liteだけ古いPHPを使う。
■ミニバード、ファイアーバードなら
#####phpversion#####
AddHandler x-httpd-php5.4 .php .phps
#####end:phpversion#####

Research Artisan liteをインストールしたフォルダ(ディレクトリ)に上記の内容の「.htaccess」を置くと、そのフォルダのPHPだけ指定したバージョンのPHPが動作するようになります。

PHP7では、そのままでは動作しない

Research Artisan Liteはどうも、mysql_ 系の関数を使っているようなのでそのままではPHP7では動作しないでしょう。

ra_core/system/RaModel.php

上記の中のmysql関数をmysqli関数に置き換えてみたら、動作してるように見えます。

参考:
PHP7で「PHP Extensions Not Found => mysql」というエラー

関連のある記事

スポンサーリンク

コメントを残す

メールアドレスは公開されません。
また、コメント欄には、必ず日本語を含めてください(スパム対策)。