也许很多90后压根不知道RSS服务是啥,简单来说,你浏览器的收藏夹里面收藏了很多技术站点、个人博客,你平时会一个一个的点开,看看哪位博友更新了博文,但很多站点没有更新,你浪费了时间,而且这种一个一个点开网站的方法感觉很原始。所以有了RSS服务,RSS服务会每天(自己设定时间间隔)去把你收藏夹里面的网站都看一遍,有更新的话,就给你推送到手机或者电脑。
如果你已经有一个正常运行的基于wordpress程序的站点,要再搭建一个RSS服务将非常简单。本文讲解搭建tiny tiny RSS(下文简称TTR)的方法。
我们知道,一个php站点要跑起来,需要各种PHP模块的支撑,现在我们的wordpress站点已经跑起来了,所以我们已经安装的PHP模块如下:
$ wp ext required +-----------+-----------+ | extension | installed | +-----------+-----------+ | curl | 1 | | date | 1 | | dom | 1 | | filter | 1 | | ftp | 1 | | gd | 1 | | hash | 1 | | iconv | 1 | | json | 1 | | libxml | 1 | | mbstring | 1 | | mysqli | 1 | | openssl | 1 | | pcre | 1 | | posix | 1 | | SimpleXML | 1 | | sockets | 1 | | SPL | 1 | | tokenizer | 1 | | xml | 1 | | xmlreader | 1 | | zlib | 1 | +-----------+-----------+ Success: All required extensions are installed
然后我们去TTR官方查询其所需要的PHP模块,查询地址:https://tt-rss.org/wiki/PhpCompatibilityNotes
把所需要的模块跟上面的wordpress模块对比,发现少了Internationalization(intl)和 fileinfo
接着我们去当初安装php的源码目录里面执行命令:
./configure --help |egrep -i "(intl|fileinfo)"
[root@hqidi.com php-7.2.6]# ./configure --help |egrep -i "(intl|fileinfo)" --disable-fileinfo Disable fileinfo support --enable-intl Enable internationalization support
fileinfo的配置参数是--disable-fileinfo,说明这个参数默认是打开的,你配置的时候加了“--disable-fileinfo”,fileinfo模块才会被关闭,所以这个我们不用管。
intl的配置参数是--enable-intl,说明这个参数默认是关闭的,你配置的时候得特意加上“--enable-intl”,intel模块才会被启用。所以我们的重新配置PHP,在你原来配置参数的最后面加上“--enable-intl”重新配置PHP
./configure --prefix=/usr/local/php --enable-opcache --with-config-file-path=/usr/local/php/etc --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-fpm --enable-static --enable-inline-optimization --enable-sockets --enable-wddx --enable-zip --enable-calendar --enable-bcmath --enable-soap --enable-mbstring --with-zlib --with-iconv --with-gd --with-xmlrpc --enable-mbstring --with-curl --with-freetype-dir --with-mysql-sock=/var/lib/mysql/mysql.sock --with-jpeg-dir --with-png-dir --disable-ipv6 --disable-debug --with-openssl --disable-maintainer-zts --enable-intl
若配置的时候有ICU相关的报错,请执行 yum install libicu-devel -y 后继续配置,配置好后正常进行编译和安装,安装后etc目录里面的配置文件不会被覆盖。
总结来说,在你的wordpress站点正常情况下,你得添加一个intl模块,才能把TTR正常跑起来,接下来开始安装tiny tiny RSS
用nginx为tiny tiny RSS新建一个站点
配置文件如下,没有启用https的自行删除相关配置
upstream php { server unix:/usr/local/php/var/run/php-fpm.sock; } server { listen 443 ssl http2; server_name feed.141421.net; ssl_certificate feed.141421.net.crt; ssl_certificate_key feed.141421.net.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; root /data/rss; location / { index index.php index.htm; } location ~ \.php$ { include fastcgi.conf; fastcgi_intercept_errors on; fastcgi_pass php; } }
下载tiny tiny RSS 安装文件
wget https://git.tt-rss.org/fox/tt-rss/archive/master.zip mkdir /data/rss unzip master.zip mv tt-rss/* /data/rss/ chown -R www.www /data/rss #这里的www是你用来跑php进程的用户,在php-fpm.conf里面配置的
为tiny tiny RSS新建一个数据库
登录到MySQL,执行如下命令
#新建一个名为ttrss的库 create database ttrss; #新建一个名为ttr的,密码为1Jdma!22 的用户,这个等下要用到 grant all on ttrss.* to 'ttr'@'localhost' identified by '1Jdma!22'; #刷新权限使刚刚新建的用户生效 flush privileges;
安装tiny tiny RSS
添加好域名解析后,直接访问https://feed.141421.net 进入网页安装界面
照着刚刚我们在数据库里面新建的用户信息填就行了,若点击“Text configuration”,提示2002错误,就把Host name 的那个框里面改为127.0.0.1,没错的话点击红色的“Initialize database”初始化数据库按钮,然后点击“Save configuration”保存配置,最后点击下图的链接登录
用户名admin 密码password,请马上更改密码。请记得在偏好设置里面勾选上“启用API”允许外部客户端通过 API 来访问该账户,这样手机客户端才能正常连接我们搭建的RSS服务。
使用tiny tiny RSS
➤RSS更新
就是你派遣你服务器上的PHP程序去你喜欢的各个网站上看有没有更新的文章,有的话就抓下来,推送给你。用crond来实现
执行 crontab -e -u www (这里的www是你用来跑php进程的用户,在php-fpm.conf里面配置的)
然后写入:
7 4 * * * /usr/local/php/bin/php /data/rss/update.php --feeds >>/tmp/rss.txt
意思是每天的凌晨4点过7分让php程序去检查你订阅的站点是否有更新。
➤快捷订阅插件
看到自己喜欢的网站,靠眼睛去找订阅链接太低效,这里推荐一个chrome插件 RSSHub Radar
插件效果:
➤Android客户端
Android客户端推荐使用TTRSS Reader,下载地址 https://www.lanzous.com/b0to7va
界面非常直观干净
文章页效果
您的设备不支持Google play服务
在APP内点击“偏好设置”→“SSL设置”,把“使用Providerinstaller服务”后面的勾选取消,这样就不会弹出“您的设备不支持Google play服务”的提示。其他APP遇到此类问题也可以依样解决,把谷歌相关的功能关掉。
➤iOS客户端
iOS客户端推荐大名鼎鼎的Reeder,售价30元RMB,无内购无订阅。不过我们得在服务端装个插件,Reeder才能正常连接上我们搭建的RSS服务。
yum install git -y cd /data/rss/plugins.local git clone https://github.com/DigitalDJ/tinytinyrss-fever-plugin fever
这样插件就装好了,我们登录后台,偏好设置里面启用插件,然后设个密码就行了。
如图,先勾选上fever,然后点击下方的“Fever Emulation”设置一个密码。
手机上打开Reeder后,点击齿轮按钮→ Add Account → Fever
Server栏里面填:https://feed.141421.net/plugins.local/fever/
Email栏里面填: admin (也就是你登录TTRSS使用的账号)
Password里面填:你在上一步设置的密码
阅读体验非常舒适,跟Safari的阅读器视图一样,有些小年轻的博客口味独特,博客背景用js搞得花里花俏,一打开他博客人就眼晕,电脑CPU就咆哮,有了这个以后就没上面的问题了。
RSS全文输出
一些网站管理员为了自己站点的PV数据更好看或者其他的原因,在feed中只提供了文章的摘要内容,想要看全文得通过浏览器跳转到网站,非常麻烦。对于这样的RSS源,我们可以安装Mercury插件让Tiny Tiny RSS实现全文输出。
安装Mercury全文输出插件
cd /data/rss/plugins git clone https://github.com/WangQiru/mercury_fulltext.git
这样,Mercury插件就初步安装好了,此时我们得需要一个Mercury服务端,Mercury服务端搭建非常简单:
yum install docker -y systemctl start docker systemctl enable docker docker run -d --restart=always --name fulltext -p 127.0.0.1:3000:3000 wangqiru/mercury-parser-api
着重解释下最长的那一行命令:
-d 参数会让容器在后台运行。
--restart=always 在这里,这个参数的作用是:当服务器重启后,docker服务启动后,自动运行本容器。
--name 就是给容器起个名字,方便管理
-p 网上的教程都是“-p 3000:3000” 这样的话,容器内的3000端口会映射到本地的所有网卡上面,带来安全隐患的同时也有可能被别人蹭用。所以最好加上“127.0.0.1”
配置Mercury全文输出插件
启用插件
填写全文输出服务端地址
这里就是我刚刚说的蹭用问题,如果你启动容器的时候没加上“127.0.0.1”,别人可以填你的外网IP加3000端口,来使用你搭建的Mercury全文输出服务。
针对没有全文输出的信息源配置
附:
当你发现所有的订阅源都消失,此时,别慌,退出重新登录就正常了。
原创文章,转载请注明: 转载自笛声
本文链接地址: 自行搭建Tiny Tiny RSS服务
26 条评论
我用过。觉得其最大的缺点是慢。现在改用单机版的订阅工具了。
我用着不慢啊,因为订阅了一些打不开的站点,我的RSS服务器还在海外呢,速度一点都不慢。
我有300多个订阅。不同的分类之间切换的时候极慢。
这个。。。。。。我记得我用过一段时间,但是后面还是放弃了。
好像https的站点无法订阅?还是啥原因来着。
https站点可以正常订阅,我订阅了一大堆
Ttrss以前安装成功过,昨天试了一下fileinfo模块无法开启。也是醉了!
你可以试试这个方法:https://yorkchou.com/php-fileinfo.html 按我文中的方法重新编译,很可能会出现内存不足的提示(1G内存情况下)
不是90后不知道rss,多数90后接触互联网较早的还是知道的,反而现在00后很少知道rss的
docker才是最舒服的使用方法,当然前提是有一个VPS或者服务器。https://ttrss.henry.wang/zh/#%E9%80%9A%E8%BF%87-docker-compose-%E9%83%A8%E7%BD%B2
长期使用感觉还是直接装在服务器上面更好一些,不喜欢隔着一层东西
今年好多装tt的,我也弄了个,跑了几个月,发现文章更新越来越少,断断续续折腾了好久,然后就不用了,再后来发现,其实没问题,是那些博主不怎么更新了。。
写博客的人越来越少了。
我mac安装了rss的app,没用过几次。。。卸载了
你好,能请问下快速订阅的插件是哪个吗?
地址在这里:https://diygod.me/rsshub-radar/
感谢感谢,我来折腾折腾看
也许很多90后压根不知道RSS服务是啥
——00后的我都知道了
我安装出现No input file specified.的错误,fileinfo等都安装了,郁闷死
最后还是用freshrss了
我也准备自己搭建一个。现在我一般都是从友情链接摸过去。
Mercury服务端搭建_这一步我没看懂。
我是很多年前搭建好的tinyrss,由于不懂编程,升级后打都打不开。所以一直就没有动过,生怕再出问题。
我试着直接安装yum install docker -y这一步,被告知There are no enabled repos.
想请教您如何继续下去呢?
你可以先看看这个链接:https://developer.aliyun.com/mirror/docker-ce?spm=a2c6h.13651102.0.0.1f431b110sruam
一般来说,你要执行的命令为:
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
yum makecache fast
yum -y install docker-ce
systemctl start docker
systemctl enable docker
docker run -d --restart=always --name fulltext -p 127.0.0.1:3000:3000 wangqiru/mercury-parser-api
我的是debian系统。忘了说了……
curl -sSL https://get.daocloud.io/docker | sh
在我vps上存在tiny tiny rss的情况下,我如果想装一个docker的tiny tiny rss的版本,它们能共存吗?如果不能我就不折腾了
可以共存的,用不同的域名就行了,安装问题看看这里 https://www.runoob.com/docker/debian-docker-install.html