非 Docker 方式安装 Tiny Tiny RSS

software

RSS 阅读器多个被墙,自建 RSS 服务无疑是一劳永逸的办法,Tiny Tiny RSS 是自建方案之一。Tiny Tiny RSS 官方推荐通过 Docker 方式安装,服务器自行配置环境 官方指南 并不推荐,介绍也不详细。不使用 Docker 安装,环境配置非常繁琐,下面逐步记录了环境配置过程,包括 PHP、PostgreSQL 和 nginx,以及 Tiny Tiny RSS 的初始化安装。

如果不想折磨自己,建议还是用 Docker。

安装环境为腾讯云 CentOS 7,命令由 root 用户进行。

PHP

  1. Tiny Tiny RSS 官方推荐的 PHP 版本为 7.0,支持的最低版本 5.6。系统默认的 yum 源版本太旧,首先要添加下 yum 源:

    1
    2
    rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
    rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
  2. 如果之前有安装过 PHP 的话,检查下目前已经安装的 PHP 包:

    1
    yum list installed | grep php
  3. 如果有安装旧版本的 PHP 包,需要全部删除,没有的话跳过此步:

    1
    2
    yum remove php.x86_64 php-cli.x86_64 php-common.x86_64
    # 自行补充需要删除的包
  4. 安装 PHP 包:

    1
    yum install php70w php70w-fpm php70w-curl php70w-pgsql php70w-gd php70w-mcrypt php70w-cli php70w-mbstring php70w-xml php70w-intl

    为什么选 7.0 版本?抄作业的时候发现要安装 php70w-mcrypt 包,yum 源没找到更高的版本 php-mcrypt。是否一定需要 php-mcrypt?可能不需要,并不确认。

  5. 检查下 PHP 的版本:

    1
    php -v

PostgreSQL

  1. PostgreSQL 的安装按照官方的 安装指南 即可,选择自己的环境,复制代码运行,非常简便。选择版本、平台和架构,生成代码如下:

    1
    2
    3
    4
    5
    yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    yum install postgresql96-server
    /usr/pgsql-9.6/bin/postgresql96-setup initdb
    systemctl enable postgresql-9.6
    systemctl start postgresql-9.6
  2. 安装完毕后,切换用户运行 psql

    1
    sudo -u postgres psql
  3. 创建数据库的用户、密码,可以根据情况自行设置;然后再在新建用户的名下创建数据库,名称也可以自行设置。

    1
    2
    3
    CREATE USER "tt-rss" WITH PASSWORD 'LXIJ5t3SvI';
    CREATE DATABASE ttrss WITH OWNER "tt-rss";
    \q
  4. 修改下用户的权限:

    1
    vim /etc/postgresql/9.5/main/pg_hba.conf

    把里面的:

    1
    2
    # TYPE DATABASE USER ADDRESS METHOD
    local all all peer

    改为:

    1
    2
    # TYPE DATABASE USER ADDRESS METHOD
    local all all md5

    原因见 (另一篇)Tiny Tiny RSS 教程

    如果用 vim 不太熟练,不妨用 WinSCP 登录到服务器编辑。

  5. 创建完成后重启 PostgreSQL:

    1
    systemctl restart postgresql-9.6

nginx

  1. 安装 nginx:

    1
    2
    3
    4
    yum install nginx
    nginx -v #检查版本
    systemctl enable nginx
    systemctl start nginx
  2. 确认 nginx 运行:

    1
    curl localhost

