Total Pageviews

Thursday, 30 June 2016

搭建自己的RSS订阅服务器-Tiny Tiny RSS

此前国内外最受欢迎的 RSS 订阅服务 Google Reader,但 Google Reader 已经停止服务近两年了…尔后网友们开始使用其他的一些替代服务,一般常规的有这三类:

浏览器自带订阅功能(遨游、Safari、搜狗等均支持,Chorme 需要扩展支持)
在线 RSS 订阅服务(鲜果、QQ 阅读、有道阅读、豆瓣九点、Feedly、Inoreader等)
本地客户端(Foxmail、FeedDemon、GreatNews、Reeder)

小编本人此前一直使用的是 Foxmail,毫无疑问:Foxmail 是当下最好用的本地邮件客户端,同时其 RSS 功能也挺好用的…但其弊端也是显而易见的:1、无法实现云同步;2、订阅源过多时慢、卡。因此小编我决定抛弃它……

QQ 阅读和有道阅读以前用过,官方无人维护,体验比较差。而鲜果阅读前面爆出新闻也停止了 RSS 的更新,所以最后我开始尝试使用大名鼎鼎的 Feedly,这里发现一个巨大的问题:需要翻墙!


结合 Foxmail 的弊端 1,自然是不会用 Feedly 了,最后我深度体验了下 Inoreader,总的来说还是很好用的,界面清爽,功能够足,但是很慢!(BTW,Inoreader 上有几十个用户订阅了 Finle)无奈,我就只好自己动手了!

查阅了不少资料,经过个人喜好对比以及建设难易程度,最终选择了利用 Tiny Tiny RSS 建立自己的 RSS 订阅服务,从此你可随心所欲的还常阅读啦~

Tiny Tiny RSS 是一个非常优秀的国外 RSS 聚合程序,多语言支持(含中文),自 Google Reader 关闭后因其标题和内容的搜索、导入导出、条目加星等像极Google Reader,被不少的博主推荐为 Google Reader 的替代品。

实际使用了 Tiny Tiny RSS 后,确实感觉不错,全站 Ajax,阅读起来非常地方便,阅读可以选择全文或者列表,标记、近期阅读等也很实用。Tiny Tiny RSS 最大的优势就是可以自定义 RSS 更新时间,也可以手动立即更新,更快地获取信息。

1、环境要求

Tiny Tiny RSS 要求 PHP 5.3以上,函数必须有 JSON 、mbstring,可选的是 CURL、posix 、GD,数据库支持 PostgreSQL 或者 MySQL 。

2、程序下载

直接去 Tiny Tiny RSS 下载官方最新版:http://tt-rss.org/redmine/projects/tt-rss/wiki

3、环境准备

如果你是 WordPress 用户,那么这应该不难的。在你的 VPS 下新建个 FTP,如名为 RSS;在你的面板或 Phpmyadmin 新建一个数据库(UTF-8),如名为 RSS;然后是新建网站(具体情况结合你自身用的系统)、域名绑定及解析;然后结合 1 开始安装了~

4、程序安装

压缩包解压后,直接在浏览器输入 your_domain.com/install ,输入数据库相关信息,提交自检,若正确无误则点击“初始化按钮”.

此时已经生成最初的配置文件了(config.php),如果你的虚拟主机可写,那么直接 Save Configuration 下一步,如果不行的话那么就手动保存然后上传替换掉该文件,继续下一步则跳转到登陆地址了,输入默认的用户名/密码即可使用了(admin/password)。


5、使用

没什么可说的,中文嘛,大家都看得懂~~直接点上面的链接体验就 OK 了,可以随意添加订阅源,也可以进入 Preference 查看可选设置。

值得一提的是 Tiny Tiny Rss 的更新,根据相关资料并设定我最终仍不太确定我自己使用的这个有没有成功设定为自动更新,无法只能使用其简易更新模式(谁让我不懂 Linux 呢!)

define('SIMPLE_UPDATE_MODE', true); //这个值默认为 false
开启这个选项后,只要用户登陆 Tiny Tiny Rss 后,它就会自动更新.

5、后续

多说无益,还不如你自己体验体验,请不要随便更改设置…不然其他同学就没法测试了。从测试中你可能已经发现了:Tiny Tiny RSS 和此前的 Google Reader非常类似,同时它也支持多用户,那么如果你和你的小伙伴们都需要 RSS 服务的话,那么不妨架设一台专门的 TTRss 服务器以便自己用(记得修改下 CSS,参考我的第一张图,因为 外文字体对中文支持实在太差).
----------------------

