ubuntu+epgrec(UNA版)+pt3環境構築

Ubuntuを普通にインストールし、その上でepgrec UNA版をインストールする覚書です。USBメモリにインストールする投稿が目立っていた為、UNA版を使う際にはUSBメモリかSSDが必要と誤解を与えてしまったようなので、epgrec UNA版のインストールのみ投稿を別にしました。USBbootするUbuntu-NAS① epgrec+pt3+minidlna+kvm環境を構築するの投稿から最低限必要な設定のみ取り出しただけです。最後に最新のpt3の録画品質についての所感を追記しました。

構築条件

  • UbuntuServer(13.10、14.04)。64bit版。
  • HDDは500G以上を推奨(500Gだと最高画質の30分4Gで計算すると50時間強)。
  • epgrec (UNA版)+ pt3
  • nginxを利用(Apacheは使っていないので注意)

必要なハードウェア

OSがwindowsではなくLinuxなので、純粋に必要なハードウェア代金のみ。格安サーバと、pt3、2.5inch HDD、メモリ2G以上(4G以上推奨)の構成が必要です。Bay-TrailNT-ITX/PW120Plus環境は後追いで作ってみたいと思っています。

  • サーバ本体(格安サーバか、80plus gold以上の電源で構築。メモリは最低2Gbyte。個人的にはBay-TrailNT-ITX/PW120Plusで作りたい。)
  • pt3
  • カードリーダ
  • 低消費電力HDD(運用して気づきましたが、1TB以上が無難です。低容量だとすぐにHDDがあふれてしまうので。)

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

epgrec環境構築例(本家/STZ版/UNA版)

epgrecの環境構築例が当Blog内に数パターンある為、構成別にまとめました。参考にしてください。

投稿 構成 難易度 コメント
ubuntu+epgrec(UNA版)+pt3環境構築 epgrec(UNA版) + nginx + php5-fpm epgrec(UNA版)インストールの最小構成です。
USBbootするUbuntu-NAS① epgrec+pt3+minidlna+kvm環境を構築する epgrec(UNA版) + nginx + php5-fpm USBメモリ(SSD可)にUbuntuをインストールし、録画はRAID構成のHDDに行っています。単純にディスクの延命対策と低消費電力化するテクニックを使っているだけなので、USBメモリはSSDと読み替えてもらってOKです。②、③の記事まで実行するとminidlnaやsamba、KVMまでが同居する環境になります。
ubuntu13.10+epgrec(本家)+pt3+nginx+php5-fpm 環境構築 epgrec(本家) + Apache 本家です。安定して運用出来ます。開発が止まっているようです。
ubuntu13.10+pt3+STZ版epgrec+nginx+php5-fpmの環境構築 epgrec(STZ版) + nginx + php5-fpm STZ版はepgrecやrecpt1等をまとめて公開してくれているので、組合せによるトラブルが出にくいので、構築しやすいです。最近まではSTZ版をメインに利用していました。今はUNA版に移りつつあります。
ubuntu13.10+pt3+epgrecの環境構築 epgrec(STZ版) + Apache 上記のApache版。nginxとApacheを比べるとnginx上に構築した方がweb画面の遷移が速いが、Apacheの方がセットアップは楽なのでnginxで挫折した方向け
消費電力30W以下 Ubuntu13.04&PT2/PT3&epgrec サーバを作る epgrec(STZ版) + Apache PT2を最新カーネルでビルドする方法も一緒に書いています。
組み合わせを選ぶ基準として
epgrecは本家、STZ版、UNA版と色々な版を開発者の方が出して下さっていますが、開発が既に止まっているものもあります。現状で開発が活発なのはUNA版となります。3種ともに比較させて貰いましたが、構築が一番楽なのがSTZ版、便利に使えるのがUNA版、本家は安定運用実績が多い為、カスタマイズ(プログラム修正)したい場合に向くと言う感想を持っています。
コメント欄について
各記事のコメント欄で、コメントの最初に『【雑談】』と書いてもらえれば、情報交換の為に閲覧者間での雑談に使ってもらって構いません。メールアドレスは公開されないのでフリーのメアドでも使って下さい。誹謗中傷はしない方向でお願いします。

