杂货屋

用Tiny-Tiny-RSS搭建RSS阅读器/支持网页及APP阅读

一、简介

RSS(Really Simple Syndication)即简易信息聚合(也叫聚合内容),采用RSS订阅可以定期订阅自己喜欢的博客,网站更新的内容,并聚合在一起查看,很方便。之前博客也介绍过 利用RSSBot打造自己的订阅机器人

Tiny Tiny RSS 是一款 PHP 语言的国外开源 RSS 阅读器,支持中文,功能十分强大。
项目地址:https://github.com/torne/Tiny-Tiny-RSS
官方网站:https://tt-rss.org/

二、特点

三、环境要求

Nginx/Apache
PHP 5.6及以上(PDO引擎、JSON、XML、mbstring、fileinfo、CURL),具体见官方文档
PostgreSQL (9.1 及以上) 或者 MySQL - InnoDB
安装时如果缺少组件会有提示,到时相应添加即可

四、安装

这里以在宝塔中安装为例,毕竟简单方便。

1、安装宝塔:参考文章 宝塔Linux面板 - 5.9免费版

2、然后进入后台再安装PHP、Nginx和Mysql环境,再找到左侧软件管理-PHP管理-设置-安装Fileinfo拓展。
注:如果Fileinfo拓展安装失败,可能是内存太小,我们可以添加swap,不适用于ovz。找到左侧软件管理-系统工具-安装Linux工具箱,然后进入工具箱添加。

3、在宝塔上添加站点来新建网站

4、下载Tiny Tiny RSS源码,将程序上传到网站根目录后解压,
浏览器输入自己的网站域名(这里为oa.rw),可以看到安装界面,
然后填写你的数据库账号、密码等信息(这个可以在宝塔的数据库看到)。

然后点击 test configuration 测试配置是否正确,之后点击Initialize database初始化数据库

然后会自动生成config.php文件,然后save configuration保存。

最后就可以重新打开域名进入网站了。

5、修改文件夹权限
通过以上步骤后进入网站可能会报错,其实报错时已经给出解决办法了

权限问题:打开ssh,切换到网站根目录,依次错误提示时输入括号中的命令即可
fileinfo问题:忘记安装了,参考步骤2安装即可。

6、完成登录
demo: http://oa.rw/
默认账户为admin ,密码为password

五、配置

1、RSS更新
Tiny Tiny RSS有两种更新模式,一种是简单更新模式,一种是服务器自动更新模式。可参考官方的步骤:Tiny Tiny RSS Updating Feeds

简单更新模式
在config.php中将SIMPLE_UPDATE_MODE设置为true ,这样每次打开Tiny Tiny RSS 就可以开始更新RSS订阅了。

自动更新模式
需要先设置php的执行路径,在config.php中PHP_EXECUTABLE设置好PHP的路径。这个以宝塔为例,我这里如图所示

方法一:
由于ttrss规定不能以root启动服务,所以宝塔的计划任务不太好用,我们这里用systemd

在 /etc/systemd/system/ 文件夹下创建一个 ttrss.service 文件,填入下面的内容:(路径改为自己的文件路径即可)

[Unit]
Description=ttrss_backend
After=network.target mysql.service postgresql.service

[Service]
User=www
ExecStart=/www/wwwroot/oa.rw/update_daemon2.php

[Install]
WantedBy=multi-user.target

然后使用命令

重新加载配置文件:systemctl daemon-reload
设置开机启动:systemctl enable ttrss
启动服务: systemctl start ttrss
查看服务状态:systemctl status ttrss

方法二:
好像我用上面的方法没有生效,所以换成cron试试,
由于不能以root运行,宝塔计划任务默认只能root,所以只能手动添加运行计划

手动添加运行计划(时间15分钟--用户www--php运行目录--php文件目录),运行后会在/var/spool/cron/生成www文件,里面有定时任务内容。

echo "*/15 * * * * www /www/server/php/71/bin/php /www/wwwroot/oa.rw/update.php --feeds --quiet" >> /var/spool/cron/www

#赋予www文件权限
chmod 600 /var/spool/cron/www

#重新加载及重启crond

service crond reload
service crond restart

然后就可以通过命令查看是否运行

tail -f /var/log/cron

如果报错,一般是因为没有/home/www目录造成的,手动创建即可

mkdir /home/www

2、RSS 全文输出

需要安装 mercury_fulltext 插件支持,而且需要 Mercury Parser API,不过是开源的,可以自己搭建 Mercury Parser API

2.1 安装 mercury_fulltext 插件
直接运行代码即可,也可以手动下载插件,放到对应目录

cd /www/wwwroot/oa.rw/plugins
git clone https://github.com/HenryQW/mercury_fulltext.git

然后「偏好设置」中启用 mercury-fulltext 插件。

2.2 搭建 Mercury Parser API
项目地址:https://github.com/HenryQW/mercury-parser-api

我们使用docker搭建,方便一点(反正博主手动搭建没成功)

# 安装依赖
sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

# 添加docker下载仓库
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

# 安装docker-ce
sudo yum install docker-ce

# 启动/设置开机启动 docker-ce
sudo systemctl start docker
sudo systemctl enable docker

# 验证
sudo docker --version
sudo docker run hello-world

Docker-CE 安装好后,执行下面代码「拉取/运行」完成 Mercury Parser API 搭建:

docker run -p 3000:3000 --restart=always -d wangqiru/mercury-parser-api

2.3 mercury_fulltext 设置
「偏好设置」-「信息源」-「Mercury Fulltext settings (mercury_fulltext)」,填入自建 Mercury Parser API 地址:localhost:3000,保存。(当然我是在本机搭建的api,直接localhost,如果其他机子搭建的,可以用服务器地址+端口填入)

编辑需要获取全文的 Feed(信息源),插件 - 启用「Get fulltext via Mercury Parser」保存退出即可。

docker搭建可参考Awesome TTRSS
参考文章:OneinStack 搭建 LNMP 安装 Tiny Tiny RSS

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »