Ubuntu19.10にepgrecをインストールする


サーバを更新したので、Ubuntu19.10を新規インストールしたうえでepgrecを再インストールしました。

Ubuntu18.04までのインストール方法だとMySQLのDBに接続出来ずに「MySQLに接続できません。」エラーが出ましたので、原因調査して対策済みです。

計画ではUbuntu19.10へのepgrecインストールは30分程度で終わる見込みだったのですが、MySQLが5.7から8.0に変更になったことでepgrec導入時にstep3.phpでDB接続エラーが発生しました。

結局、apacheやepgrecのエラーログではエラー箇所を特定出来なかったため、普段使うことのないPHPのデバッグ方法を調べてDB接続回りのエラー原因究明・対策をしていたら、3時間もかかっていました。

構築条件

  • Ubuntu19.10
  • Apache2.4.x
  • MySQL8.x
  • PHP7.3
  • epgrecUNA版+ pt3

必要なハードウェア

OSがwindowsではなくLinuxなので、純粋に必要なハードウェア代金のみ。PT3は生産中止なので、Amazonではプレミアがついてしまっています。PX-W3PE4もrecpt1が利用可能なので、要望があれば購入して導入の備忘録を書きます。

  • サーバ本体
  • pt3 もしくは PX-W3PE4
  • カードリーダ
  • 低消費電力HDD(運用して気づきましたが、1TB以上が無難です。低容量だとすぐにHDDがあふれてしまうので。)
  • H.264エンコードもするなら、4コア以上のCPUを推奨(Ryzen2600の場合、30分物を5分でエンコードできます)

BSも見れると番組の幅が広がります。セルフで工事する分には最安6000円でBSを映せるはずです。BS/CSの環境整備については衛星放送(BS/CS) 録画/視聴のまとめを参照。

Ubuntuのインストール

特記事項は特にありません。sambaとsshdをインストールしておくと、使い慣れたwindows機やmacから作業できるので楽かもしれません。

必要パッケージのインストール

comskip.batchを動かすためにepgrecを必要なソフトウェアの他に、wineとruby、ffmpegをインストールしています。


sudo apt update ;sudo apt upgrade

sudo apt install ntp apache2 php-fpm php-cli mysql-server mysql-client php-mysql mercurial php-xml php-mbstring libapache2-mod-php
sudo apt install pcscd libpcsclite1 libpcsclite-dev libccid pcsc-tools git build-essential autoconf unzip pkg-config samba
sudo apt install php7.3-mysql libmysqlclient-dev libmysqlclient21
sudo apt install wine ffmpeg ruby

sudo dpkg --add-architecture i386 
sudo apt update 
sudo apt install wine32
sudo timedatectl set-timezone Asia/Tokyo

sed -i 's/www-data//g' /etc/at.deny

cp /etc/php/7.3/fpm/php.ini /etc/php/7.3/fpm/php.ini.bak
sed -i 's/disable_functions/;disable_functions/g' /etc/php/7.3/fpm/php.ini
sed -i 's/;date.timezone =/date.timezone = "Asia\/Tokyo"/g' /etc/php/7.3/fpm/php.ini

diff /etc/php/7.3/fpm/php.ini /etc/php/7.3/fpm/php.ini.bak

cp /etc/php/7.3/cli/php.ini /etc/php/7.3/cli/php.ini.bak
sed -i 's/disable_functions/;disable_functions/g' /etc/php/7.3/cli/php.ini
sed -i 's/;date.timezone =/date.timezone = "Asia\/Tokyo"/g' /etc/php/7.3/cli/php.ini

diff /etc/php/7.3/cli/php.ini /etc/php/7.3/cli/php.ini.bak

sudo su -
mkdir ~/pt3
cd ~/pt3

# >>が大文字なので半角にしてください。
echo "blacklist earth_pt3" >> /etc/modprobe.d/blacklist.conf
git clone https://github.com/m-tsudo/pt3.git
cd pt3/
make clean 
make 
sudo make install
reboot

