OneinStack 搭建 LNMP 安装 Tiny Tiny RSS

一般手机上看 RSS 订阅,Feedly + Reeder 3 用很长时间了,Reeder 4 出来了,非必需品,直接用 Reeder 3 或者 Feedly 也挺好,目前已买,用别人分享账号下载使用更新麻烦。

一直看着别人自建 RSS 服务,想折腾试试,可是一直懒得折腾,目前没有太大需求必须自建,Feedly 目前够用,而且自建稳不稳还得看服务器,Tiny Tiny RSS 也耗资源……忍不住,趁瓦工闲置 VPS (512M 内存,10G 硬盘)还有几个月时间,折腾试试。

内容简介:OneinStack 搭建 LNMP 安装 Tiny Tiny RSS,自建 RSS 阅读器。Tiny Tiny RSS 安装,配置自动更新,自动获取全文RSS,更换主题等。

OneinStack 搭建 LNMP

LNMP 环境使用 OneinStack 搭建,不详细说,可参考老杨之前折腾记录或者官方文档(PHP 记得把 fileinfo 编译上)。Nginx 1.17.4 + PHP 7.3 + PostgreSQL 10.4(Tiny Tiny RSS 推荐使用 PostgreSQL)「后来为了方便以后迁移,改用 MariaDB 10.3」,这配置,搭建环境就花了正正两个小时:Total OneinStack Install Time: 124 minutes

目前建议配置:Nginx 1.17.4 + PHP 7.3(开启 OPcache,fileinfo) + MariaDB 10.3 + phpMyAdmin

Tiny Tiny RSS(简称TT-RSS)安装

官网:https://tt-rss.org

环境需求:PHP 版本 5.6 或者更新版本(建议开启 OPcache);PostgreSQL (9.1 或者更新版本) 或者 MySQL - 需要 InnoDB 支持。

PostgreSQL 新建用户 & 数据库

建议 MySQL/MariaDB 数据库,直接 phpMyAdmin 管理更方便。

PostgreSQL 方向需要可点击查看▼展开

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 命令退出控制台。

MySQL/MariaDB 新建用户 & 数据库

这个比较简单,登陆 phpMyAdmin 建立即可。

下载 Tiny Tiny RSS 并安装

官方文档:Installing Tiny Tiny RSS for the first time

进入想要安装 TTRSS 网站目录「/data/wwwroot/rss.0xo.net/」(请根据实际修改),执行 git clone 下载:

cd /data/wwwroot/rss.0xo.net/ && git clone https://tt-rss.org/git/tt-rss.git

修改 tt-rss 目录权限(不修改后面 www 用户可能无法使用 crontab 定时更新 feed 数据):

chown -R www /data/wwwroot/rss.0xo.net

访问 TTRSS 安装程序:

https://rss.0xo.net/install/

安装界面,根据实际填写数据库信息:

接着 Tiny Tiny RSS 会自动生成 config.php 文件,如果因为目录权限不够没有自动生成,可以手动复制放在 config.php 文件中上传到服务器中。

然后点击 Save configuration 完成安装。

登录 TTRSS

如果前面权限配置好,直接打开 https://rss.0xo.net/install/ 就能进入 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/,执行:

chmod -R 777 cache/images && chmod -R 777 cache/upload && chmod -R 777 cache/export && chmod -R 777 feed-icons && chmod -R 777 lock

即可解决前面五条错误提示。(如果前面已经执行 chown -R www /data/wwwroot/rss.0xo.net,这五条错误应该不会出现)

而 PHP function mime_content_type() is missing, try enabling fileinfo module. 需要 PHP 编译开启 fileinfo(若搭建环境已开启,就不会有这个错误提示)。OneinStack 安装的 PHP 7.3.5 开启 fileinfo 方法:

参考:php7安装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(实测不好用,会锁死进程更新不了)。

还有两种添加定时任务方法,不过试过不能更新数据:▼展开

1、以 www 用户身份添加定时任务:

crontab -u www -e
*/5 * * * * /usr/local/php/bin/php /data/wwwroot/rss.0xo.net/update.php --feeds --quiet

每5分钟运行一次,/usr/local/php/bin/php 为 php 绝对路径,根据需要来修改。

2、root 添加定时任务,指定使用 www 用户执行:

*/5 * * * * su -m www -c "/usr/local/php/bin/php /data/wwwroot/rss.0xo.net/update.php --feeds --quiet"

重启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)

如果有如下错误提示:

(CRON) ERROR chdir failed (/home/www): No such file or directory

前往 home,创建 www 目录并改目录所有者为 www 即可。

chown -R www /home/www

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 升级

vUNKNOWN (Unsupported)

TTRSS 使用体会

用了两天,iOS 配上 Reeder 4,感觉跟 Feedly + Reeder 4 没什么差别。Feedly 导出 OPML,导入 TTRSS,顺手清理了一下失效订阅源。估计会一直用 TTRSS。

参考资料

Tiny Tiny RSS - 专属于你的RSS服务

