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導入とだいたい一緒です。

  1. DBの用意
  2. gitから引っ張ってきて展開
  3. インストール用に各パーミッション一時変更
  4. WEB経由でアクセスしてインストール作業
  5. cronでRSS更新を設定

DB設定

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# mysql -u root
> CREATE DATABASE ttrss_db;
> CREATE USER ttrss IDENTIFIED BY '<password>';
> GRANT ALL ttrss_db.* TO ttrss@localhost IDENTIFIED BY '<上記password>';
> quit
# mysql -u root > CREATE DATABASE ttrss_db; > CREATE USER ttrss IDENTIFIED BY '<password>'; > GRANT ALL ttrss_db.* TO ttrss@localhost IDENTIFIED BY '<上記password>'; > quit
# 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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# cd ./public_html/
# git clone https://git.tt-rss.org/fox/tt-rss.git tt-rss
# cd ./public_html/ # git clone https://git.tt-rss.org/fox/tt-rss.git tt-rss
# 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の内容がブラウザにエラーと共に表示されます。パーミッションをさらに設定するなりして下さい。

※危険だから後で戻すのを忘れずに

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# chmod 777 public_html
# chmod 777 public_html
# chmod 777 public_html

インストール

後は実際にブラウザから接続してinstallします。

https://<ドメイン>/install/ へアクセスします。

DBのHost nameはlocalhostであれば記入の必要はありません。もし他のHostにDBだけがあるのであれば接続情報を(その場合先述のGRANT文も合わせて直さないといけませんけどね)

インストールが正常に完了したら設定したURLへ飛んでTiny Tiny RSSへログインします。

ユーザー: admin

パスワード:password

がデフォルトで設定されているので、これで入ります。

その後は設定へ行きパスワードを変更したり必要があればユーザーを追加します。余談ですがTiny Tiny RSSではパスワード変更は任意文字列ではなくてランダムな文字列が自動で振られる仕組みでした。

intlモジュールのトラブル

私の環境では以下のエラーが発生しました。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
PHP UConverter class is missing, it’s provided by the Internationalization (intl) module.
PHP UConverter class is missing, it’s provided by the Internationalization (intl) module.
PHP UConverter class is missing, it’s provided by the Internationalization (intl) module.

PHPのintlモジュールがないために発生するエラーのようです。

解決は以下の通り

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# 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
# 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
# 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の設定

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# crontab -e
追記
*/30 * * * * /usr/bin/php <ディレクトリ>/public_html/update.php --feeds --quiet
# crontab -e 追記 */30 * * * * /usr/bin/php <ディレクトリ>/public_html/update.php --feeds --quiet
# 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ディレクトリへ引っ張ってくる

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# cd public_html/plugins.local
$ git clone https://github.com/DigitalDJ/tinytinyrss-fever-plugin fever
# cd public_html/plugins.local $ git clone https://github.com/DigitalDJ/tinytinyrss-fever-plugin fever
# 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へ繋いで行う必要があるようです。

+1