自行搭建Tiny Tiny RSS服务

也许很多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服务

(0)

相关推荐