Tiny Tiny RSS

来自 ArchWiki

Tiny Tiny RSS 是一个开源的基于 Web 的新闻源 (RSS/Atom) 聚合器,旨在让您从任何位置阅读新闻,同时感觉尽可能接近真实的桌面应用程序。

安装

安装 tt-rss 软件包。

如果您计划使用 PostgreSQL,请安装 php-pgsql

tt-rss 安装到 /usr/share/webapps/tt-rss/。您需要从您的 Web 服务器提供此目录。最简单的方法是执行

# ln -s /usr/share/webapps/tt-rss /srv/http/tt-rss
# ln -s /usr/share/webapps/tt-rss /usr/share/nginx/html/tt-rss

您需要以递归方式将 /usr/share/webapps/tt-rss 的所有权更改为 http:http

配置

设置 PHP 和数据库

您需要设置一个数据库,可以是 MySQLPostgreSQL

创建一个 ttrss 用户和数据库。例如在 MySQL 中

$ mysql -p -u root
mysql> CREATE USER 'ttrss'@'localhost' IDENTIFIED BY 'somepassword';
mysql> CREATE DATABASE ttrss;
mysql> GRANT ALL PRIVILEGES ON ttrss.* TO "ttrss"@"localhost" IDENTIFIED BY 'somepassword';

或者在 PostgreSQL 中,例如

[postgres]$ createuser --createdb ttrss
[postgres]$ createdb -U ttrss ttrss

/etc/php/php.ini 中,启用以下模块

extension=curl
extension=iconv
extension=intl
extension=mysqli ; for MySQL
extension=pdo_mysql ; for MySQL
extension=pdo_pgsql ; for PostgreSQL
extension=pgsql ; for legacy PostgreSQL plugins (still required by default)
extension=soap

如果 open_basedir/etc/php/php.ini 中设置(默认情况下未设置),请将 /var/lib/tt-rss:/usr/share/webapps/tt-rss:/etc/webapps/tt-rss 添加到其中。

应用程序初始化可以自动或手动完成。

自动方式

  • 删除默认配置文件 /etc/webapps/tt-rss/config.php,没有此文件,tt-rss Web 应用程序将进入安装向导。
  • 导航到 (您的服务器根目录)/tt-rss/ 并继续安装程序。
  • 将生成的配置文件保存到 /etc/webapps/tt-rss/config.php

手动方式

  • 编辑 tt-rss 配置文件 /etc/webapps/tt-rss/config.php 并更新数据库设置。
  • /usr/share/webapps/tt-rss/sql/TYPE/schema.sql 重新创建数据库。使用 MySQL 运行
$ mysql --user ttrss --password=<PASSWORD> ttrss < /usr/share/webapps/tt-rss/sql/mysql/schema.sql

使用 PostgreSQL 运行

$ psql ttrss -U ttrss -f /usr/share/webapps/tt-rss/sql/pgsql/schema.sql

最后,/etc/webapps/tt-rss/config.php 文件将如下所示

<?php
 putenv('TTRSS_DB_TYPE=mysql');
 putenv('TTRSS_DB_HOST=localhost');
 putenv('TTRSS_DB_USER=ttrss');
 putenv('TTRSS_DB_NAME=ttrss');
 putenv('TTRSS_DB_PASS=foobar');
 putenv('TTRSS_SELF_URL_PATH=http://myserver/tt-rss/');

FastCGI

为您的服务器安装和配置 FastCGI

Pacman 钩子

要自动执行 tt-rss 数据库升级,您可以基于以下示例设置 pacman 后升级钩子

[Trigger]
Operation = Install
Operation = Upgrade
Type = Package
Target = tt-rss

[Action]
Description = Updating TT-RSS Database
When = PostTransaction
Exec = /usr/bin/runuser -u http -- /usr/bin/php /usr/share/webapps/tt-rss/update.php --update-schema=force-yes

如果您没有在 pacman.conf 中自定义 HookDir,则需要将其放入 /etc/pacman.d/hooks/tt-rss.hook。

另请参阅 Pacman#钩子

设置更新守护进程

请参阅 https://tt-rss.org/wiki/UpdatingFeeds—但是,只需启用 tt-rss 服务即可。检查服务的单元状态以验证它是否运行良好。

故障排除

完整性约束冲突:1062 键 'ttrss_feeds_feed_url_owner_uid_key' 的条目 '1' 重复

如果您将 tt-rss 数据库更新到 schema 137,您可能会看到错误键 'ttrss_feeds_feed_url_owner_uid_key' 的条目 '1' 重复。要解决此问题,请启动数据库 shell,例如

$ mysql -u ttrss -p
$ use tt-rss;

然后运行官方论坛的查询,该查询会删除重复的数据库条目。

PHP UConverter 类缺失,它由国际化 (intl) 模块提供。

此文章或章节的事实准确性存在争议。

原因: extension=intl#设置 PHP 和数据库 中添加,并且 /etc/php/php.iniphp 所有。因此,升级 tt-rss 时,此配置文件不应被覆盖,除非 php 也被升级。即使这样,先前对 /etc/php/php.ini 的更改在升级时是否会被完全覆盖仍然值得怀疑(如果 Pacnew 和 Pacsave 文件 得到正确处理)。(在 Talk:Tiny Tiny RSS 中讨论)

如果您在升级 tt-rss 后看到此错误,请将 extension=intl 添加到 /etc/php/php.ini重启 php-fpm 服务。