Pages

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”按钮就完成了计划任务的添加。

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

自建RSS阅读器:Tiny Tiny RSS,配置自动更新和全文RSS

一、Tiny Tiny RSS的安装

网站:
  1. 官网:https://tt-rss.org/
  2. 项目:https://git.tt-rss.org/git/tt-rss/src/master

1.1 安装前准备

PHP必备组件(最低为PHP 5.6,建议使用PHP 7以上):
PDO with support for PostgreSQL or MySQL depending on the database server used – some distributions need both PDO and database-specific packages, i.e. php-pdo and php-pgsql
JSON
XML (DOMDocument, DOMXpath)
Internationalization (intl)
mbstring
fileinfo
PHP建议安装的有:
CURL (highly recommended, just install it) OR support for remote fopen()
POSIX functions (for the multiprocess update daemon, otherwise not needed)
GD (needed for OTP and some plugins)
Some kind of opcode cache/accelerator (depends on PHP version: php5-apc, php7-opcache, etc)
特别需要提醒:Tiny Tiny RSS对PHP组件要求严格,缺少任意一个都无法成功启用。

1.2 TT-RSS安装

找一台已经配置好了LNMP或者LAMP环境的VPS主机。执行命令:
  1. git clone https://git.tt-rss.org/fox/tt-rss.git tt-rss
如果不想使用Git命令的话,你也可以自己手动下载安装包然后上传,只不过比Git要麻烦一些。下载下来的文件在tt-rss文件夹中,我们可以将文件移到根目录下,Linux批量移动文件方法:Linux移动和复制文件夹所有文件(包含隐藏的文件)
现在打开浏览器访问:https://mydomain.com/install/,你会看到TT-RSS安装界面,这里你就可以填写数据库账号、密码等信息了。


确定数据库连接成功后,就可以点击初始化TT-RSS了。


初始化成功后,TT-RSS会生成config.php文件,点击保存会自动在你的服务器根目录下生成,否则你也可以手动复制创建在根目录下。


完成后,你就可以登录到TT-RSS了,初始账号是:admin,密码是:password。在打开TT-RSS提示错误,一般来说都是组件没有安装好,如果你用的是Oneinstack,可以直接安装PHP组件,例如php fileinfo

1.3 TT-RSS的使用

Tiny Tiny RSS官方自带了非常多的主题,你可以直接在插件管理选项中启用,部分说明如下:
af_unburn:解决feedburner等rss链接跳转。
bookmarklets:在设置-信息源生成bookmarklets标签。
embed_original:图标插件,点击图标会显示文章原始内容,而不是rss。
fever:模拟fever api,在设置-Fver Emulation,设置好密码,可以和tt-rss的登录密码不同,然后就能支持fever的客户端比如reeder、Mr. Reader。
ff_feedcleaner:feed广告过滤,在设置标签生成FeecCleaner标签,过滤规则要用正则表达式,比较复杂。
googlereaderkeys:模拟google reader快捷键,如J、K等。
import_export:在设置-信息源,导入导出配置。
mail:图标插件,点击通过邮件分享。
mark_button:文章右下角能够快速将文章标记为已读未读。
mobilize:图标插件,点击显示readability简化的页面。
note:图标插件。
nsfw:根据标签隐藏文章内容。
share:图标插件,点击生成唯一的url方便分享。
swap_jk:添加j、k快捷键,类似vim。

1.4 TT-RSS升级

执行以下命令可以更新TT-RSS版本文件:
  1. #进入tt-rss 目录
  2. git pull origin master
然后打开你的TT-RSS,如果提示说config.php有错误,你需要将config.php-dist 中的内容合并到 config.php 或者直接删除 config.php 然后重装安装。特别注意:重装安装这一步不要点击INITIALIZE DATABASE,否则你的数据都会被覆盖。

二、Tiny Tiny RSS技巧

2.1 批量导入导出

Tiny Tiny RSS的信息源管理中,可以批量导入和导出Feed,方便我们迁移。


2.2 删除无效Feed

如果订阅源有无效的Feed,Tiny Tiny RSS会有提示,你可以批量删除它们。


2.3 切换修改主题

主题:
  1. https://github.com/levito/tt-rss-feedly-theme
市面上有不少的Tiny Tiny RSS免费主题,如果你不喜欢默认的主题 ,你可以将它们下载下来放在themes.local文件夹即可,命令演示:
  1. wget wget https://github.com/levito/tt-rss-feedly-theme/archive/master.zip
  2. unzip master.zip
  3. cd tt-rss-feedly-theme-master
  4. cp -r feedly* /data/wwwroot/rss.ucblog.net/themes.local
然后在Tiny Tiny RSS的设置中切换主题。


三、TT-RSS全文插件

网站:
  1. https://github.com/HenryQW/mercury_fulltext
  2. https://github.com/HenryQW/mercury-parser-api

3.1 mercury_fulltext

mercury_fulltext是Tiny Tiny RSS上一个用于获取RSS全文的插件,安装命令如下:
  1. #安装 mercury_fulltext 插件
  2. #进入到插件目录
  3. cd /data/wwwroot/rss.ucblog.net/plugins
  4. #下载
  5. git clone https://github.com/HenryQW/mercury_fulltext.git mercury_fulltext
然后在“偏好设置”中启用该插件。


现在回到“信息源”,这里需要填写Mercury Parser API。


3.2 Parser API

Mercury Parser API需要使用Docker安装。你先在VPS上安装好Docker-CE环境,建议参考官方的安装方法,比较简单。
  1. https://docs.docker.com/install/linux/docker-ce/centos/
  2. https://docs.docker.com/install/linux/docker-ce/debian/
