FAQ

動きません?

epgrecはPHP+MySQLで日本語の動的コンテンツが動作するWebサーバー環境での利用を想定しています。PHPに日本語を扱うためのモジュール(mbstringなど)を欠いている、PHPのmysqlモジュールがない、そもそもPHPが動かないというようなケースでは、いろいろな不具合がでたり動かなかったりします。Linux/*nixでPHP+MySQL環境を立ち上げる方法は、ネットを探せば星の数ほど出てきますんで、まずは環境を見直しましょう。
また、SELinuxを使っている環境ではさまざまなトラブルが起き得ます。epgrecはSELinux環境で動作させることを想定していませんので、SELinuxを無効化してください。サーバー側の都合でSELinuxを無効にしたくないということであれば、あれこれ設定する必要があるかもしれません。SELinuxのドキュメントなどを参照し適切な設定を行ってください。
さらに、このサイトや、epgrecの環境設定システム設定に必要な設定と説明を記しており、ひとつでも設定を欠いていると動きません。読むのは面倒だとは思いますがインストールの前準備?epgrecのインストールと設定、その他の情報に目を通すようお願いします。

epgdumpがエラーを吐くのが気味が悪い

 cronでgetepg.phpを繰り返し実行することにより番組表は埋まるハズなので、epgdumpがエラーを吐いても普通は問題にならないです。放送時間帯外(深夜など)には録画ファイルが作成されず、epgdumpがsigsegvを吐きますが、これは正常動作です(epgdumpは入力ファイルをチェックしていないので、存在しないとsigsegvを吐きます)。
 受信する電波が弱く、TSファイルが正常でないときにもepgdumpがエラーを吐きまくることがあります。これは番組表がなかなか埋まらないという形で影響が出ますので、あまりにエラーが頻発する場合にはアンテナを見直した方がいいかもしれません。

地上波の番組表で別の局の番組が混ざってしまう

BSやCSは1局のEPGの中に全局の番組が入ってますが、地上波のEPGは各チャンネルごとに受信して、その局ごとにEPGを取得する必要があります。epgrecでは、局の受信を行いEPGを得た後でEPGを抜くために使ったテンポラリファイル(デフォルトでは/tmp/__temp.tsと/tmp/__temp.xml)を削除して次の局の受信…という順で処理しています。何らかの理由で/tmp/__temp.tsと/tmp/__temp.xmlが削除できないまま、次の局のEPGの取得に失敗すると、前の局のEPGが番組の中に入ってしまいます。
テンポラリが削除できない理由はファイルの権限で、録画コマンド(recpt1/recfriioなど)のsetuidビットを立てているというケースがもっとも多いようです。試しに、一般ユーザー権限で録画を実行し、録画ファイルを消しててみてください。

recfriio [あれこれオプション] test.ts
rm test.ts

という具合に録画後、一般ユーザー権限で普通に録画ファイルを削除してみます。削除できない、何かエラーが出るようならsetuidビットが立ってると思われます。setuidビットはepgrecに限らずいろいろなトラブルを招く原因になるので、録画コマンドのsetuidビットは落としてください。

番組表をクリックしても録画予約ができない

 昔のLinuxは/bin/shが/bin/bashのリンクが定番だったのですが最近はいろいろあるようで、bash以外のシェルでは予約できない場合があるようです。Webサーバーのユーザー(Fedora/CentOS/RHL系ではapache、Debian/Ubuntu系ではwww-data)のログインシェルを/bin/bashに変えてみてください。do-record.shの1行目も#!/bin/shではなく#!/bin/bashにした方がいいかもしれません。

録画予約はできるが録画されない

 まずは、do-record.shで録画できることを確認してください。epgrecのインストールと設定にdo-record.shのテスト方法が書いてあります。

トップページにアクセスしても真っ白で何も表示されない

 何らかの理由でエラーが発生しているがphp.ini内のerror_reportingディレクティブにnoneなどが設定されているためにエラー表示が行われない状態です。ディストリビューションの一部(CentOSあたりがそう)はerror_reportingの設定をnoneにしているようです。まず、php.iniを探し(普通は/etc/php/などの下にありCLI、CGI、Apacheモジュールのそれぞれで異なるファイルが使われるので注意してください)error_reportingの右辺をAllなどに変更してWebサーバーを再起動させましょう。
 その上でトップページにアクセスすればエラーメッセージが表示されるはずです。その表示からなにかわかるでしょう。
 なお、error_reportingをnoneに設定するのは公開Webサーバーでエラーが表示されると見かけが悪いという理由によります(サーバー用のCentOSがそうしているのはたぶんそのため)。epgrecのようにパブリックには公開されていないWebサーバでnoneにする意味はなく、トラブルの原因をわからなくする素敵な役割しかありませんのでnoneにするのはやめた方がいいでしょう。

サイト内検索

AND OR