あれ、どうやったっけ

(たぶん)テキストサイト風blog。文が安定するまで書き直しあるからメンゴ。

俺に言われても困る度Maxな Debian9 + epgrec una 動かせ指令

「パソコン担当」扱い、Lineで友人に聞かれて呼び出される奴

Debian9とかUbuntu16.04でepgrec unaが動かんとかいう話。

友人様が「UbuntuでやってだめDebianでやって動かない、冬アニメが」とかでまた呼ばれました。新年にサーバの増強というかまあいろいろパワーアップを行ったそうで、OSも載せ替えたと。お前はHDD番長か。

設定手順は誰かが既にうpってて、一応その通りにやれば動くはずという。たぶんエディタ触れるならその通りすれば行けるレベル。

Ubuntu16.04 LTS上へepgrecUNA環境を構築する – UbuntuによるEco Linuxサーバ構築記

入ってたのはDebian9ですね。「Ubuntuじゃあかん」とかでDebianに変えてみたそうです。で、epgrec unaはphp5が前提らしく(「7対応は多少したとか公式サイトに書いてたでー」友人談)……両OSともphp7ですね。

前に何かの非互換性で見たような……?

ぱーっと設定ファイル見せてもらった限り問題は無いというか「完コピでしょ」だったんです。mariadb.conf.d以下にやや苦心の跡(謎のコメントアウトがいくつか)くらい……。

「setup2.php」で真っ白ですね。

こういう時って大体テンプレートエンジンだなってのは予想付くと思うんですけど……結論から言っちまえばSmartyを最新のに乗せ換えたら(一応)動きました。

PHP: 変更された関数 - Manual

一回チラっとprep_replaceがエラー吐いたのは見たんですよ。xdebugとかそういうのじゃなくて、php.iniの設定で吐かしただけですが。

preg_replace の /e オプションってハックされやすい系のアカンやつじゃなかったか? とか、PHP7で廃止……のはずだったかな、と。実際は警告メッセージ出して何もしない

応急処置として最新版Smarty乗せ換えを検討。確認したら最新版(Smarty 2.6.31)では対応が行われており「Smarty_Compiler.class.php」の270行目はpreg_replace_callback使ってるという。 いちいちdiff取って全確認とかめんどくさかったので

wget https://codeload.github.com/smarty-php/smarty/tar.gz/v2.6.31

tar -xzf smarty-2.6.31.tar.gz

# epgrec 以下の Smarty フォルダ全消し
rm -Rf /var/www/epgrec/Smarty

# smarty/lib を epgrec/Smarty に置いてくれ
mv smarty-2.6.31/lib /var/www/epgrec/Smarty 

chown -R www-data:www-data /var/www/epgrec

というラフなやり方で動いたっぽいですね。記憶で書いてるので細部違うかも知らんです。

たぶんソレでイケると思うけど何かあってもよー知らんからガンバレとだけお伝えし、処置を終了しますた。

正確に言うとsmarty2はphp7対応してるのかどうか僕は良く知らん。

まあとりあえず録画は出来るみたいなので……無論何か奢れって話位しますよね?

成功報酬の請求

半日潰された報酬は近所のラーメン屋で醤油ラーメンと餃子ですね……安いんだか高いんだか。「いきなり! ステーキ」とか奢れと言ってみたかったんですが寒いから行くのつらいので無理。

めんどくさいから次なんかあったらCentOS使ってろとか今度言おうかなって思うんですが、アレはアレでSELinux絡みのエラーがうるさいというか……。

あーあと友人宅でカードリーダー見かけたんですが、確定申告の時期だなーって思いました(e-Taxならカードリーダーいるっしょ)。僕は昨年度の収入ないというか、正確にはあるけど非課税の奴のみですが一応な……。

2018/1/17 update

後日何やらエラーが出た件。templates/programTable.htmlの修正が必要だったとのこと。

epgrecUNA 人柱版 (2015/11/14) - 適当な何かの別館

programTable.htmlの修正箇所
666行目:{if $k_category != 15 || $k_sub_genre>=63 }
679行目: <b> 曜日:</b>{if $weekofday == 127}なし{else}{$wds_name}{/if}

ここ見て直したとか聞いたよ?