[Debian]LNMP 环境下安装和配置 Tiny Tiny RSS 教程(日期:20190809)

2019年8月10日 0 条评论 12 次阅读 0 人点赞

感觉自己都没怎么写过程序搭建配置这方面的教程啊,一是因为自己太菜了,二是因为自己很少有搭建某个程序这样的需求,三就是写这种教程比较花时间,我懒……_(:з)∠)_

嘛,不过这次趁着自己升级服务器和更改一些原有的需求,决定顺手搭建一个 Tiny Tiny RSS 来给自己用,所以就有了写此文的想法。因为是自己一边在搭建一边写的,所以相信后面自己写的内容也会详细很多,该说的坑也会说到,希望后面看到此文的朋友们能当作参考吧!

PS:此文内容皆以 Debian 系统为基础来写的,博主用的是最新的 Debian 10 x64。

一、LNMP 环境的搭建

这部分我就略过不说了,因为没什么好讲的,环境的搭建在 LNMP 的官网就能找到,我原来也写过一篇,大家可以看看,不过因为写的时间比较久了,有些内容不一定适用了,大家当作参考就好,还是要根据自己现在 LNMP 的版本来进行安装:[Debian]服务器搭建 LNMP 环境&创建虚拟主机教程(日期:20180415)

在这里特别提一下,因为上面的教程只是创建好了虚拟主机,还没有创建好数据库和数据库用户,所以大家需要在操作完上面的教程之后,再到 LNMP 自带的 phpMyAdmin 里用 Root 用户登录先创建好给 Tiny Tiny RSS 网站用的数据库用户名和密码,这步我就不说了,有不懂的留言我以后再来补吧!

二、Tiny Tiny RSS 的安装

在开始正式安装前,首先需要给大家介绍一下官方对 PHP 模块方面的一些需求和推荐安装的模块:

1. PHP 模块需求

必选的模块有下面这些:

  • PDO(最新的 LNMP 1.6 PHP 已自带)
  • JSON(同上已自带)
  • XML(同上已自带)
  • intl(同上已自带)
  • mbstring(同上已自带)
  • fileinfo(这个默认是不安装的,需要到 LNMP 的安装配置文件里修改开启安装,如果你开始装环境的时候没装,事后开启该选项升级一下 PHP 客户端就可以了)

