OneinStack 搭建 LNMP 安装 Tiny Tiny RSS(转)

@Wen's  May 30, 2019

一般手机上看 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)安装

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

环境需求: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/

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

 479-ttrss-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 方法:

参考: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。

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

 479-ttrss-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 亲测,安卓没有测试)。

 479-ttrss-api

如果 iOS 想使用 Reeder,要配合 Fever 插件使用。

安装方法:

cd tt-rss/plugins.local
git clone https://github.com/DigitalDJ/tinytinyrss-fever-plugin fever

然后到:偏好设置 - 插件 - 用户插件,选择 Fever,点「启用选择的插件」……

 479-ttrss-fever

重新登录 TTRSS,偏好设置底下会出现:Fever Emulation,进去设置密码,Reeder 使用 API,TTRSS 用户名 admin,以及这里设置的密码登录即可。

 479-ttrss-fever-set

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,保存。

 479-ttrss-mercury-parser-api

编辑需要获取全文的 Feed(信息源),插件 - 启用「Get fulltext via Mercury Parser」保存退出即可。

 479-ttrss-mercury-feed

如无意外就可以了。

主题

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。

参考资料

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

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

Awesome TTRSS

转自感谢:https://cyhour.com/479/


添加新评论