Ubuntuのインストール

Ubuntu14.04 LTSのインストールと初期設定(全体的にスクリーンショットで解説)』を参照してインストールを済ませておいてください。特記事項は特にありません。IPアドレスは固定IPにしておいた方が良いと思います。

ntpのインストール


sudo apt-get install ntp

service ntp stop

ntpdate ntp.ubuntu.com
service ntp start

MySQL、nginx、PHP等のインストール

apacheで環境構築するのが普通ですが、今回はApacheを使いません。かわりに軽量のHTTPとリバースプロキシのサーバを兼ねたnginxを使います。更にnginxでリバースプロキシの設定を行い、epgrecはphp5-fpmで動かすことにします。

何故、Apacheではなくnginx+php5-fpmを使うかと言うと、速いからです。

sudo apt-get install nginx php5-fpm  php5-cli mysql-server mysql-client php5-mysql
sudo apt-get clean

at.denyの修正

at.denyが設定されていると予約が出来ないので、/etc/at.denyを修正します。面倒なのでsedコマンドで。

# 以降、rootユーザーでの作業となるので、rootになっておく。
sudo su -
sed -i 's/www-data//g' /etc/at.deny

php.iniの修正

はまりやすい箇所のようなので、書き方を工夫しました。/etc/php5以下のphp.iniは全部修正してください。

# php.iniのすべてに対して、disable_functionsのコメントアウトと、date.timezoneの設定を行う。
# findでphp.iniを検索して、他にも該当ファイルがあればそれらも修正してください。
find /etc/php5 -name php.ini

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

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

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

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

mysql は、apt-getでインストールした後に、ロケール設定をutf-8に切り替えておきます。

vi /etc/mysql/my.cnf

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

[client]
default-character-set=utf8

[mysqld]
character-set-server=utf8

 

service mysql restart

# 念の為、MySQLが起動している事を確認しておく
ps aux | grep mysql

DBを作成します。

mysql -uroot -p
create database epgrec;
grant all on epgrec.* to epgrec@localhost identified by 'yourpassword';
flush privileges;

PT3とepgrecの下準備

epgrecのセットアップ前にPT2/PT3のドライバをインストールして、USBカードリーダを使えるようにしておきます。


# 共通して必要なソフトのインストール
sudo apt-get install pcscd libpcsclite1 libpcsclite-dev libccid pcsc-tools git build-essential autoconf unzip pkg-config

pcsc_scan | grep "Japanese Chijou Digital"

# echo "<<<<< PT3 Driver >>>>>"

PT3のドライバインストール

sudo su -
cd /tmp
echo "blacklist earth-pt1" >> /etc/modprobe.d/blacklist.conf
git clone https://github.com/m-tsudo/pt3.git
cd pt3/
make clean && make && sudo make install
reboot

# 再起動後に、/dev/pt3video0~3がある事を確認する。
ls -la /dev/pt*video*

PT2のドライバインストール

PT3のみの人は無視してください。最近、PT2用のドライバは改変なしでカーネル3.8.0以上に対応できるようです。コミットログにもそのようにコメントがありましたので。


cd /tmp
rmmod earth_pt1
sudo echo "blacklist earth-pt1"  >> /etc/modprobe.d/blacklist.conf

wget http://hg.honeyplanet.jp/pt1/archive/tip.tar.bz2
tar -jxvf tip.tar.bz2
cd /tmp/pt1-c8688d7d6382/driver
make clean && make && sudo make install
reboot

# 再起動後に、/dev/pt1video0~3がある事を確認する。
ls -la /dev/pt*video*

recpt1の用意

cd /tmp
wget http://hg.honeyplanet.jp/pt1/archive/c44e16dbb0e2.zip
unzip c44e16dbb0e2.zip
cd pt1-c44e16dbb0e2/arib25
make clean && make && make install

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

tar -jxvf 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 && 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版の必要ソフトウェアのダウンロード

作者さんが公開してくださっているので、適当な何かの別館このページから次の2ファイルをダウンロードし、サーバの/tmpにコピー(Linuxホストからはscp、windowsからならwinscpを利用)して下さい。ダウンロード時にパスワードが必要ですが、作者さんのサイト適当な何かの別館をきちんと見ればわかります。

  • epgdumpUNA130928.tar.gz
  • epgrec_UNA_140126.tar.gz

