一般手机上看 RSS 订阅,Feedly + Reeder 3 用很长时间了,Reeder 4 出来了,非必需品,直接用 Reeder 3 或者 Feedly 也挺好,目前没买,用别人分享账号下载使用。说不出哪里好,用起来感觉还不错。
一直看着别人自建 RSS 服务,想折腾试试,可是一直懒得折腾,目前没有太大需求必须自建,Feedly 目前够用,而且自建稳不稳还得看服务器,Tiny Tiny RSS 也耗资源……忍不住,趁瓦工闲置 VPS (512M 内存,10G 硬盘)还有几个月时间,折腾试试。
OneinStack 搭建 LNMP
LNMP 环境使用 OneinStack 搭建,不详细说,可参考老杨之前折腾记录或者官方文档,Nginx 1.16.0 + PHP 7.3 + PostgreSQL 10.4(Tiny Tiny RSS 推荐使用 PostgreSQL),这配置,搭建环境就花了正正两个小时:Total OneinStack Install Time: 124 minutes
Tiny Tiny RSS(简称TT-RSS)安装
环境需求:PHP 版本 5.6 或者更新版本(建议开启 OPcache);PostgreSQL (9.1 或者更新版本) 或者 MySQL - 需要 InnoDB 支持。
PostgreSQL 新建用户 & 数据库
貌似无法使用 phpMyAdmin 管理 PostgreSQL,使用命令添加用户和数据库。安装完成,会有 PostgreSQL 用户密码信息,如:用户 postgres,密码 ooxx67696969
切换到 postgres 用户
sudo su - postgres
使用 psql 命令登录 PostgreSQL 控制台
psql
这里会提示「Password for user postgres:」,输入密码即可进入控制台。
创建数据库用户 ttrss,并设置密码:
CREATE USER ttrss WITH PASSWORD 'your_password';
创建用户数据库 ttrssdata,并指定所有者为 ttrss
CREATE DATABASE ttrssdata OWNER ttrss;
将 ttrssdata 数据库所有权限都赋予用户 ttrss,否则 ttrss 只能登录控制台,没有任何数据库操作权限
GRANT ALL PRIVILEGES ON DATABASE ttrssdata to ttrss;
添加完成,使用 \q 命令退出控制台。
下载 Tiny Tiny RSS 并安装
官方文档:Installing Tiny Tiny RSS for the first time
进入想要安装 TTRSS 网站目录,执行 git clone 下载:
git clone https://tt-rss.org/git/tt-rss.git tt-rss
修改 tt-rss 目录权限(不修改后面 www 用户可能无法使用 crontab 定时更新 feed 数据):
chown -R www /data/wwwroot/rss.0xo.net/tt-rss
访问 TTRSS 安装程序:
http://yoursite/tt-rss/install/
安装界面,根据实际填写数据库信息:
接着 Tiny Tiny RSS 会自动生成 config.php 文件,如果因为目录权限不够没有自动生成,可以手动复制放在 config.php 文件中上传到服务器中。
然后点击 Save configuration 完成安装。
登录 TTRSS
运气好的话,直接打开 http://yoursite/tt-rss/ 就能进入 TTRSS,不过一般会有问题,比如:
Startup failed
Tiny Tiny RSS was unable to start properly. This usually means a misconfiguration or an incomplete upgrade. Please fix errors indicated by the following messages:Image cache is not writable (chmod -R 777 cache/images)
Upload cache is not writable (chmod -R 777 cache/upload)
Data export cache is not writable (chmod -R 777 cache/export)
ICONS_DIR defined in config.php is not writable (chmod -R 777 feed-icons).
LOCK_DIRECTORY defined in config.php is not writable (chmod -R 777 lock).
PHP function mime_content_type() is missing, try enabling fileinfo module.
SSH 登录 VPS,进入 TTRSS 安装目录,比如 /data/wwwroot/rss.0xo.net/tt-rss,执行:
chmod -R 777 cache/images && chmod -R 777 cache/upload && chmod -R 777 cache/export && chmod -R 777 feed-icons && chmod -R 777 lock
即可解决前面五条错误提示。
而 PHP function mime_content_type() is missing, try enabling fileinfo module. 需要 PHP 编译开启 fileinfo,OneinStack 安装的 PHP 7.3.5 开启 fileinfo 方法:
温馨提示:小内存(1G 以下)机器,一定要加 swap,最少 512M 吧,要不然可能会编译失败。
fileinfo 已集成至 php 项目源代码内(https://pecl.php.net/package/Fileinfo)
cd /root/oneinstack/src
tar -zxvf php-7.3.5.tar.gz
cd php-7.3.5/ext/fileinfo
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --enable-fileinfo
make && make install
编译成功,修改 php.ini 添加 fileinfo.so
echo ‘extension=“fileinfo.so”’ >> /usr/local/php/etc/php.ini
然后重启 php:
service php-fpm restart
检查是否开启成功:
php -i | grep fileinfo
开启成功可看到如下字样:
……
fileinfo
fileinfo support => enabled
待数据库和文件属性检测通过,就可以正常登录,默认管理员账户是:admin,密码是:password。登录成功记得先按提示修改密码。
TTRSS 数据更新
主要有两种模式:一种是简单更新(每次登录 TTRSS 更新),一种是服务器自动更新(使用 crontab 定时更新)。详见官方文档:Tiny Tiny RSS Updating Feeds。
PHP_EXECUTABLE 设置 PHP 路径:
define('PHP_EXECUTABLE', '/usr/local/php/bin/php');
简单更新模式,config.php 配置文件将 SIMPLE_UPDATE_MODE 设置为 true,这样每次打开 Tiny Tiny RSS 就会更新 RSS 订阅数据。
define('SIMPLE_UPDATE_MODE', true);
定时更新模式,不建议用 root 身份运行 TTRS PHP 更新脚本,以 www 身份运行比较好。
CentOS 7 修改 /etc/crontab 文件,指定用户执行更新脚本
vi /etc/crontab
增加定时任务,使用 www 用户执行:
*/30 * * * * www /usr/local/php/bin/php /data/wwwroot/rss.0xo.net/update.php --feeds --quiet
注意:30分钟更新一次,须与 TTRSS 后台偏好设置更新频率一致。update.php 单进程,多进程是 update_daemon2.php。
重启crontab服务:
service crond reload
或者直接 reboot 重启一下系统。
可以通过日志查看定时任务是否执行:
tail -f /var/log/cron
会有如下日志:
May 21 12:00:01 host CROND[3684]: (www) CMD ( /usr/local/php/bin/php /data/wwwroot/rss.0xo.net/update.php --feeds --quiet)
TTRSS 使用
信息源管理
后台 - 偏好设置 - 信息源 - OPML,可以导入/导出 OPML
启用 GZip 压缩
间接提升访问速度,config.php 文件将 ENABLE_GZIP_OUTPUT 值改为 true 即可。
define('ENABLE_GZIP_OUTPUT', true);
客户端
Android 客户端:Tiny Tiny RSS,iOS 客户端:tiny Reader。
这两个客户端,偏好设置 - 通用 -「启用API,允许外部客户端通过 API 来访问该账户」,即可使用 TTRSS 账户登录使用(tiny Reader 亲测,安卓没有测试)。
如果 iOS 想使用 Reeder,要配合 Fever 插件使用。
安装方法:
cd tt-rss/plugins.local git clone https://github.com/DigitalDJ/tinytinyrss-fever-plugin fever
然后到:偏好设置 - 插件 - 用户插件,选择 Fever,点「启用选择的插件」……
重新登录 TTRSS,偏好设置底下会出现:Fever Emulation,进去设置密码,Reeder 使用 API,TTRSS 用户名 admin,以及这里设置的密码登录即可。
RSS 全文
需要安装 mercury_fulltext 插件支持,而且 Mercury Parser API 以及开源,还得自己搭建 Mercury Parser API。
安装 mercury_fulltext 插件
cd tt-rss/plugins.local git clone https://github.com/HenryQW/mercury_fulltext.git
然后「偏好设置」中启用 mercury-fulltext 插件。
搭建 Mercury Parser API
资源:HenryQW - Mercury Parser API
Docker 搭建,很简单。CentOS 7 安装 Docker-CE:
# 安装依赖 sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 # 添加docker下载仓库 sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo # 安装docker-ce sudo yum install docker-ce # 启动/设置开机启动 docker-ce sudo systemctl start docker sudo systemctl enable docker # 验证 sudo docker --version sudo docker run hello-world
Docker-CE 安装好,并启动,执行下面代码「拉取/运行」完成 Mercury Parser API 搭建:
docker run -p 3000:3000 --restart=always -d wangqiru/mercury-parser-api
mercury_fulltext 设置
「偏好设置」-「信息源」-「Mercury Fulltext settings (mercury_fulltext)」,填入自建 Mercury Parser API 地址:localhost:3000,保存。
编辑需要获取全文的 Feed(信息源),插件 - 启用「Get fulltext via Mercury Parser」保存退出即可。
如无意外就可以了。
主题
Feedly 主题不错:Feedly theme for Tiny Tiny RSS
安装方法:
wget https://github.com/levito/tt-rss-feedly-theme/archive/master.zip ## 下载主题文件 unzip master.zip ## 解压 cd tt-rss-feedly-theme-master ## 进入主题目录 cp -r feedly* [TT-RSS_Home 地址]/themes.local ## 复制主题文件到 TTRSS 目录
然后进入「偏好设置」-「主题」切换主题即可。
另: Awesome TTRSS 是个好网站。
TTRSS 使用体会
用了两天,iOS 配上 Reeder 4,感觉跟 Feedly + Reeder 4 没什么差别。Feedly 导出 OPML,导入 TTRSS,顺手清理了一下失效订阅源。估计会一直用 TTRSS。
参考资料
转自感谢:https://cyhour.com/479/