Tiny Tiny RSSサーバを立ち上げ
参考にしたページ
https://goozenlab.com/blog/2019/07/tt-rss-pi-install/
https://git.tt-rss.org/fox/tt-rss/wiki/InstallationNotes
環境
- さくらVPS 1Gプラン
- CentOS7
- Apache 2.4
- PHP 7.3
- MariaDB 10.4
- Let’s EncryptでSSL化済み
※ 前提としてvirtual hostでサブドメインを切って運用してます。公開ディレクトリはpublic_htmlにしています。 ここは自身の設定に合わせて/var/wwwなりに読み替えて下さい。
大まかな流れ
CMS導入とだいたい一緒です。
- DBの用意
- gitから引っ張ってきて展開
- インストール用に各パーミッション一時変更
- WEB経由でアクセスしてインストール作業
- cronでRSS更新を設定
DB設定
# mysql -u root > CREATE DATABASE ttrss_db; > CREATE USER ttrss IDENTIFIED BY '<password>'; > GRANT ALL ttrss_db.* TO ttrss@localhost IDENTIFIED BY '<上記password>'; > quit
gitからclone
# cd ./public_html/ # git clone https://git.tt-rss.org/fox/tt-rss.git tt-rss
この時、もしURLをドメイン直下にするのであれば公開ディレクトリ直下にtt-rssディレクトリ内のファイルを移動して展開します。
デフォルトだとhttps://ほにゃらら/tt-rssというURLになるはず。ここだけinstall時に書き換え出来ると思ったけど出来なかったので。
パーミッションを一時的に変更
installをするとconfig.phpを生成して、この中にDBへのアクセス情報なんかを書込みます。だから書き込み権限がinstall時のみ必要です。
環境によってはinstall時にエラーになるかもしれません。その場合はconfig.phpの内容がブラウザにエラーと共に表示されます。パーミッションをさらに設定するなりして下さい。
※危険だから後で戻すのを忘れずに
# chmod 777 public_html
インストール
後は実際にブラウザから接続してinstallします。
https://<ドメイン>/install/ へアクセスします。
DBのHost nameはlocalhostであれば記入の必要はありません。もし他のHostにDBだけがあるのであれば接続情報を(その場合先述のGRANT文も合わせて直さないといけませんけどね)
インストールが正常に完了したら設定したURLへ飛んでTiny Tiny RSSへログインします。
ユーザー: admin
パスワード:password
がデフォルトで設定されているので、これで入ります。
その後は設定へ行きパスワードを変更したり必要があればユーザーを追加します。余談ですがTiny Tiny RSSではパスワード変更は任意文字列ではなくてランダムな文字列が自動で振られる仕組みでした。
intlモジュールのトラブル
私の環境では以下のエラーが発生しました。
PHP UConverter class is missing, it’s provided by the Internationalization (intl) module.
PHPのintlモジュールがないために発生するエラーのようです。
解決は以下の通り
# yum list | grep intl # yum install php73-php-intl.x86_64 (※使用するphpのverに合わせて) # yum list installed | grep intl php73-php-intl.x86_64 7.3.19-1.el7.remi @remi-safe # rpm -ql php73-php-intl.x86_64 /opt/remi/php73/root/usr/lib64/php/modules/intl.so # vim php.ini (php.iniの場所は各々の環境による。今回は/etc/以下) 以下を追記 [extention] extension=/opt/remi/php73/root/usr/lib64/php/modules/intl.so # systemctl restart httpd # php -m | grep intl (モジュールが読み込まれてるかの確認) intl
後はもう一度installをし直せば通るはずです。
cronの設定
# crontab -e 追記 */30 * * * * /usr/bin/php <ディレクトリ>/public_html/update.php --feeds --quiet
この場合30分間隔でRSSを更新しています。
RSSクライアント(ReadKit)と連携
ブラウザからでも使えるんですが、RSSクライアントがあった方が便利。ということでReadKitを導入しました。2020/6/19時点で1200円だったかな。
他にもプラグインオフィシャルによればReederなんかでも使えるそうです(自分では未確認だけど)
連携までの流れ
feverプラグインをTiny Tiny RSSに導入し、このプラグインのAPIでReadKitと繋ぎます。
feverプラグイン導入
参考ページ
https://github.com/DigitalDJ/tinytinyrss-fever-plugin
gitからpluginディレクトリへ引っ張ってくる
# cd public_html/plugins.local $ git clone https://github.com/DigitalDJ/tinytinyrss-fever-plugin fever
ブラウザからTiny Tiny RSSへ行き、設定→プラグイン(下の方にタブがあります)→画像内のfeverプラグインを選択→プラグインを有効化
先程のpluginタブの更に下にfeverの設定タブが出ているはずなので開いてパスワードを設定します。
ReadKit側の設定
立ち上げると接続先を聞いてくる。feverを選択すると以下のような画面になるはず。
DomainにはURLを入れます。
EmailとありますがここはTiny Tiny RSSのアカウント名にする
Passwordは先程設定したものを使用します
これでReadKitから読み出せるはずです。
ReadKitの使い方
ReadKit側では基本的に読んだりfav付けたりするだけ。RSSフィードの追加はブラウザからTiny Tiny RSSへ繋いで行う必要があるようです。