epgdump(UNA版)のインストール

epgdump、epgrecはwinscp等で予め/tmpディレクトリ以下にアップロードしておいてください。


cd /tmp

tar -zxvf epgdumpUNA130928.tar.gz

cd /tmp/epgdump
make && sudo make install

cd /tmp

# recpt1のテストで出力したTSファイルから番組表が取得できるか確認する。

epgdump  27 test.ts test.xml -xml

# xmlファイルが出来ている事を確認しておく。
cat test.xml

epgrec(UNA版)のインストール

tar -zxvf epgrec_UNA_140126.tar.gz
# readmeが入っているので読む。PT3を使っているので、パッチはあてない方向で。
cat readme.txt

mv epgrec /var/www/

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

chmod 777 cache templates_c video thumbs settings
chmod 666 thumbs/index.html video/index.html
chmod 755 do-record.sh
chown www-data:www-data do-record.sh
vi config.php

config.phpは設定方法がきちんと書かれているので、コメントを読みながら調整します。今回は下記のようにしました。

define( "TUNER_UNIT1", 2 );  // 0 => 2に変更。PT3が2枚なら4。
define( "TUNER_UNIT2", 0 );  // 未使用との事なので、そのままにしておく
define( "USE_RECPT1", TRUE ); // FALSE => TRUEに変更。

nginxの設定を行う

vi /etc/nginx/nginx.conf

httpセクションの直下にcharset UTF-8;を追記します。