用Tiny Tiny RSS搭建自用RSS阅读器

🐋 Awesome TTRSS

除非注明,沙唐桔文章均为原创,本文地址 https://cyhour.com/479/,转载时必须以链接形式注明原始出处。
声明:我们不销售主机,选主机需合法使用。任何主机需定期备份,防止数据丢失。信息以实际为准,评测仅供参考不代表权威!
🔞:Netflix 奈飞 YouTube 合租免费节点Telegram 频道

优化 WordPress 评论回复通知邮件

用上 G Suite 后,域名邮箱自然也托管到 Google,Gmail 配合 Gmail SMTP 插件使用,还行。更改后回复评论提交速度巨慢,肯定与这个评论回复通知邮件有关。 原本使用 VPS Postfix 直接发送,虽然基本上会进垃圾邮件,但是回复评论提交速度很快。再次尝试使用 wp_schedule_single_event 延迟发送评论…

使用 rclone 将 Google Drive 文件同步至 OneDrive

前几天上了博友「灵尘居」的 Office 365 车,1T OneDrive 到手,手机照片一直喂 Google AI,挺方便的,以前还会同步一份到家里的垃圾西数 NAS,不过并不太自动,后来就懒得弄了。 Google 虽然是大厂,但是数据只有一份,还是怕怕,多一个备份不是坏事。苹果 iCloud 不错,但是贼贵,况且我只有一个…
浏览: 156 标签:  ,  ,  , 

尼康 D7100 中文使用说明书 高清 PDF 电子版免费下载

尼康 D7100 说明书是一份介绍详细尼康 D7100 单反官方教程,推荐购买了 D7100 单反博友下载保存参考,以便随时查看一些常用按键操作和使用技巧。 尼康 D7100 简介 尼康 D7100 搭载先进的对象捕捉性能和成像性能,能够忠实还原拍摄细节。高密度的 51 点自动对焦系统准确捕捉目标对象并进行跟踪,…

全网热门公共 BitTorrent Tracker 列表合集 加速BT下载

BT 下载速度取决于其他下载同一资源的用户上传速度。做种「指上传文件数据给其他 BT 用户的行为」用户越多,你的下载速度越快!如果资源没人提供上传,就会完全没有下载速度,而做种用户靠 Peer、DHT、Tracker 获得。 Tracker 是什么? BT 下载的文件都是其他用户上传给你的。 BT 下载速度…
浏览: 75 标签:  ,  ,  , 

Comments:24

  1. 这个坑我也要挖着,等现在的rss用不了了来装。

    2019.05.23 11:22 # 回复
    1楼
  2. 哦啊,被我安利了,这么快就把教程折腾好了。

    2019.05.23 13:53 # 回复
    2楼
  3. 我几乎试遍了所有稍有点名气的rss服务程序,包括ttrss,没一个合适的,要么功能有问题,要么不稳定,要么要求高,比如必须php7,mysql高版本,要么是GO的,要么就事要装一些平时用不到的php库、等等。
    实在受不了,为啥么不能出个php和mysql版本低点的呢?

    2019.05.24 20:55 # 回复
    3楼
  4. 很久没有用rss订阅了。

    2019.05.25 00:56 # 回复
    4楼
  5. 目录要777权限,有点不科学啊

    2019.05.29 13:40 # 回复
    5楼
  6. 我还是使用reeder 3吧,折腾起来有点复杂

    2019.07.05 22:48 # 回复
    6楼
  7. 沙唐桔-小白
    小白

    网页上不加载图片是什么问题??

    2020.02.08 18:44 # 回复
    7楼
  8. 沙唐桔-小王
    小王

    这是什么问题呀?

    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)

    2020.03.09 20:48 # 回复
    8楼
  9. 沙唐桔-Roy
    Roy

    我最近在用TTRSS配合Firey Feed,感觉比用Reeder好,Fever的API插件性能不行。

    2020.03.10 15:18 # 回复
    9楼
    • @Roy 谢谢推荐,不过我最近干掉 TTRSS 了,用回 Feedly 省事。

      2020.03.10 17:08 # 回复
  10. 沙唐桔-小王
    小王

    Mar 11 19:30:01 vultr CROND[2526]: (www) CMD (www /usr/bin/php /www/wwwroot/maxwang.fun/ttrss/update.php –feeds –quiet)
    Mar 11 20:00:01 vultr CROND[2581]: (www) CMD (www /usr/bin/php /www/wwwroot/maxwang.fun/ttrss/update.php –feeds –quiet)
    关于feed更新请教一下 ,日志已有如上记录,但似乎并没有自动更新,还是打开网页之后主动刷新。(简单更新模式并没有关闭)

    2020.03.11 20:25 # 回复
    10楼
    • @小王 会不会是权限问题?修改 /etc/crontab 添加定时任务试试?

      2020.03.12 13:04 # 回复

发表留言

Vultr 送$100,搬瓦工年付最低$49,优惠码 BWH3HYATVBJW,更多推荐VPS信息