Tiny Tiny RSS

  1. 如果没有 git,需要先安装:

    1
    yum install git
  2. 把 Tiny Tiny RSS 下载到 /var/www/ttrss,这个位置可以自行设置。

    1
    2
    3
    mkdir /var/www/ttrss
    cd /var/www/ttrss
    git clone https://tt-rss.org/git/tt-rss.git .
  3. 设置文件夹权限,在刚才的目录下:

    1
    2
    3
    4
    5
    6
    chmod -R 777 .
    chmod -R 777 cache/images
    chmod -R 777 cache/upload
    chmod -R 777 cache/export
    chmod -R 777 feed-icons
    chmod -R 777 lock
  4. 配置 nginx:

    1. 编辑 nginx 的配置文件:

      1
      vim /etc/nginx/nginx.conf
    2. 加入一个服务器,插入到 http{...} 的两个花括号中间。

      如果是新安装的 nginx,没有其他的网站服务器,可以用下面的内容替换掉默认服务器。

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      server {
      listen 80;
      server_name [替换为你的域名或 IP];

      root /var/www/ttrss;
      index index.php;

      error_log /var/log/nginx/ttrss.error.log;
      access_log /var/log/nginx/ttrss.access.log;

      location / {
      try_files $uri $uri/ /index.php;
      }

      location ~ \.php$ {
      include fastcgi.conf; # don't use fastcgi_params
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      }
      }
    3. 还有别的配置方法,可以参考(另一篇)Tiny Tiny RSS 教程,不过这篇教程的 include 部分有点小问题。不想麻烦或者不知道自己在干什么的话,就直接抄我的吧。

    4. 重新加载 nginx 配置:

      1
      nginx -s reload
    5. 浏览器访问服务器 http:\\你的域名或 IP\,应该能够进入 Tiny Tiny RSS 的配置画面了。按如下填写:

      1
      2
      3
      4
      5
      Username:			tt-rss
      Password: LXIJ5t3SvI
      Database name: ttrss
      Host name: [空]
      Port: 5432

    内容是在 PostgreSQL 第 3 步由自己设置的,如果有修改,按自己修改的填写。

  5. 点击 Test configuartion 测试配置,如果缺少依赖或配置有问题会有提示,按照提示修复即可。

  6. 测试通过后,生成 config.php,点击 save 保存,Tiny Tiny RSS 就配置完成了。

  7. 再次通过浏览器访问 http:\\你的域名或 IP\,能够看到 Tiny Tiny RSS 的登录界面,默认用户名 admin,密码 password。登录进去后记得在偏好设置可以修改密码。

自动更新

查到的安装教程都是用 crontab 定时更新,Tiny Tiny RSS 官方更推荐的更新方式是用守护进程(daemon)。可以将更新设置成 systemd 服务,在后台运行,这部分的设置 官方文档 写得非常清楚。

  1. 创建 ttrss.service

    1
    vim /usr/lib/systemd/system/ttrss.service
  2. 下面的内容复制进去保存:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    [Unit]
    Description=ttrss_backend
    After=network.target mysql.service postgresql.service

    [Service]
    User=apache
    ExecStart=/path/to/tt-rss/update_daemon2.php

    [Install]
    WantedBy=multi-user.target
  3. 设置开机启动,并启动服务:

    1
    2
    systemctl enable ttrss
    systemctl start ttrss

服务就会在后台默默更新 feed 了。

Tiny Tiny RSS 跨平台应用

Firefox

Tiny Tiny RSS Watcher 可以实时监控 Tiny Tiny RSS 的新文章,并把数字显示在图标上。

Android

FeedMe

TTRSS Reader

后记

RSS 真是个很古老的东西了,我最频繁地使用是 10 年前,用遨游浏览器 2 自带的订阅工具,每天有看不完的订阅。当时遨游浏览器刚刚从 MyIE 2 改名 Maxthon,如日中天,自带的各种功能都深得我心,鼠标手势、F2/F3 键切换标签、网址缩写等等,但再一转眼,遨游和 RSS 都成了时代的眼泪。

关于 RSS,其实现在我并不非常认可。如今的信息碎片化,乃至「渣化」,冒犯地说,RSS 无疑有些不合时宜。另外一点顾虑就是,选择性地去接受信息,和被动地去接受信息相比,虽然接受到感兴趣内容的机会更多,但却排除了拓宽自己兴趣的可能性——我很愿意去随机看一些东西,还有关注各种热榜,以此发现新的世界。

安装 Tiny Tiny RSS 花了大半天时间,踩了很多坑,或许以后也会把这些坑补充进本文。但使用的时候我发现,Tiny Tiny RSS 的速度并不那么理想,或许 Firefox 的 Feedbro 插件更好?实际上,我的 RSS 订阅也只有寥寥几个而已,折腾了那么久,有些牛刀杀鸡的挫败感。我不是从事 IT 工作的,安装过程遇到不少麻烦,问百度、谷歌,东一榔头、西一棒槌,到头来常常发现还是官方的文档写得最好,当然前提是能找到刚好需要的内容。「真传一句话,假传万卷书。」有时确实如此。

无论如何,Tiny Tiny RSS 装好了,我大概又会在一段时间里沉迷 RSS 了。

本文作者:希蜜

本文链接: https://sand.litofu.com/tiny-tiny-rss-installation-without-docker/

本作品采用知识共享署名 4.0 国际许可协议进行许可。