RSS是一种将用户订阅的内容传送给他们的通讯协同格式(Protocol),它是新闻网站、博客等信息发送的重要渠道,同时也是用户用来跟踪自己感兴趣主题的快捷方式。虽然随着最近几年新媒体的不断发展,RSS似乎走向没落了,但是并代表RSS已经到了尽头。
谷歌单方面停止了自己的RSS阅读器Google Reader,引起非常多的RSS忠实用户不满,也同时给信赖RSS来获取信息的人带极大的不便。不少人在指责Google这种不顾用户需要而一味追寻公司新产品目标的同时,迫于无奈而选择了其它的RSS阅读器。
国内的第三方RSS阅读器也有不少,但是近几年来都基本上处于停滞状态,例如QQ邮箱的阅读空间在刚刚推出时各种新奇的功能层出不穷,而用了这么多年现在看来几乎没有人管它了,虽然还能够正常使用,但终未来终归是一个未知数。
前一段时间突然发现自己用的RSS在线阅读器不能正常获取RSS更新了,从我的正常工作带来非常大的麻烦。虽然后来又恢复了更新,但是这个事件也告诉我赶紧找一个靠谱的RSS在线阅读器。于是Tiny Tiny RSS这个自己搭建在线RSS的阅读器程序映入视野了。
Tiny Tiny RSS 是一个非常优秀的国外RSS聚合程序,有中文,自Google Reader关闭后因其标题和内容的搜索、导入导出、条目加星等像极Google Reader,被不少的博主推荐为Google Reader的替代品。
实际使用了Tiny Tiny RSS后,确实感觉不错,全站Ajax,阅读起来非常地方便,阅读可以选择全文或者列表,标记、近期阅读等也很实用。Tiny Tiny RSS最大的优势就是可以自定义RSS更新时间,也可以手动立即更新,更快地获取信息。
本文就来介绍一下用Tiny Tiny RSS搭建RSS阅读器的方法.

一、Tiny Tiny RSS 安装方法
1、官方网站:https://tt-rss.org/redmine/projects/tt-rss/wiki
2、Tiny Tiny RSS 要求PHP 5.3以上,函数必须有JSON 、mbstring,可选的是 CURL、posix 、GD,数据库支持PostgreSQL 或者 MySQL 。
3、下载Tiny Tiny RSS ,然后将程序上传到空间上,进入https://域名.com/install/,可以看到安装界面。填写你的数据库账号、密码等信息。

4、Tiny Tiny RSS 会先检测你的数据库和服务器是否符合安装要求。

5、接着Tiny Tiny RSS 会自动生成config.php文件,如果没有自动生成,你可以手动复制放在config.php文件中上传到服务器中。

6、Tiny Tiny RSS 对部分文件夹要求是777属性,你可以根据提示来修改。

7、待数据库和文件属性检测通过后,你就可以填写你的Tiny Tiny RSS 管理员账号和密码,提交,至此安装完成。

二、Tiny Tiny RSS 设置和添加订阅
1、登录到Tiny Tiny RSS 后,偏好设置(preference)里面包括了所有Tiny Tiny RSS 可以设置的选项。

2、在Tiny Tiny RSS 的用户管理中可以添加新的用户,也可以修改用户的密码。

3、在“订阅信息源”中可以添加你的RSS订阅地址。

4、如果想批量导入和导出opml文件,点击“更多信息源”。

5、在订阅源设置中可以指定RSS更新的频率。

6、也能指定文章清理的时间间隔。

三、Tiny Tiny RSS 使用体验
1、这就是Tiny Tiny RSS 在线RSS阅读器的界面,很像Google Reader。(点击放大)

2、可以对订阅的文章进行收藏。

3、遇到好的文章还可以添加标记。

4、在RSS阅读界面最上方有锁定选择未读、加星标、标记已读、删除等操作按钮。

5、常用操作中还有自动适应等。

6、在左边还有近期阅读,方便你查看最近查阅的内容。

7、Tiny Tiny RSS 还提供了一个Android APP,方便你在手机上使用Tiny Tiny RSS ,应用下载:https://play.google.com/store/apps/details?id=org.fox.ttrss

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

2、VPS服务器更新Tiny Tiny RSS 。使用非Root用户,登录客户端,然后执行 php ./update.php --daemon。其中 daemon是参数,执行单进程。其它的参数说明如下:
--feeds - 更新 feeds
--feedbrowser - 更新 feedbrowser
--task N - 创建 lockfile
--cleanup-tags - 执行标签数据维护
--force-update - 强制所有更新
--update_self - 升级程序

3、要想成功执行PHP,你需要在config.php中PHP_EXECUTABLE设置好PHP的路径:/usr/bin/php

