PHP 7 で rep2 を動かす際の注意点(ImageCache2 の設定)

rep2

現時点(2016/08/17)で rep2 をインストールする場合は 2ch774 さんのパックを選択すると思います。その際に問題となることを書きます。

http://2ch774.github.io/p2-php/

必要なライブラリ

一般的に必要なライブラリは従来の rep2 と変わりません。不足しているものはどんどん入れましょう*1。PHP のビルトインサーバを使えば Apache や nginx を使うよりか楽できます。

PHP 7

さて、一番の問題は PHP のバージョンです。PHP 7 が標準的になったことによる影響です。ImageCache 2 がらみで問題が出ます。

ImageCache 2

conf_ic2.inc.php(MySQL)

まずは conf_ic2.inc.php です。このファイルの $_conf['expack.ic2.general.dsn'] について、「mysql」はもはや使えません。「mysqli」を使いましょう。

HTML_QuickForm

MySQL に無事接続できても、ImageCache 2 のページ(iv2.php)の閲覧ができません(ページが真っ白になる)。サーバのログを見ると 500 のエラーを吐いています。Syntax Errorとのことです。これは 2ch にまさに情報がありました(感謝!)。

rep2 part62
82 : 名無しさん@お腹いっぱい。 2016/07/13(水) 16:02:09.49 AiEEJV+q0
PHP7のIC2一覧でQuickFormのエラーが出る問題、
とりあえずQuickFormは https://github.com/flack/quickform これを使った上で、
rep2ex/vendor/pear-pear.php.net/HTML_QuickForm/HTML/QuickForm/Renderer/Object.php の
class HTML_QuickForm_Renderer_Object に
public function finishForm(&$form) {}
public function renderHtml(&$data) {}
これを加えて、
rep2ex/lib/expack/ImageCache2/QuickForm/Rules.php の
public function validate($value, $options) をすべて
public function validate($value, $options = NULL) に置き換えれば動いた

http://potato.2ch.net/test/read.cgi/software/1465970697/82

設定ファイルの文字コードはSJIS

confの類の設定ファイルの文字コードはSJISですので注意しましょう。

ダウンローダ(ic2_getter.php)

「ダウンローダ」である ic2_getter.php のページも真っ白ですが、利用頻度を考えて現状保留状態です。

*1:php-xml とか php-curl とか php-mbstring とか php-sqlite3 とか php-mysql とか php-fpm とか php-gd

Powered by はてなブログ