推荐安装的模块:

  • CURL(最新的 LNMP 1.6 PHP 已自带)
  • POSIX(同上已自带)
  • GD(同上已自带)
  • Opcode(这个 PHP 7 的话默认装了但是没开启,需要自己开启,旧版本需要自己安装,可参考 LNMP 的教程:https://lnmp.org/faq/addons.html

关于需要和推荐安装的模块详细说明,可以看下官网的文档:https://tt-rss.org/wiki/PhpCompatibilityNotes

如果你用的不是 LNMP 安装的 PHP,注意检查下你的 PHP 是否安装好了上述的这些模块吧,可以下载一个 PHP 探针,可以很直观的看到。涉及安装这方面的,可能就因人而异了,这里还是以 LNMP 为主来写的就不说了。

2. 正式安装教程

上面交代的应该都差不多了,下面就开始正式的安装吧!注意下面的操作非特别说明都是在 SSH 下连接服务器输入命令进行的。

1. 安装 Git 并 Clone Tiny Tiny RSS 仓库

因为我们 Clone 仓库需要用到 Git 命令,而有些系统默认没有安装这个,所以第一步我们需要安装好 Git,如果你已经装过了,就不要再输下面的命令安装了。

apt install git

安装好 Git 后,我们先用 cd 命令到我们网站的文件夹中去,然后再 Clone Tiny Tiny RSS 的仓库到这个目录下。关于网站的文件夹,LNMP 创建虚拟主机时有说过这个,大家应该知道吧?默认创建好的路径应该是 /home/wwwroot/example.com,我这里就以这个路径为例来说了,后面也基本以这个为主来说。

cd /home/wwwroot/example.com
git clone https://git.tt-rss.org/fox/tt-rss.git tt-rss

2. 安装 Tiny Tiny RSS

在开始这一步之前还是说一句,记得创建好网站专用的数据库用户和数据库,强烈建议不要用 Root 用户来进行操作,有安全隐患。

1.首先我们要把前面 Clone 下来的仓库移动到网站的根目录下,默认是在网站目录下的 tt-rss 文件夹里的:

mv /home/wwwroot/example.com/tt-rss/* /home/wwwroot/example.com

注意不要把剩下的 tt-rss 文件夹删除了,里面还放有 git 的有关配置,以后升级程序的时候能用上。

2.放好之后,先把网站下的所有文件更改一下所有者,改成我们网站运行时使用的用户组和用户,LNMP 里的 Nginx 默认设置的是 www:www。

chown -R www:www /home/wwwroot/example.com

注意因为 LNMP 默认的跨目录权限限制,这里可能会出现一个提示,可忽略不管。

3.打开你的网站地址如 https://example.com/install 开始安装

4.按照下图的简单说明来安装:

这一步很重要所以我来说几点:

  1. 开头的 Database 是让你选择数据库的类型,根据你自己安装的数据库程序来选择,一般 LNMP 都是 MySQL
  2. Host name 是填写数据库通信地址的,因为我们的数据库一般都是本地数据库,所以不需要额外填写,除非你是在别的 VPS 上独立搭建了数据库
  3. Port 是填写数据库程序的通讯地址的,根据下滑线处的说明来自行选择,一般的 MySQL 都是 3306
  4. 上面的都没有问题之后点击 Test configuration 测试一下配置有没有问题

5.上面的填写完成之后一般会看到下图的提示,按照提示初始化一下数据库:

6.初始化数据库完成之后会看到这样的页面提示:

先不要慌着按照图里箭头所指保存配置文件,先把上面框内写的所有代码都复制下来保存为 config.php 文件。因为后面的保存配置是自动的,不一定会成功,如果不成功的话,可以按照提示将这个文件手动复制到网站的根目录 /home/wwwroot/example.com 下,也可以完成网站的初始化设置。

7.如果前面的设置没问题的话,此时你应该会看到提示说你设置完成可以访问你的网站了,如果不行,按照上面说的手动将保存好的 config.php 文件复制到网站根目录再尝试访问网站。

8.访问网站如果看到错误提示,一般都是没按照前面 PHP 模块的要求安装造成的,回头再安装一下或者根据网站给出的信息再进行具体的操作。

9.重要:安装好 Tiny Tiny RSS 之后,默认已经帮你创建好了管理员账号,账号名称是 admin,密码是 password,请登录上去之后立刻更改有关设置防止账号被黑。

三、有关网站的有关配置修改

上面的做完我们已经可以正常的使用 Tiny Tiny RSS 了,不过还是又一些地方需要改动一下的,不然使用上体验不会很好,下面我就几个主要的地方来说明下怎么修改吧。

1.设置 Tiny Tiny RSS 更新

这个是必须要设置的,因为根据官方所说,如果不设置更新的话,我们订阅的 RSS 是不会更新的。方法我就不介绍别的了,只说我自己使用的,就是官方推荐的更新方法。

1.修改 php.ini 去掉被限制的 passthru 函数

因为 LNMP 安装的 PHP 默认禁用了 passthru 函数,而我们的更新脚本需要用到这个,不去掉这个限制的话后面使用更新脚本可能会报错,所以还是修改下吧,具体的位置位于 /usr/local/php/etc/php.ini,找到其中的 disable_functions = 这行,去掉其中的 passthru 然后输入下面的命令重载下 PHP 就可以了:

lnmp php-fpm reload

2.运行更新脚本

注意,我这里用的是官方说的第二种方法,主要是为了让 Tiny Tiny RSS 能够持续在后台运行并更新 RSS。其它更新 RSS 的方法请参照官网 WiKi:https://tt-rss.org/wiki/UpdatingFeeds

首先是创建一个 systemd 服务文件,这里我就以 vi 命令为例了:

vi /usr/lib/systemd/system/ttrss_backend.service

然后输入按 i 键启用编辑模式后输入以下内容:

[Unit]
Description=ttrss_backend
After=network.target mysql.service postgresql.service

[Service]
User=www
ExecStart=/home/wwwroot/example.com/update_daemon2.php

[Install]
WantedBy=multi-user.target

解释一下,因为做了限制,要求更新脚本必须要用网站程序所用的用户来运行脚本,而我们的 LNMP 默认设置的是 www 这个在系统中无法登录的用户来运行程序的,所以文件内容才会写着 user=www,如果你是其它用户运行的,请自行修改。至于 ExecStart 这个,请填写你网站目录内的同名文件完整路径,比如我上面写的那个。

保存好之后,输入下面的命令来启用并启动更新服务:

systemctl enable ttrss_backend.service
systemctl start ttrss_backend.service

成功之后可以用下面的命令来看一下更新服务是否在正常运行,没有出现报错就是没问题的:

journalctl -u ttrss_backend

2.修改 Nginx 或 Apache 配置文件提高安全性

1.Nginx 配置文件的修改

LNMP 安装的 Nginx 网站配置文件位于 /usr/local/nginx/conf/vhost/example.conf,在其中添加如下内容(注意添加位置的地方,建议放在所有 location 配置的第一个):

location /cache {
    deny all;
}

location = /config.php {
    deny all;
}

如果你是按照我上面的教程来做的,直接这么加不需要修改什么,如果不是,注意 location 后面接的路径要和你的网站所匹配。

2.Apache 配置文件的修改

这个是给 Apache 用户准备的,前面 Nginx 的用户就不需要看了,因为我也是用的 Nginx,所有这里就只贴一下官方的配置了:

<Directory /var/www/html/tt-rss/cache>
    Require all denied
</Directory>

<Directory /var/www/html/tt-rss>
    <Files "config.php">
        Require all denied
    </Files>
</Directory>

四、Tiny Tiny RSS 程序的更新

因为程序本身不带有升级机制,所以我们的 Tiny Tiny RSS 日后要升级的话还是需要自己来操作一下。不知道大家还记不记得我最开始让大家保存的 tt-rss 文件夹?

先进入该文件夹:

cd /home/wwwroot/example.com/tt-rss

然后运行 git 命令拉取最新的 Tiny Tiny RSS:

git pull origin master

然后移动 tt-rss 文件夹下的最新程序到原来的网站目录覆盖相同文件:

mv /home/wwwroot/example.com/tt-rss/* /home/wwwroot/example.com

按照官方的说明,如果更新程序之后打开网站提示 config.php 缺少某些指令的话,可以对比下 config.php 的网站根目录下的 config.php-dist,看看后者多了些什么,然后把多的内容复制到自己的 config.php 文件中,打开网站收到更新提示一类的说明的话,按照说明一步步操作就可以了。

PS:官方特别提醒,不要手贱在更新的时候去点 INITIALIZE DATABASE(初始化数据库)~

五、参考说明

好了,本教程写到这里就差不多了,剩下的一些个性化的设置,就不在本文的教程范围内了。Tiny Tiny RSS 是一个非常好用的自搭建 RSS 订阅平台,即开源还有着良好的移动客户端的支持,实在是不可多得,希望大家也能用得愉快。

最后本文参考了官网的 Wiki 教程,以及指南手册上的教程分享(虽然我不清楚他是不是一手的),这里一并贴一下表示感谢吧!

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

指南手册:https://www.handbook.ltd/library/197-centos-7-tiny-tiny-rss

最后感谢认真看到最后的你,cheers!

PS;文章的特色图片出自官网首页的截图,不是我自己的哦!

12点半

Darkness cannot drive out darkness; only light can do that. Hate cannot drive out hate; only love can do that.

文章评论(0)