4、使用定时任务更新Tiny Tiny RSS 。一般的如Cpanel面板都会支持添加自定义定时任务,如果使用VPS,则可以直接编辑crontab -e ,然后添加以下内容保存。
*/30 * * * * /usr/bin/php /home/user/public_html/tt-rss/update.php --feeds --quiet

5、注意public_html/tt-rss/update.php是你的Tiny Tiny RSS 的绝对路径,你需要根据自己的需要修改。*/30 * * * *表示每隔30分钟更新一次,你可以自己改成其它的。

五、Tiny Tiny RSS使用小结
1、Tiny Tiny RSS总得来说不错,功能也在不断地完善当中,虽然现在已经有不少人不再通过RSS的方式来获取信息,但是对于那些重度依赖RSS的朋友,使用Tiny Tiny RSS是一个非常好的方法。
2、Tiny Tiny RSS更新RSS非常地及时,比起那些第三方的RSS在线阅读器来说,可能需要自己花钱购买空间或者服务器来运行Tiny Tiny RSS,Tiny Tiny RSS支持用户注册,可用于多人合用.
--------------

用Tiny Tiny RSS 搭建自己的rss订阅网站


因为我的vps上已经部署了LNMP的环境,所以,我只需要将Tiny Tiny RSS的网站源码上传到网站根目录,配置下数据库和域名就可以使用了。以下是我的步骤(图书馆有无线网,所以花了点时间用手机+vxconnectbox+Terminal IDE,在vps上搭建网站,果然手机还是输入麻烦,有个无限键盘就爽死了)。

第一步:先到DNS商那里添加个二级域名,我这里用的A记录,指向我的vps。我用的是DNSPod的服务,所以,我先去dnspod那里添加我为rss网站设定的二级域名——rss.ksharpdau.info。

第二步:在vps的lnmp下新建一个nginx的虚拟机,添加一个名为rss/的目录作为rss网站的根目录,这个根据自己的情况设定。然后将这个网站根目录与刚才添加的二级域名(即rss.ksharpdau.info)绑定好。

第三步:新建一个数据库,tiny tiny rss支持两种数据库:mysql和postgresql。我用的是mysql,我这里新建一个叫做rss的数据库。创建的方法大家自己选,不熟悉的可以用phpmyadmin,熟悉的就直接用mysql命令吧,

Mysql> CREATE DATABASE rss; //在登陆mysql后输入一下命令创建数据库

注意:其实,tiny rss 不一定要单独创建一个数据库,他也可以和别的网站共享数据库,但是为了方便管理,我们最好单独创建一个,毕竟rss订阅的数据量还是很大的。

第四步:到Tiny Tiny rss 官网地址:http://tt-rss.org下载网站程序源码,地址为:https://github.com/gothfox/Tiny-Tiny-RSS/archive/1.9.tar.gz

#wget –c https://github.com/gothfox/Tiny-Tiny-RSS/archive/1.9.tar.gz

将下载的网站源码包Tiny-Tiny-RSS-1.X.X.tar.gz复制到网站的根目录,我这里就是我创建的rss/目录。

a. 解压网站源码包,命令如下:

#tar zxfv Tiny-Tiny-RSS-1.X.X.tar.gz

b. 进入解压后的Tiny-Tiny-RSS-1.X.X/目录,将里面的所有文件拷贝到网站根目录,命令如下:

#cd Tiny-Tiny-RSS-1.X.X/ //进入刚刚解压的Tiny-Tiny-RSS-1.X.X/目录

#cp –Rp * rss/ //这里根据自己的根目录的绝对路径来写,我这里假设我的根目录就是rss/

c.用浏览器打开,rss.ksharpdau.info,就会看到网站的安装界面,要求你填入数据库名称,数据库用户名,数据库密码等。正确输入后,确认,就会自动安装。

注意:安装的时候,会有部分文件的权限要求,比如说cache目录下的一些文件夹要求777权限,我们根据提示来设定就可以了。

d.会提示你是否初始化数据库,我这里选择是,然后一切都装好了。清除浏览器换从,重新打开rss.ksharpdau.info,然后就会看到网站的登陆界面,默认账号是:admin,密码是password。

f.然后进偏好设置(preference)里面修改一些设置,更具自己的需求来设置,比如,我们肯定要进行的操作就是修改管理员的密码,偏好设置里面有个user,里面可以增加和删除网站的用户,分配用户权限等。还有最重要的那就是导入你的opml文件。

导入自己的rss文件后,最重要的一步就是设置让网站程序自己更新rss信息,方法如下:

因为程序开发这为了安全,所以禁止以root身份运行update.php这个更新rss信息的php脚本,所以,我们要用非root身份来设置crontab计划任务。