MySQLのインストールと設定

MySQL8.xでは、以下の設定をしないとキーワード予約時にエラーが発生するので、設定後にmysq1を再起動させてください。

/etc/mysql/mysql.conf.d/mysqld.cnfの中の[mysqld]の下に下記の設定を付け加えます。

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
sql-mode = ''
sudo service mysql restart

DBを作成します。ポイントは「with mysql_native_password」を指定することです。

mysql -uroot -p
create database epgrec;
CREATE USER 'epgrec'@'localhost' IDENTIFIED with mysql_native_password BY 'yourpassword';
GRANT ALL ON epgrec.* TO 'epgrec'@'localhost';
flush privileges;

epgrecの下準備

recpt1の用意

新本家の最新版にrecpt1 httpサーバ機能追加パッチを適用します。パッチは『適当な何かの別館』さんより事前にダウンロードさせて頂き、sambaなりscpなりで、Linuxサーバ上の/tmpに格納しておいてください。

cd /tmp
wget http://hg.honeyplanet.jp/pt1/archive/tip.tar.bz2
tar -jxvf tip.tar.bz2
tar -zxvf recpt1-http-rev4.tar.gz

patch -p2 -d pt1-c8688d7d6382/recpt1/ recpt1-http-rev4/recpt1-http.diff

cd /tmp/pt1-c8688d7d6382/recpt1/
wget http://hg.honeyplanet.jp/pt1/archive/tip.tar.bz2

cd /tmp/pt1-c8688d7d6382/recpt1

# PT2/3混在環境の場合にはpt1_dev.hの/dev/pt1video**を
# 必要個数、pt3video**のようにPT3用に書き換えます。
# PT1/PT2のみの場合には、pt1_dev.hの書き換えの必要はありません。

# pt3のみの環境の場合には、sedで一括置換でOKです。
sed -i 's/pt1video/pt3video/g' pt1_dev.h

./autogen.sh
./configure --enable-b25; make ; sudo make install
recpt1 -version

# 下記のように出力されればOK。

# recpt1 1.2.0
# recorder command for PT1/2 digital tuner.

# 序に録画テストも行っておく
cd /tmp
recpt1 --b25 --strip 27 20 test.ts

UNA版の必要ソフトウェアのダウンロード

作者さんが公開してくださっているので、適当な何かの別館このページから次の3ファイルをダウンロードし、サーバの/tmpにコピー(Linuxホストからはscp、windowsからならwinscpを利用)して下さい。

ブラウザから設定を行う

http://ipアドレス/epgrec

にアクセスして画面の指示通りに設定を進めてください。

設定画面は非常に解り易く作られているので、説明を見ながらでも十分に設定可能です。

usblinux_with_epgrec_UNA10

録画ファイル名の形式やその他の設定値について

個人的なメモです。『%YEAR%%MONTH%%DAY%_%HOUR%%MIN%_%TYPE%%CH%_%TITLE%』で運用してみます。

あと、ページに表示する番組表の長さは、24時間にしました。

usblinux_with_epgrec_UNA11

番組表更新のgetepgをcronに登録する

sudo cp /var/www/html/epgrec/cron.d/shepherd /etc/cron.d/
sudo vi /etc/cron.d/shepherd

# getepgの実行時間は適宜変更します。
# デフォルトだと、2時間おきに○時29分になったら番組表の更新処理がされるみたいです。
# 作者さんのデフォルトの指定がベストチョイスだったのでそのままにしました。
# あと、/var/www/htmlのところのパスは、epgrecインストール先のパスとあっていることを確認してください。
29 */2 * * *   www-data /var/www/epgrec/shepherd.php

参考にしたページ

下記のページを参考にさせていただきました。

タグ付けされた , . ブックマークする へのパーマリンク.

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください