一、简介
RSS(Really Simple Syndication)即简易信息聚合(也叫聚合内容),采用RSS订阅可以定期订阅自己喜欢的博客,网站更新的内容,并聚合在一起查看,很方便。之前博客也介绍过 利用RSSBot打造自己的订阅机器人
Tiny Tiny RSS 是一款 PHP 语言的国外开源 RSS 阅读器,支持中文,功能十分强大。
项目地址:https://github.com/torne/Tiny-Tiny-RSS
官方网站:https://tt-rss.org/
二、特点
- 可更换主题,有防Reeder、Feedly和Google Reader等主题;
- 支持多种插件
- 支持多用户
- 有官方 Android 客户端和第三方ios客户端(Reeder等)
- 自定义更新频率,每15分钟、每30分钟和每1小时等;
- 支持导入OPML
- 可以收藏和存档
- 全文搜索
- 支持中文
- 有标记、近期阅读
- 支持自动清理文章
三、环境要求
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
站点名称:Sword's Blog 杂货屋
本文链接:https://sword.studio/200.html
本博客所有文章除特别声明外,均采用知识共享署名-非商业性使用 4.0 国际许可协议 进行许可
您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的
博主你好,我按照您的教程搭建出来了 Tiny Tiny RSS ,但是自动更新那里一直有问题。

图中这样我认为是已经生效的了,但是登录进去的时候发现文章并没有更新。
我是使用宝塔面板搭建的 tt-rss
额,我也是宝塔,好像我的一直可以,或者你试试文末的方法,好像简单点
按照你的教程安装没问题.但是一些插件得手动在装.
找到了docker compose的教程.试了N次..都失败了,每次都是提示域名地址不对...yml文件里的域名改过各种形式,都不行..
彻底放弃了...
建议参考文末的awesome TTRSS来搞,或者群晖有TTRSS第三方套件哦
我就是参考awesome TTRSS的.死活不行...
我的报错内容还不能评论,显示网络有问题
用手机热点试试
同样宝塔环境,ttrss已经搭建成功了,打开网站可以更新,自动更新好像一直不好使,不知道为什么,两种方法都尝试了. 显示都已经正常运行了
1、第二种方法应该是生效的,仔细检查一下命令,不要直接用,对应的改成自己的才行
2、报错这个截图吧,可能是因为我的防火墙保护,没法加报错内容文本
[root@VM_0_6_centos ~]# tail -f /var/log/cron
Jun 16 09:33:21 VM_0_6_centos crond[31110]: (CRON) bad minute (/var/spool/cron/www)
Jun 16 09:33:21 VM_0_6_centos crond[31110]: (CRON) bad minute (/var/spool/cron/www)
Jun 16 09:33:21 VM_0_6_centos crond[31110]: (CRON) bad minute (/var/spool/cron/www)
Jun 16 09:33:21 VM_0_6_centos crond[31110]: (CRON) bad minute (/var/spool/cron/www)
Jun 16 09:33:21 VM_0_6_centos crond[31110]: (CRON) bad minute (/var/spool/cron/www)
Jun 16 09:33:21 VM_0_6_centos crond[31110]: (CRON) INFO (running with inotify support)
Jun 16 09:33:21 VM_0_6_centos crond[31110]: (CRON) INFO (@reboot jobs will be run at computer's startup.)
Jun 16 09:34:01 VM_0_6_centos CROND[31162]: (root) CMD (/usr/local/qcloud/stargate/admin/start.sh > /dev/null 2>&1 &)
Jun 16 09:35:01 VM_0_6_centos CROND[31247]: (root) CMD (/usr/local/qcloud/stargate/admin/start.sh > /dev/null 2>&1 &)
Jun 16 09:35:01 VM_0_6_centos CROND[31255]: (www) CMD (www /www/server/php/73/bin/php /www/wwwroot/tshore.me/update.php --feeds --quiet)
Jun 16 09:36:01 VM_0_6_centos CROND[31342]: (root) CMD (/usr/local/qcloud/stargate/admin/start.sh > /dev/null 2>&1 &
也不知道这是什么意思……也不知道哪里出问题了。 (╯‵□′)╯︵┴─┴
看倒数第二段,没问题啊
大神您好。照着您的教程,我几乎完成了一个对电脑白痴来说的巨大工程。在此先表示由衷的感谢。但现在我想请教几个问题,希望您能不吝指教——
1、您在文中提到:“当然我是在本机搭建的api,直接localhost,如果其他机子搭建的,可以用服务器地址+端口填入。”我现在用的是腾讯云主机搭建的……是不是这个“其他机子”的“服务器地址”填的就是我这个腾讯云主机的公网IP啊?或者是域名?比如说www.我的域名.me:3000 这样写可以吗?
2、我点击启用“允许外部客户端通过 API 来访问该账户”但插件页并没有出现像https://ttrss.henry.wang/zh/#fever-api 这个网页所展示的第二步Fever设置页面。 而且插件设置页面还提示“Your PHP configuration has open_basedir restrictions enabled. Some plugins relying on CURL for functionality may not work correctly.”请问这些都是怎么回事呢?这种情况该如何处理?因为我也想使用手机端的TTRSS。
1、如果你的ttrss和全文输出api在同一台机器的话按照我的教程就行了,如果不在同一台机器就写ip+端口,注意api那台机子要开防火墙;
2、不出现是正常的啊,如果你是安卓手机,直接就可以下载app链接用了,如果你是苹果手机,才需要fever(当然不知道是不是一定需要,因为我的不是苹果),这个需要安装fever插件才会出现。
原来这个地址得写成“http://www.我的域名.me”!谢谢大神的教程了。好人一生平安~ ヾ(≧∇≦*)ゝ
呃,我把地址改成公网IP地址了。现在它又提示“无法登陆你的账号,请检查认证信息”……请问大神这个该怎么搞?
完全都搞混了,app上填的地址就是电脑网页打开时的地址,你的应该是http://tshore.me,然后账号密码一样
报告大神:1、我的ttrss和全文输出api确实都在我现在所用的同一台机器上。已经将其改为localhost:3000了。同时,我现在这台电脑的windows defender中的防火墙也已经打开。
2、我现在用的也是安卓手机。但我在手机客户端上的“偏好设置”里,填写了我的服务器地址“www.我的域名.me”,然后我发现用户名填和密码无论我填写正确与否,客户端均提示“无法连接到Tiny Tiny RSS服务器,请检查你的网络连接或者偏好设置中的连接设置 错误详情:Exception in doRequest(): Exception-Message: no protocol: www.我的域名.me/api/index.php No Exception-Cause available.”这个错误提示,我在网上还搜不到解决方案。作为一个电脑白痴,表示不知所措。烦请大神指点。(/ω\)
1、全文输出api只是增强插件,并不是必须的,没有也可以用,和客户端api是完全不相关的两回事;
2、所以你的地址是啥,一直没说啊
看到的第三篇这个教程了,当我的rss阅读器不能用了我就自己搭建一个。