#useradd ksharpdabu //新建一个叫ksharpdabu的用户

#su ksharpdabu //切换账号到ksharpdabu

$crontab -e //新建crontab计划任务

将下面的代码粘贴到crontab 文件里面

*/30 * * * * /usr/bin/php /home/rss/update.php --feeds --quiet //这里设置的每隔30分钟更新一次rss信息
注意:
/usr/bin/php :这里是php绝对路径,为了安全才这么写的。如果你嫌麻烦,可以直接写成下面的形式:
*/30 * * * * php /home/rss/update.php --feeds --quiet
/home/rss/update.php : 指的是网站根目录下的update.php文件,这里一定要写这个文件的绝对路径。
至于rss的更新时间频率,自己可以修改,就是crontab的命令使用,大家自己谷歌,我这里就不详细讲解了。
--feeds --quiet :这个是update.php的参数,想知道update.php有哪些参数,可以使用下面的命令(不能用root身份运行):
$php /home/rss/update.php
提示可用参数如下:
Options:
--feeds - update feeds
--feedbrowser - update feedbrowser
--daemon - start single-process update daemon
--task N - create lockfile using this task id
--cleanup-tags - perform tags table maintenance
--quiet - don't output messages to stdout
--log FILE - log messages to FILE
--indexes - recreate missing schema indexes
--update-schema - update database schema
--convert-filters - convert type1 filters to type2
--force-update - force update of all feeds
--list-plugins - list all available plugins
--help - show this help
Plugin options:
--update_self - update tt-rss installation to latest version
---------------------

如何在虚拟主机下搭建tiny tiny rss网站并自动更新tiny tiny rss的rss订阅?

其实方法我已经在《用Tiny搭建自己的rss订阅网站教程》指明了,要自动更新就必须到crontbab下将添加定期执行update.php的命令。但是我也不清楚是否虚拟主机环境下,主机上商是否会在虚拟主机的控制面板提供crontab定期执行的权限。因为我不怎么用控制面板,但是在网友用AMH面板上看到了是带crontab的功能的,而最近留言的那位的控制面板也是带crontab计划任务功能的。所以,只要你的虚拟主机的控制面板有crontab计划任务这项功能,那么就可以执行自动更新脚本了。方法和在vps一样,只不过vps下是直接编辑crontab的文件,而虚拟主机是通过面板程序修改,适合新手。

方法:
因为每个虚拟主机的商提供的面板都不一样。所以,你要自己看看虚拟主机的控制面板有无crontab计划任务功能,有的话。继续往下看,没有的话,只能手动更新,其实手动更新影响也不大。

先看vps的方法——vps是执行下面的命令更新的:

usr/bin/php /home/rss/update.php

从上面的命令我们看以看到,如何在控制面板里添加crontab计划任务,就两个关键:

一个是找到php的可执行文件的绝地路径,也可以说是安装路径(上面举例的命令中:usr/bin/php)。但是,一般主机都应该是将php放入了系统环境变量.可以不写绝对路径而直接用php代替usr/bin/php

另 一个关键是,找到你的rss更新的php脚本update.php的绝对路径,也就是你tiny tiny rss安装的路径,上面的例子是脚的路径是/home/rss/update.php 。一般虚拟主机的路径是/home/username/public_html/www 之类的目录了,其中usrname就是你的虚拟主机的用户名,主机根据自身的情况替代命令里的对应的内容就可以了。

下面我分别贴出AMH和Cpanel控制面板官方的演示系统的计划任务添加的方法:

AMH演示地址是:
http://amysql.com/AMH/demo.htm
AMH系统演示
账号: amh
密码: amh_password
登陆后可以看到计划任务选项,然后点击,会看到添加的计划人的选项:

虚拟主机搭建tiny tiny rss的方法
因为AMH面板只能使用AMH命令添加计划任务,所以在命令里添加:
amh php /home/rss/update.php --feeds --quiet
我这只的每个6个小时执行一次.

设定好后,点击下面的“创建”按钮就行了。



下面以Cpanel控制面板举例,来设置tiny tiny rss 自动更新rss订阅的计划任务方法:

演示地址:https://cpanel.net/demo/

点击其中第二个“CPANEL   DEMO”,就可以进入到cpanel的演示系统了。

进入后,在邮编的 Advanced  里面看到 cron jobs  ,就是crontab 计划任务的意思,点击进去就可以了。

进去后看到 crontab设置选项.

像下面的图片一样设置,然后点击  “Add New Cron Job”按钮就完成了计划任务的添加。

其他面板照着这个思路做就行了!