http {
 charset UTF-8;

下記の設定を追記。デフォルトで他の設定があったらコメントアウトでOK。

vi /etc/nginx/sites-enabled/default

 

server {
  listen 80 default_server; #★default_serverで無い場合には、listen 80;のみでOKです。
  root /var/www;
  index index.html index.htm index.php;
  server_name usblinux; #★ここはご自身のLinuxサーバのホスト名に変更してください。
  location / {
	  try_files $uri $uri/ /index.html;

	  location ~ .php$ {
	    fastcgi_split_path_info ^(.+.php)(/.+)$;
	    fastcgi_pass unix:/var/run/php5-fpm.sock;
	    fastcgi_index index.php;
	    include fastcgi_params;
	  }
	}
}

 

service nginx restart

ブラウザから設定を行う

http://ipアドレス/epgrec

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

設定画面は非常に解り易く作られているので、説明を見ながらでも十分に設定可能です。取りあえず、最初の画面と、最後のEPG受信時の画面を載せておきます。

usblinux_with_epgrec_UNA10

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

個人的なメモです。『%YEAR%%MONTH%%DAY%_%HOUR%%MIN%_%TYPE%%CH%_%TITLE%』で運用してみます。FILESYSTEM_ENCODING定数に返還前の文字コードを設定する事が出来るとありましたが、epgdumpでxmlをはかせてからnkf –guessで文字コードを調べたところ、UTF-8 (LF)でxmlファイルが出力されているようだったので、特にFILESYSTEM_ENCODING定数は変更しませんでした。ここは微調整するかもしれません。

あと、ページに表示する番組表の長さは、Apacheの場合には8時間程度にしておかないと遅くて我慢できませんが、nginx+php5-fpmの場合には、24時間にしても十分に速い為、18時間にしました。

※ ページに表示する番組表の長さを24時間にしたら、現時刻を示す赤線が表示されなくなり、予約しようとすると『予約できません』とエラーになりました。24時間に設定すると宜しくないようです。18時間に設定し直したら直りました。回避策が妥当だった為、特に原因調査はしていません。

epgrec設定時の注意事項(RAMディスクを使っている場合のみ)

step3で『shepherd.php::テンポラリー容量が不十分なため衛星波のEPG更新が出来ません。空き容量を確保してください。』と言うエ ラーが出た場合には、単純に/tmpの容量が小さいです。/etc/fstabの/tmp用に確保したRAMディスクの容量を大きくします。

最後に、設定が終わって、step6の画面になると、EPGの受信画面になります。そこで、1つ1つ受信する方式(getepg.php)と、全チューナー総動員で受信するパターン(shepherd.php)に分かれる様です。/tmpディレクトリは768m程度しかありませんので、1つ1つ受信する方式(getepg.php)を選択します。下図の赤枠の方ですね。

usblinux_with_epgrec_UNA11

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

sudo cp /var/www/epgrec/cron.d/getepg /etc/cron.d/
sudo vi /etc/cron.d/getepg

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

最新ドライバでのpt3の録画品質について

以前はpt2の方がフレームドロップが少ない(ほぼ0)傾向があったのですが、最新のpt3のドライバは録画品質が初期に比べて著しく向上してきています。コミットログを見ると、順調に更新して下さっているようです。一番最初にこちらで構築事例をアップした時は、高速で流れるテロップが多少乱れたりしていたのですが、既にそのような事もなくなっていました。

更にいうと、ffmpegで2パスエンコードする際に10/135ぐらいの確率でエンコード失敗していたのが、エンコード失敗が無くなっていました。レガシーなPCIを搭載するマザーボードも数が少なくなってきたことから、そろそろPT2を使っている環境も移行の時期かもしれません。ずっと前に環境構築したままの場合には、再構築してみるのも良いかもしれませんね。再構築する場合には、PT3の3枚挿しまではやった事がありますよ。

タグ , , . ブックマークする パーマリンク.

ubuntu+epgrec(UNA版)+pt3環境構築 への34件のフィードバック

  1. 匿名 の発言:

    server {
    listen 80 default_server;
    root /var/www;
    index index.html index.htm index.php;
    server_name usblinux;
    location / {
    try_files $uri $uri/ /index.html;

    location ~ .php$ {
    fastcgi_split_path_info ^(.+.php)(/.+)$;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    }
    }

    この部分ですが,location / {}の閉じ括弧がありませんので,閉じ括弧を補ったほうがよいのではないでしょうか.

    • lasas の発言:

      ご指摘ありがとうございます。仰る通り、閉じかっこが不足しておりましたので補足しました。

  2. 匿名 の発言:

    お世話になります。こちらのサイトで親切に説明して頂いて初めてepgrecの設定に成功しました。
    ありがとうございます。

    ところで、nginx環境下でのリアルタイム視聴は可能でしょうか?
    当方の環境(Ubuntu 14.04)では504 Gateway Time-outと出てしまい、リアルタイム視聴は叶いませんでした。
    現在はVLC単独で視聴していますが、可能にする方法をご存知でしたらぜひご教授願います。

    • lasas の発言:

      当BLOGの通りに設定を行ったとすると、recpt1がリアルタイム視聴に対応していないと思います。
      適当な何かの別館を参照して、[リアルタイム視聴を利用する場合]に書いてあるようにrecpt1 httpサーバ機能追加パッチを当てて、recpt1をインストールし直す必要があると思います。

      後はhostsにサーバー名、IPアドレスは書いておいた方が良いようですね。

      当方では、リアルタイム視聴の必要性が無い事からリアルタイム視聴は実践していないので、推測でのご回答となってしまいますが、上記試してみて下さい。

      • 匿名 の発言:

        早速の御返事有難うございます。

        recpt1 httpサーバ機能追加パッチを当て、hostsにも書き込んでみましたがリアルタイム視聴はできません。。。

        • lasas の発言:

          念の為に確認させて頂きますが、リアルタイム視聴した際のやり方については間違っていませんよね?
          具体的には下記の手順を踏んでいると思いますが、認識はあっていますか?

          1.recpt1にパッチを当てる
          2.サーバ側でrecpt1を待ち受けポート付で実行させる
          3.クライアント側から接続する

          最初の質問でnginx環境下でと仰られているので、どこかで勘違いされているような気がします。

          具体的に『やった事』を順序立てて明記して頂ければもう少し的を絞った回答が出来るかと思います。
          コマンドベースで解り易く記載してもらえると、私だけではなく他の方からもアドバイスがもらえるかもしれません。

          最後に、老婆心ながら・・・
          リアルタイム視聴をする際に、epgrecの録画モードとでチューナーの排他利用がきちんと出来る事を確認した上でチャレンジしようとしていますか?
          また、リアルタイム視聴をする際のrecpt1サーバの起動はどのようにするつもりでしょうか?簡単なウェブ側のプログラムをご自分で用意するつもりでしょうか?
          恐らくはrecpt1でサーバを立ち上げても、その後に幾つも解決すべき問題があると思いますよ。
          市販のHDDレコーダーのようにリモコンを押すだけで簡単に見ながら後ろで録画するにはそれなりに手をかけないと出来ないと思います。

  3. 匿名 の発言:

    >1.recpt1にパッチを当てる
    >2.サーバ側でrecpt1を待ち受けポート付で実行させる
    >3.クライアント側から接続する
    こちらの手順は行えていると思います。
    今日は時間がなく、サーバーをいじれないので、後日詳細な『やった事』について書かせていただきます。

    >リアルタイム視聴をする際に、epgrecの録画モードとでチューナーの排他利用がきちんと出来る事を確認した上でチャレンジしようとしていますか?
    リアルタイム視聴とepgrecの録画を同時に行えることの確認、ということでしょうか? であれば、同時に行えることは確認しております。
    現在VLCメディアプレイヤーを使っていますので、番組表で見たい番組を確認して、
    vlc http://[IP Address]:[Port]/[Channel]
    とコマンドを打って視聴しています。 また、その裏でepgrecによる録画が可能であることを確認しました。
    epgrecの番組表から直接視聴できるのなら、使い勝手が良くなるので質問させていただきました。

    時間がなく簡潔にしすぎて申し訳ありません。
    後日詳細に書きます。

    • lasas の発言:

      ご回答ありがとうございます。

      >epgrecの番組表から直接視聴できるのなら、使い勝手が良くなるので質問させていただきました。
      確かに使い勝手が良さそうですね。タブレット端末でアクセスして、HDMIでTV出力したりしたらおもしろそうですね。
      暇を見てもう少し調査してみようかと。面白いネタをありがとうございます。

      下記は、強引に調査した経緯の記録ですので、そもそもアクセス方法が間違っているかもしれません(高確率で間違っている気がします)。

      取っ掛かりが欲しかったので、コードをgrepしたところ、watch.phpと言うファイルがありました。
      http://server_ip/epgrec/watch.php
      で何か画面が出るのかと思い、アクセスしてみましたが、真っ白のエラー画面でした。

      ログ(/var/log/nginx/error.log)には下記のように出ており、 AND ANDと言う所でSQLの構文エラーになっているので、前後のコードからtypeを入れれば良い事が解り、
      SELECT COUNT(*) FROM Recorder_reserveTbl WHERE complete = ‘0’ AND AND endtime > now() AND starttime < addtime( now(), '00:03:00' ) http://epgrec_ip/epgrec/watch.php?type=GR
      として、アクセスしたら、504 Gateway Time-outと出ました。
      エラーは下記です。
      [error] 1914#0: *475 upstream timed out (110: Connection timed out) while reading response header from upstream, client: **.**.**.**, server: epgrec_server, request: “GET /epgrec/watch.php?type=GR HTTP/1.1”, upstream: “fastcgi://unix:/var/run/php5-fpm.sock”, host: “**.**.**.**”

      最初におっしゃられていたエラーはこれの事ですか?
      これの事でしたら、確かにnginxの設定が悪そうと言う流れになりそうですね。

      そこまで時間が無いので、取りあえず、30、40分程度で試してみた範囲が以上です。
      recpt1にパッチを当てた上で余裕のある時に確認してみます。

      • lasas の発言:

        1つの解決策として、リアルタイム視聴に最初から対応しているfoltiaの導入があります。

  4. 匿名 の発言:

    こちらのサイトを参考に設定しておりますが、番組表から予約を行おうとすると「ジョブNoの取得に失敗」とのエラーを出力し、予約ができません。

    何か考えられるものがあればご教示いただけないでしょうか?

    • lasas の発言:

      epgrecではatコマンドによる予約録画をするように出来ています。
      そのatによるジョブ登録に失敗するとそんなようなエラーが出た記憶があります。

      まずは/etc/at.denyの中を見て、www-dataの記述が無いか確認して下さい。もしもwww-dataの記述があれば、その行を削除します。
      at.denyに問題が無ければ、root になってから、

      sudo www-data
      で、www-dataユーザーになった後に、
      echo “date >> date.txt” | at now
      atq
      とでもして、www-dataユーザーでatコマンドが使える事を確認して下さい。

      • 匿名 の発言:

        返信有難うございます。

        確認してみたところ、
        warning: commands will be executed using /bin/sh
        Cannot open lockfile /var/spool/cron/atjobs/.SEQ: No such file or directory

        と帰ってきました。
        /var/spool/cron/atjobs/.SEQ を作成したのですが、
        warning: commands will be executed using /bin/sh
        Cannot create atjob file /var/spool/cron/atjobs/a0000201675821: Permission denied

        と出力されております。
        適切なパーミッションを教えていただけませんでしょうか?

        • lasas の発言:

          確認してみたら、下記のようになっていましたよ。

          ls -la /usr/bin/at
          # -rwsr-sr-x 1 daemon daemon 51464 10月 21 2013 /usr/bin/at

          sudo ls -la /var/spool/cron/atjobs/.SEQ
          # -rw——- 1 daemon daemon 6 10月 11 13:00 /var/spool/cron/atjobs/.SEQ

          sudo ls -la /var/spool/cron/atjobs/
          # 合計 12
          # drwxrwx–T 2 daemon daemon 4096 10月 11 13:00 .
          # drwxr-xr-x 5 root root 4096 4月 30 22:45 ..
          # -rw——- 1 daemon daemon 6 10月 11 13:00 .SEQ

          https://bugs.launchpad.net/ubuntu/+source/at/+bug/371536
          もご参考にしてください。

          • 匿名 の発言:

            確認ありがとうございました。

            上記のとおりに設定したところ、無事に予約することが出来ました。
            ありがとうございました。

  5. 魔王 の発言:

    sed -i ‘s/;date.timezone =/date.timezone = “Asia/Tokyo”/g’ /etc/php5/cli/php.ini
    このsedが通らないのは Asia/Tokyoで半角スラッシュ使ってるからです。半角スラッシュの前にエスケープ文字(円記号か半角バックスラッシュ\)を入れればOKです

    • lasas の発言:

      ご指摘ありがとうございます!!!

      指摘されて初めて気づきました。
      修正しておきますね。

  6. sb の発言:

    いつもお世話になっております。
    sudo nginx -t
    コマンドで
    nginx: [emerg] unexpected “}” in /etc/nginx/sites-enabled/default:71
    nginx: configuration file /etc/nginx/nginx.conf test failed

    このエラーが出ます。
    nginxがどうしてもうまく動きません。EpgrecUNAとapche2の組み合わせは難しいでしょうか?

    • lasas の発言:

      nginxとepgrecUNAの組み合わせも、apache2とepgrecUNAの組み合わせも動くはずです。
      単純な設定ミスが原因でエラーが出ているだけです。

      >このエラーが出ます。
      nginxの設定が間違っているとの指摘なので、エラーメッセージの通り、71行目辺りに誤記があるのではないでしょうか?
      閉じかっこを忘れていたり、セミコロンを忘れていたりすると良く目にするエラーだと思います。
      恐らくは、単純なケアレスミスだと思いますので、再度見直してみて下さい。
      なお、指摘してくれるエラーの行数は、『その近辺』と言うだけなので、愚直に71行目だけを疑わずに、設定ファイル全体について見直しをしてください。

      >nginxがどうしてもうまく動きません。EpgrecUNAとapche2の組み合わせは難しいでしょうか?
      勘違いがあるような気がします。
      Apacheもnginxも両方ともデフォルトで80番ポートを使うウェブサーバです。
      両方ともインストールした場合、デフォルトのままだとポートの競合で動かないのではないでしょうか?
      nginxを使うと決めたら、Apacheはアンインストールした方が余計なトラブルが減ると思いますよ。

  7. sb の発言:

    お忙しいところ早速のご返事有り難うございます。
    /etc/nginx/sites-enabled/default

    このファイルにサイトに解説していただいた

    server {
    listen 80 default_server;
    root /var/www;
    index index.html index.htm index.php;
    server_name usblinux;
    location / {
    try_files $uri $uri/ /index.html;

    location ~ .php$ {
    fastcgi_split_path_info ^(.+.php)(/.+)$;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    }
    }
    }

    をコピペで追加し
    sudo nginx -t
    コマンドで
    nginx: [emerg] unexpected “}” in /etc/nginx/sites-enabled/default:71
    nginx: configuration file /etc/nginx/nginx.conf test failed
    のエラーが出ます。
    最後の}の位置を改行すると最後尾の:71が72行目や73行目に変わります。上記コメントで匿名様が「location / {}の閉じ括弧がありません」とご指摘でしたので}の問題かと考えているのですが位置を変えても [emerg] unexpected “}”このエラーが出てしまうのです。

    今nginxを解説サイトで勉強せさてもらってます。
    apche2より高速なのを楽しみにうまく設定できるよう頑張ってみます。
    お返事ありがとございました。

  8. sb の発言:

    申し訳ありません。72行目にコメントアウトされていない { を見つけました。{をコメントアウトしたところsudo nginx -tのエラーが[emerg] a duplicate default server for 0.0.0.0:80 in /etc/nginx/sites-enabled/default~:21
    nginx: configuration file /etc/nginx/nginx.conf test failed

    に変化いたしました。単純な見落としでお目汚し、コメント欄汚して申し訳ありません。また設定ファイルを見なおしてまいります。

  9. sb の発言:

    server {
    listen 80 default_server;
    の部分を
    server {
    listen 80;
    に変更するとEpgrecにアクセスできました。
    但しsudo nginx -tコマンドで

    nginx: [warn] conflicting server name “usblinux” on 0.0.0.0:80, ignored
    が出ます。
    そこで
    server
     {listen 自分のipアドレス:80 default_server;
    でエラーが出なくなりました。

    • lasas の発言:

      設定完了のご連絡ありがとうございます。
      無事に設定できたようで安堵しました。

      > {listen 自分のipアドレス:80 default_server;
      ここは私の解説不足があったようですね。
      usblinuxと言うのは、私の方の環境でのホスト名なので、修正して頂いた設定が正解です。

      nginxを初めて触る方にはちょっと解説が不親切だと思われますので、
      修正しておきますね。

  10. sb の発言:

    ご丁寧にありがとうございました。
    2週間ずっと一人で悩み、試行錯誤していたのですが相談させていただいたらあっという間に解決いたしました。
    nginxの勉強にもなりました。感謝しております。
    本文の修正も迅速に対応して頂いてありがとうございます。
    後、魔王様ご指摘の
    sed -i ‘s/;date.timezone =/date.timezone = “Asia//Tokyo”/g’ /etc/php5/fpm/php.ini

    スラッシュが2個になっているのですが、一つバックスラッシュではないでしょうか?
    ここも一度引っかかりましたので

    • lasas の発言:

      >2週間ずっと一人で悩み、試行錯誤していたのですが相談させていただいたらあっという間に解決いたしました。
      >nginxの勉強にもなりました。感謝しております。
      twitter等であれば、気軽に聞けるのですが、ウェブページのコメント欄では、少しハードルが高いですよね。
      2時間以上悩んで解決しない場合には、ご相談いただければわかる範囲で回答させて頂きます。

      >スラッシュが2個になっているのですが、一つバックスラッシュではないでしょうか?
      ご指摘ありがとうございます。仰る通りです。修正しておきました。

  11. 匿名 の発言:

    epgdump/epgrecともにバージョンが新しくなっており,以前のバージョンをダウンロードすることが適いません.また,tar.gzファイルではなくtarファイルでの配布に変更された様子ですが,解凍方法に変更などはありますか,いかがでしょうか.

  12. 匿名 の発言:

    こちらのサイトを参考にインストールを行っていたのですが、「epgrec(UNA版)のインストール」に記載されているソフトが削除されてしまっています。
    epgrecUNA 150509版用 fix2をダウンロードしてみたのですが、解凍後のディレクトリ構成が異なっているため、
    chmod 777 cache templates_c video thumbs settings
    以降の設定方法がわかりませんでした。
    現在公開されているソフトについて解説をご更新いただけると助かります。

    • lasas の発言:

      具体的なディレクトリ構成を出してもらえると助かります。
      対処するのが難しければ、UNA版以外は頻繁に更新されていないと思いますので、他のepgrecにすれば、セットアップできるような気がします。

  13. sb の発言:

    いつもお世話になっております
    EpgrecUNAのインストールの時

    mv epgrec /var/www/

    この部分なのですが、このままだとwww以下に各ファイルが散らばってしまうのですが、-rオプションをつけてディレクトリを複製しても同じようにインストールできますでしょうか?

    またphp.iniの修正の欄なのですが、13行目も一つバックスラッシュになってない気がします。

    • lasas の発言:

      mv epgrec /var/www/
      ですが、フォルダ移動ごと移動して、/var/www/epgrecができませんか?

      >またphp.iniの修正の欄なのですが、13行目も一つバックスラッシュになってない気がします。
      ご指摘ありがとうございます。修正しました。

  14. COLT の発言:

    はじめまして、coltと申します
    ただいま、混在環境でサーバ作っているのですが、以下に書いてあるとおりpt1video0 1 2 3 の4つを変更したのですが、PT2側だけcan not tuned になってしまいます どのようにしたらいいのでしょうか?
    今頃になっての質問で申し訳ありませんがよろしくお願いします

    # PT2/3混在環境の場合にはpt1_dev.hの/dev/pt1video**を
    # 必要個数、pt3video**のようにPT3用に書き換えます。
    # PT1/PT2のみの場合には、pt1_dev.hの書き換えの必要は無い
    以下のように書き換えてみました
    char *bsdev[NUM_BSDEV] = {
    “/dev/pt3video1”,
    “/dev/pt3video0”,
    “/dev/pt1video5”,
    “/dev/pt1video4”,
    “/dev/pt1video9”,
    “/dev/pt1video8”,
    “/dev/pt1video13”,
    “/dev/pt1video12”
    };
    char *isdb_t_dev[NUM_ISDB_T_DEV] = {
    “/dev/pt3video2”,
    “/dev/pt3video3”,
    “/dev/pt1video6”,
    “/dev/pt1video7”,
    “/dev/pt1video10”,
    “/dev/pt1video11”,
    “/dev/pt1video14”,
    “/dev/pt1video15”

    • lasas の発言:

      記載内容は合っていると思いますが・・・
      ドライバを読み込めていないとか、そう言った問題も疑ってみてください。

      /var/log/messages等のログも要確認ですね。

      • colt の発言:

        お返事ありがとうございなす
        ドライバの読み込みがうまくいってなかったみたいでインストールを何度かやりなしているうちに動くようになりました
        番組表取得までこぎ着けたので後もう少しです
        ありがとうございました
        また、何かうまくいかないことがありましたら質問しますので、よろしくお願いします

  15. tokyo-joe の発言:

    初めまして。
    epgrecで録画を予約しても、videoフォルダに録画ファイルが保存されない場合、どのような原因が考えられるでしょうか?

    ・端末からrecpt1を直接実行する
    ・端末から/var/www/html/epgrec/do-record.shを直接実行する(必要な変数を渡したうえで)
    であれば、ちゃんとホームディレクトリ上に録画ファイルが生成されます。

    設定・その他の情報ですが、
    ・videoフォルダは、一旦削除の上、システムとは別ドライブへのシンボリックリンクを作成
    ・シンボリックリンクの所有者、グループはwww-data。permissionは777
    ・epgrec上の「録画済み番組」を見ると、ちゃんと録画されたことになっている
    ・予約時、録画時にepgrec上でエラーメッセージは出ない
    ・Ubuntu 14.04.04 64bit
    という感じです。

    ちょっと情報量が少ないかもしれませんが、思い当たるところがあれば、お時間あるときにアドバイス下さい。

    • lasas の発言:

      情報が少ないので、何となくのコメントですが・・・・

      思いつく原因
      ・at.denyにwww-dataが記載されている。
      ・パーミッション回り
      ・epgrecとdo-record.shをインストールする際に、違う版を使った(例えば本家とepgrec UNA版)等

      切り分け
      ・videoディレクトリは一旦シンボリックリンクをやめて、パーミッションを再度見直してからテストする。
      ・www-dataユーザーにsuして、録画コマンドを実行してみる。

sb へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

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