CentOS6上にRSSリーダーのTinyTinyRSSを導入

* 本ページはプロモーションが含まれています

CentOS6上にtiny tiny rssを導入 

必要条件 

  • PHP 5.6以上
  • Postgresql9.1以上 or MySQL InnoDB
  • SSL証明書(letsencrypt)
  • Git
  • https環境(Apache,nginx)
  • DNS

はじめに 

Tiny Tiny RSS のダウンロード 

導入するディレクトリ及びオーナー・グループ(nginx)は適宜変更

# cd /var/www/html
# git clone https://tt-rss.org/git/tt-rss.git tt-rss
# chown -R nginx:nginx tt-rss

DB の作成 (admin/password) 

※DB名:tt-rss、DBユーザ名:admin、DBユーザパスワード:password とする場合

# mysql -u root -p
mysql> CREATE USER ‘admin'@'localhost' IDENTIFIED BY 'password';
mysql> CREATE DATABASE tt-rss CHARACTER SET utf8;
mysql> GRANT ALL ON DB_NAME.* TO ‘admin'@'localhost’;

または、下記

DNS 

(自分のサイトURL配下に設置する場合は、DNSの設定は必ずしも必要ではありません。)
私の場合、CloudFlareにてreader.yoursite.comの名前でDNS作成
(サイト名は自分用に設定してください)

letsencryptで証明書作成 

$ certbot certonly --standalone -d reader.yoursite.com

nginxのconf作成(SSL対応) 

tt-rss/utils/gitlab-ci/nginx-defaultが雛形
https://gist.github.com/bjoerns1983/30dff232c8ccede12f6caec7c609b0b6

server_name reader.yoursite.com;

location / {
root /var/www/html/tt-rss;
charset utf-8;
index index.php;

try_files $uri $uri/ /index.php?q=$uri&$args;

include php_exec;
}

# すべての不可視ファイルをアクセス不可にします。
location ~ /\. {
access_log off;
log_not_found off;
deny all;
}
listen 443 ssl https2; # managed by Certbot
by Certbot
ssl_session_timeout 1440m; # managed by Certbot

ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # managed by Certbot
ssl_prefer_server_ciphers on; # managed by Certbot

128-SHA ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES256-SHA384 DHE-RSA-AES128-GCM-SHA25
6 DHE-RSA-AES256-GCM-SHA384 DHE-RSA-AES128-SHA DHE-RSA-AES256-SHA DHE-RSA-AES128
-SHA256 DHE-RSA-AES256-SHA256 EDH-RSA-DES-CBC3-SHA"; # managed by Certbot

if ($scheme != "https") {
}

tt-rss設定 

https://reader.yoursite.com/install/ へアクセスし、各項目を設定

  • MySQLの設定など
  • DBホスト名やPortも記述したほうが良い
  • 確認のため、config.phpを見ておく
  • 初期化

パスワード変更 

admin/passwordでログインし、パスワードを変更しておく

ユーザー作成 

  • 言語を日本語
  • タイムゾーンをAsia/Tokyo
  • APIにチェックマーク

外部サービスからインポート 

inoreaderの場合
inoreaderからエクスポートし、subscription.xmlをインポートする。
この辺は、GoogleやFeedlyでも同様

ちょっとしたエラー 

  • インポートで500 Internal Sever Errorが出る場合
    (config.php内にホスト名・ポート番号が未記入もしくはmysqlでflush privilegesが必要だった?)
  • 記事の更新が出来ていない・出来ない
    下記のディレクトリーを書き込み可にする必要があるようだ。
# chmod -R 777 lock feed-icons cache/export cache/images cache/upload

定期的に更新 

rootだと動作しないのでnginxで動作させる

# sudo -u nginx crontab -e
*/15 * * * * /usr/bin/php /var/www/html/tt-rss/update.php --feeds --quiet

Tiny RSSの更新(アップデート) 

# cd /var/www/html/tt-rss && git pull