PHPベースのサーバーサイドRSSリーダー

Google Reader

「Google Reader」終了 7月1日に ユーザー減少で - ITmedia ニュース』にあるように、Google Readerの後継を探すことになった。

代替サービスはどれも Google Reader とは程遠い操作性で期待できない。 Thunderbird に RSS 購読機能があるので、購読リストを移してみたがいまひとつ操作性が良くないし、 いろんな端末で使えないのが弱点だった。

その点 Tiny-Tiny-RSS は Google Reader からの乗り換えに最適なようだ。 ただしVPS等のサーバーを持っている必用があるのが難点だ。

mboinet/ttrss-mobile · GitHub』を使うと スマートフォンなどからアクセスできるようになる。

インストール手順

Sakura VPS 1Gプランに Debian 6.0 で apache2 + php5 を入れた環境を想定

ソースコード

ソースコードは wget https://github.com/gothfox/Tiny-Tiny-RSS/archive/1.7.9.tar.gz のように してダウンロードできる。

gitの勉強を兼ねてローカルにリポジトリを作成して取り出してみる。

$ cd ~/src
$ mkdir tt-rss
$ cd tt-rss
$ git clone https://github.com/gothfox/Tiny-Tiny-RSS.git
$ cd Tiny-Tiny-RSS
$ git checkout 1.7.9

emacs に magit を入れた状態なら ~/src/tt-rss/Tiny-Tiny-RSS のフォルダを dired で開いて

  1. ESC-x magit-status
  2. b キーを押す
  3. Switch to: ここで ? を押すとタグの一覧 (git tag) が得られる
  4. この時点での最終リリース版 1.7.9 に切り替える [2013/5/14]

自分用に config.php-dist から config.php を作成して、httpサーバーのフォルダに配置するまでを gitを使って扱いたいのだが、まだ手順がよくわからない。

aptitude

  1. apache2 libapache2-mod-php5 php5-cli が無い場合はインストール
  2. mysql-server php5-mysql php5-xmlrpc php5-curl が無い場合はインストール
    1. mysql-serverのrootのパスワードは設定しておく

データベース

  1. mysql server の root パスワードを使って ttrssdb を作成
    $ mysqladmin -u root -p create ttrssdb
  2. ttrssuser のパスワードを決めて(examplepassと仮定)アクセス権を設定
    $ mysql -u root -p -e "GRANT ALL PRIVILEGES ON ttrssdb.* TO ttrssuser@'localhost' IDENTIFIED BY 'examplepass'"
    $ mysql -u root -p -e "FLUSH PRIVILEGES"
  3. ttrssuser のパスワードを使って ttrssdb に初期データを入れる
    $ cd ~/src/tt-rss/Tiny-Tiny-RSS
    $ mysql -u ttrssuser -D ttrssdb -p < schema/ttrss_schema_mysql.sql

config.php

  1. config.php-dist ファイルを config.php にコピーしてから編集
    define('DB_TYPE', "mysql");
    define('DB_HOST', "localhost");
    define('DB_USER', "ttrssuser");
    define('DB_NAME', "ttrssdb");
    define('DB_PASS', "examplepass");
    define('SELF_URL_PATH', 'http://localhost/tt-rss/');
  2. TT-TSSのユーザー管理は使わずに Apache の Basic認証でユーザー管理をすることにする
    define('SINGLE_USER_MODE', true);

Deploy(配置)

$ cd ~/src/tt-rss
$ rsync -av --exclude=.git Tiny-Tiny-RSS/ /home/otsuka/root_html/tt-rss/
$ cd ~/root_html
$ sudo chown -R www-data.www-data tt-rss

apache2の設定

  1. localhostからのアクセスは許可、それ以外は Basic認証
  2. /etc/apache2/conf.d/tt-rss.conf ファイルを以下の内容で作成
    # apache /etc/apache2/conf.d
    # tt-rss.conf
    
    Alias /tt-rss/ /home/otsuka/root_html/tt-rss/
    
    <Directory /home/otsuka/root_html/tt-rss>
        AuthType Basic
        AuthName "TT-RSS"
        AuthUserFile /home/otsuka/share/htpasswd/htpasswd-tt-rss
        AuthGroupFile /dev/null
        require valid-user
    
        order deny,allow
        deny from all
        allow from localhost
    
        Satisfy Any
    
        DirectoryIndex index.php
    </Directory>
    
    Alias /ttrm/ /home/otsuka/root_html/ttrm/
    
    <Directory /home/otsuka/root_html/ttrm>
        AuthType Basic
        AuthName "TT-RSS"
        AuthUserFile /home/otsuka/share/htpasswd/htpasswd-tt-rss
        AuthGroupFile /dev/null
        require valid-user
    
        order deny,allow
        deny from all
        allow from localhost
    
        Satisfy Any
    </Directory>
  3. Basic認証のパスワードファイルの作成
    $ cd ~/share/htpasswd
    $ htpasswd -c htpasswd-tt-rss user
    New password: (パスワードを設定)
    Re-type password: (パスワードを設定)
  4. sudo /etc/init.d/apache2 reload

ブラウザから設定

  1. http://localhost/tt-rss/ を開く
  2. 右上の[操作][Preference]を開き、ユーザー admin のパスワードを適当なものに変更
  3. [Preference]で Time Zone を Asia/Tokyo に変更
  4. 購読リストを「Google データエクスポート」もしくは、 他のRSSリーダーからエクスポートするなどして OMPLファイルで用意し [Preference][OMPL] から読み込ませる
  5. ttrss-mobile のために APIアクセスを有効にする
    Enable API access
    Allows external clients to access this account through the API

ttrss-mobile

  1. ttrss-mobile/dist at master · mboinet/ttrss-mobile · GitHub から最新版の .tar.bz2 ファイルをもらってくる
    $ cd ~/src
    $ mkdir ttrss-mobile
    $ cd ttrss-mobile
    $ wget https://github.com/mboinet/ttrss-mobile/blob/master/dist/ttrss-mobile-1.0.tar.bz2
  2. ファイルを展開する
    $ cd ~/root_html
    $ mkdir ttrm
    $ cd ttrm
    $ tar xavf ~/src/ttrss-mobile/ttrss-mobile-1.0.tar.bz2
  3. scriptsディレクトリにある conf.js-dist を conf.js としてコピーし、必要があれば apiPath: "/tt-rss/" の値を変更する(ここでは内容の変更は必要ない)
  4. スマートフォンから http://www.example.com/ttrm/ でアクセスできる。

cron

定期的に Feedを更新するためには cron の設定が必要。 7時から23時の 12分と42分に更新を行う。

$ cat tt-rss
# cron-jobs for TT-RSS
#
MAILTO=root
12,42 7-23 * * *    www-data /usr/bin/php /home/otsuka/root_html/tt-rss/update.php --feeds --quiet
$ sudo cp tt-rss /etc/cron.d/

課題

  1. ttrss-mobile でカテゴリ(フォルダー)内のコンテンツを出す方法が分からない (できない?)
  2. フィードの購読状況等を手早くバックアップしておきたいが、データベースのダンプまでは必要ない
    • OPMLで公開するためのURLが発行されるのでこれをwget等で保存したかったのだが、Single User Modeでは動作しないのかもしれない

履歴

リンク


トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-05-20 (月) 13:04:50 (3993d)