然后执行命令安装和运行Mercury Parser API:
  1. docker run -p 3000:3000 --restart=always -d wangqiru/mercury-parser-api

3.3 RSS全文设置

「偏好设置」-「信息源」-「Mercury Fulltext settings (mercury_fulltext)」,填入自建 Mercury Parser API 地址:localhost:3000,保存。编辑需要获取全文的 Feed(信息源),插件 – 启用「Get fulltext via Mercury Parser」保存退出即可。


四、TT-RSS的手机APP

APP:
  1. https://play.google.com/store/apps/details?id=org.ttrssreader
Tiny Tiny RSS安卓应用可以直接在Google Play应用市场下载,要想让Tiny Tiny RSS在手机APP上登录使用,你需要先在Tiny Tiny RSS上开启API登录。


首次打开Tiny Tiny RSS APP后,需要你设置一下连接,主要填写你的Tiny Tiny RSS网址、账号和密码等。


五、TT-RSS自动更新

5.1 简单更新模式

打开config.php 配置文件,将 SIMPLE_UPDATE_MODE 设置为 true,这样每次打开 Tiny Tiny RSS 就会更新 RSS 订阅数据。特别要注意:你需要在config.php中PHP_EXECUTABLE设置好PHP的路径,例如:/usr/local/php/bin/php
  1. define('PHP_EXECUTABLE', '/usr/local/php/bin/php');
  2. // Path to PHP *COMMAND LINE* executable, used for various command-line tt-rss
  3. // programs and update daemon. Do not try to use CGI binary here, it won't work.
  4. // If you see HTTP headers being displayed while running tt-rss scripts,
  5. // then most probably you are using the CGI binary. If you are unsure what to
  6. // put in here, ask your hosting provider.

5.2 VPS定时任务

如果你用的是VPS主机,可以使用Linux的定时任务。TT-RSS不能使用Root运行定时任务,你需要使用www用户运行(一般来说LNMP环境和BT宝塔面板都用www来运行):
  1. crontab -u www -e
  2. #每5分钟运行一次,/usr/local/php/bin/php为php命令的绝对路径,根据需要来修改
  3. */5 * * * * /usr/local/php/bin/php /data/wwwroot/rss.ucblog.net/update.php --feeds --quiet
当然,还有一种方法是使用root登录,然后执行:contab -e编辑定时任务,加入以下代码:
  1. #指定使用www用户执行定时任务
  2. */5 * * * * su -m www -c "/usr/local/php/bin/php /data/wwwroot/rss.ucblog.net/update.php --feeds --quiet"
  3. #另
  4. php ./update.php是执行单进程,多进程是 php ./update_daemon2.php。

5.3 任务运行情况

修改和编辑Linux定时任务后,记得重启一下定时任务才能生效,命令如下:
  1. #ubuntu下定时执行工具cron开启关闭重启
  2. #配置文件一般为/etc/init.d/cron
  3. 启动:sudo /etc/init.d/cron start
  4. 关闭:sudo /etc/init.d/cron stop
  5. 重启:sudo /etc/init.d/cron restart
  6. 重新载入配置:sudo /etc/init.d/cron reload
  7. #可以用ps aux | grep cron命令查看cron是否已启动
  8. #CentOS重启crontab服务
  9. service crond reload
对于Linux定时任务是否正常运行,我们可以手动查看日志。
  1. #查看定时任务日志
  2. #Ubuntn
  3. tail -f /var/log/syslog
  4. #CentOS
  5. tail -f /var/log/cron
会有如下记录:
  1. Sep 28 22:20:01 localhost CRON[15714]: (www) CMD (/usr/local/php/bin/php /data/wwwroot/rss.ucblog.net/update.php --feeds --quiet)
  2. Sep 28 22:25:01 localhost CRON[15985]: (www) CMD (/usr/local/php/bin/php /data/wwwroot/rss.ucblog.net/update.php --feeds --quiet)
  3. Sep 28 22:30:01 localhost CRON[16177]: (www) CMD (/usr/local/php/bin/php /data/wwwroot/rss.ucblog.net/update.php --feeds --quiet)

六、总结

Tiny Tiny RSS在批量导入Feed订阅源和设置定时任务时总会遇到一些莫名其妙的错误,例如数据库会报错:Uncaught PDOException: SQLSTATE[HY000] [1045] Access denied for user或者是MySQL connection not working: 2002 No such file or directory
另外,在手动检测运行Tiny Tiny RSS定时任务时,也出现了如下错误:
  1. Tiny Tiny RSS was unable to start properly. This usually means a misconfiguration or an incomplete upgrade.
  2. Please fix errors indicated by the following messages:
  3. * Please don't run this script as root.
  4. * PHP UConverter class is missing, it's provided by the Internationalization (intl) module.
  5. * PHP support for mbstring functions is required but was not found.
  6. You might want to check tt-rss wiki or the forums for more information.
  7. Please search the forums before creating new topic for your question.
错误:Please don't run this script as root 这个很好解决,用本文的su www这样的指定用户运行定时任务即可,其它的如PHP错误、数据库等错误,经过实践摸索在config.php中指定数据库的连接地址和端口即可,如下:
  1. define('DB_TYPE', 'mysql');
  2. define('DB_HOST', '127.0.0.1');
  3. define('DB_USER', 'wzfou');
  4. define('DB_NAME', 'wzfou.com');
  5. define('DB_PASS', 'qimm');
  6. define('DB_PORT', '3306');