笔者是RSS重度用户,一直把RSS作为信息来源的主要渠道,一直只在手机上通过第三方软件Reeder使用,使用本地账户,收集来自各种渠道的RSS链接。其间也试过其它线上RSS服务,比如Feedly等,但都因为在国内使用卡慢、高额付费等因素放弃。
最近了解到Tiny Tiny RSS这个开源项目,可以在服务器上搭建自己专用的RSS信息中枢,于是试着搭建一下。虽然折腾了挺久,但最终也如愿部署成功,体验不错,再搭配早已部署的Huginn,现在终于可以在任何平台、随时随地无缝同步、高度定制地使用自己的“RSS信息系统”了。
以此文记录下整个搭建过程。自从使用了宝塔面板,越来越喜欢用面板了,真的十分方便,大大地减少维护时间。下面搭建过程中能用到面板的时候都是充分使用面板。
一、部署Tiny Tiny RSS
(一)创建网站
1.解析域名并申请SSL证书
在创建网站前先把域名准备好,已经有主域名的话可以直接在阿里云管理中解析,解析一个二级域名。为了以后使用更加安全,最好再申请一个免费的SSL证书,给网站加密上绿锁。
2.通过宝塔面板创建网站
① 在宝塔面板创建网站(同时创建一个数据库)
如果申请了SSL证书,将下载的证书信息填入面板该网站相应设置中,并勾选强制https
② 创建完成后浏览器访问域名试下是否成功,成功后删除网站根目录内所有文件。
3.拷贝官网项目文件到网站
可以手动下载后上传也可以直接在SSH中下拉(建议还是直接手动打包下载ZIP文件通过面板上传和解压,不用考虑权限问题),官网项目地址:fox / tt-rss
4.配置RSS网站
浏览器中打开域名,出现网站初始配置页面,按步骤操作即可
其中可能需要注意的是:数据库账号密码填刚创建的,而不是root账户;主机名可填
localhost
,端口MySQL的话为3306
;网站URL,有SSL的话记得https开头
到此RSS网站就已经创建完成了
(二)设置订阅源feed自动更新
到此创建的RSS网站是可以正常使用的,但无法自动更新订阅源,下面通过crontab实现后台自动更新
① 添加www用户的crontab任务:crontab -u www -e
,写入
*/30 * * * * /usr/bin/php [site_dir]/update.php --feeds --quiet #[site_dir]换成自己网站的路径
上面表示每30分钟更新一次,其中
/usr/bin/php
可能和你的不一致,可以检查下是否存在,另外注意要给予update.php
文件可执行权限。
② 为了测试任务添加是否有效,可以先执行命令更新订阅测试下:
sudo -u www /usr/bin/php [site_dir]/update.php --feeds --quiet
可能出现的PHP错误:PHP function mime_content_type() is missing, try enabling fileinfo module. 解决方法见维基:PHP安装fileinfo扩展
二、安装fever插件
由于iOS上第三方客户端Reeder支持的自建RSS只能通过fever的API实现,因此需要安装第三方插件fever。fever插件地址:DigitalDJ/tinytinyrss-fever-plugin
1.安装fever插件
同RSS网站的创建一样,将项目文件拷贝到网站目录下的plugins.local/fever文件夹内,刷新网页即可,此时就可以看到偏好设置中出现Fever Emulation选项:
2.启用API并设置fever密码
① 在偏好设置中勾选启用API
② 设置fever密码
可能是bug,如果在Fever Emulation选项中无法成功设置密码的话,可以直接去修改文件fever_api.php:在
$apikey = strtoupper(md5($email . ":" . $password));
上方,替换其中的邮箱和密码即可
3.在Reeder中登陆使用
在iOS客户端Reeder中创建一个连接到fever的账户即可
注意:其中邮箱(用户名)并不真是填邮箱,而是填网站的用户名(比如admin)
至此已全部部署完成了,可以愉快地使用了。