群晖部署RSS 订阅托管服务

群晖部署RSS 订阅托管服务

Fresh RSS是一个自托管的RSS和Atom提要聚合器。它重量轻,易于使用,功能强大,可自定义。
Fresh RSS可以用Docker部署,也可以用PHP服务器部署。这里用PHP服务器部署。PHP服务器部署又分为nginx+php,Apache+php。也就是LAMP、LNMP。

LAMP:Linux + Apache + MySQL+php的组合方式
LNMP:Linux + Nginx + MySQL+php的组合方式

FreshRss Web界面
在这里插入图片描述
Fresh RSS 源码

基础知识

php和apache之间的关系

Apache :web 服务器软件,负责回应所有收到的Web请求。

同类产品有微软的 IIS 等。功能是让某台电脑可以提供 www 服务。本地环境下可以通过127.0.0.1这个IP来访问本地网站。

PHP :是服务端语言。

由 apache 加载以后,使 apache 增加解释 php 文件的功能。以便这台服务器可以运行 php 程序。访问方法如下:地址/文件名.php

php和apache之间的关系

我们可以把服务器看成一间餐馆,apache是店面的传菜员,php是厨房的厨师。

有些饮料之类的(静态资源,如:HTML、CSS、JS、Images等),不用经过厨师,直接由传菜员传递给顾客(Client)。

如果需要厨师烹饪的菜式(例如:*.PHP等),就需要先等厨师把原始食材(php)烹饪完变成可以吃用的饭菜(静态资源),传菜员才能上菜。

CGI、FastCGI、PHP-FPM关系

CGI是什么

CGI(Common Gateway Interface)全称是“通用网关接口”,WEB 服务器与PHP应用进行“交谈”的一种工具,其程序须运行在网络服务器上。CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php、perl、tcl等。

WEB服务器会传哪些数据给PHP解析器呢?URL、查询字符串、POST数据、HTTP header都会有。所以,CGI就是规定要传哪些数据,以什么样的格式传递给后方处理这个请求的协议。仔细想想,你在PHP代码中使用的用户从哪里来的。

也就是说,CGI就是专门用来和 web 服务器打交道的。web服务器收到用户请求,就会把请求提交给cgi程序(如php-cgi),cgi程序根据请求提交的参数作应处理(解析php),然后输出标准的html语句,返回给web服服务器,WEB服务器再返回给客户端,这就是普通cgi的工作原理。

CGI的好处就是完全独立于任何服务器,仅仅是做为中间分子。提供接口给apache和php。他们通过cgi搭线来完成数据传递。这样做的好处了尽量减少2个的关联,使他们2变得更独立。

但是CGI有个蛋疼的地方,就是每一次web请求都会有启动和退出过程,也就是最为人诟病的fork-and-execute模式,这样一在大规模并发下,就死翘翘了。
在这里插入图片描述

FastCGI介绍

从根本上来说,FastCGI是用来提高CGI程序性能的。类似于CGI,FastCGI也可以说是一种协议。

FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork一次。它还支持分布式的运算, 即 FastCGI 程序可以在网站服务器以外的主机上执行,并且接受来自其它网站服务器来的请求。

FastCGI是语言无关的、可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中,并因此获得较高的性能。众所周知,CGI解释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保持在内存中,并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性、Fail- Over特性等等。
在这里插入图片描述

FastCGI的工作原理

FastCGI接口方式采用C/S结构,可以将HTTP服务器和脚本解析服务器分开,同时在脚本解析服务器上启动一个或者多个脚本解析守护进程。当HTTP服务器每次遇到动态程序时,可以将其直接交付给FastCGI进程来执行,然后将得到的结果返回给浏览器。这种方式可以让HTTP服务器专一地处理静态请求,或者将动态脚本服务器的结果返回给客户端,这在很大程度上提高了整个应用系统的性能。

  1. Web Server启动时载入FastCGI进程管理器(Apache Module或IIS ISAPI等)
  2. FastCGI进程管理器自身初始化,启动多个CGI解释器进程(可建多个php-cgi),并等待来自Web Server的连接。 当客户端请求到达Web
    Server时,FastCGI进程管理器选择并连接到一个CGI解释器。Web server将CGI环境变量和标准输入发送到FastCGI子进程php-cgi。
  3. FastCGI子进程完成处理后,将标准输出和错误信息从同一连接返回Web Server。当FastCGI子进程关闭连接时,请求便告处理完成。
  4. FastCGI子进程接着等待,并处理来自FastCGI进程管理器(运行在Web Server中)的下一个连接。 在CGI模式中,php-cgi在此便退出了。

FastCGI与CGI特点

FastCGI,所有这些都只在进程启动时发生一次。一个额外的好处是,持续数据库连接(Persistent database connection)可以工作。
由于FastCGI是多进程,所以比CGI多线程消耗更多的服务器内存,php-cgi解释器每进程消耗7至25兆内存,将这个数字乘以50或100就是很大的内存数。

PHP-FPM

要了解PHP-FPM,就得先说说PHP-CGI。

PHP-CGI是 PHP (Web Application)对 Web Server 提供的 CGI 协议的接口程序。虽然是php官方出品,但是这丫的却一点也不给力,性能太差,而且也很麻烦不人性化,主要体现在:

php-cgi变更php.ini配置后,需重启php-cgi才能让新的php-ini生效,不可以平滑重启。
直接杀死php-cgi进程,php就不能运行了。
上面2个问题,一直让很多人病垢了很久,所以很多人一直还是在用 Module 方式。 直到 2004年一个叫 Andrei Nigmatulin的屌丝发明了PHP-FPM ,这神器的出现就彻底打破了这种局面,这是一个PHP专用的 fastcgi 管理器,它很爽的克服了上面2个问题,而且,还表现在其他方面更表现强劲。

也就是说,PHP-FPM 是对于 FastCGI 协议的具体实现,他负责管理一个进程池,来处理来自Web服务器的请求。目前,PHP5.3版本之后,PHP-FPM是内置于PHP的。

因为PHP-CGI只是个CGI程序,他自己本身只能解析请求,返回结果,不会进程管理。所以就出现了一些能够调度 php-cgi 进程的程序,比如说由lighthttpd分离出来的spawn-fcgi。同样,PHP-FPM也是用于调度管理PHP解析器php-cgi的管理程序。

PHP-FPM通过生成新的子进程可以实现php.ini修改后的平滑重启。

准备

安装 Web Station、PHP 7.3、Apache HTTP Server、MariaDB 10

通过Web Station,可以轻松发布自己的网站。在安装了PHP套件后,还 可以创建动态网站,以供个人和企业使用。
在这里插入图片描述

设置数据库远程访问

考虑到数据库不单freshrss要用,其他项目也要用到,所以必须设置远程访问权限。

# 进入mariadb10目录
cd /volume1/\@appstore/MariaDB10/usr/local/mariadb10/bin/
# 登录命令
./mysql -u root -p
# 查看数据库
show databases;
# 选择数据库
use mysql
# 设置远程访问权限
update user set host = '%' where user = 'root';
# 刷新权限
FLUSH PRIVILEGES;

创建数据库
创建数据库语法

CREATE DATABASE [IF NOT EXISTS] <数据库名>
[[DEFAULT] CHARACTER SET <字符集名>] 
[[DEFAULT] COLLATE <校对规则名>];

用下面的命令,创建数据库

CREATE DATABASE IF NOT EXISTS freshrss DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;

新增虚拟主机

从Web Station新增虚拟主机,基于端口,文档根目录选择我们创建好的web目录,把解压好的freshrss源码放进去。
在这里插入图片描述
常规设置,设置HTTP后端服务器,PHP版本,选择启动个人网站,确定。
在这里插入图片描述

点击确定。到这里就已经安装成功了。

登录freshrss解决报错

此时,基于上面创建的虚拟主机,输入网址、端口号,进入安装界面。
在这里插入图片描述
选择中文
在这里插入图片描述
提示PHP DAO和目录权限问题。
解决找不到PHP DAO驱的问题
在这里插入图片描述
设置权限
在FreshRSS目录右键,属性。进入FreshRSS目录属性编辑面板,选中http用户,编辑权限,应用于全部,钩选读取,写入权限。
在这里插入图片描述
回到界面刷新,全绿,下一步。

为了提高灵活性和安全性,Web Station 使用了 http 用户组来执行任务。因此,为了使 Web Station 可以正常运行,请为各相应文件夹和文件更改 http 组的访问权限。例如,如果您要让 vhost1 文件夹可通过 Web Station 访问,则需确认 http 群组已有 vhost1 及其中文件/文件夹的正确读取/写入权限。
更改文件访问权限的目的是使 Web Station 可正常运行,无法限制文件访问权限。若要防止信息暴露,请勿将敏感信息存储在 Web Station 的共享文件夹和虚拟主机的文档根目录中。

设置数据库
在这里插入图片描述
因为用的是群晖本地的数据库,所以,这里要填写127.0.0.1,端口号可以从主菜单,MariaDB 10面板看到。
在这里插入图片描述
freshrss数据库,居然只有六张表,真够简单的。
在这里插入图片描述
下一步。

常规配置,设置用户名,密码。
在这里插入图片描述

freshrss使用

订阅源的最小自动更新间隔

freshrss使用也很简单。登录后,添加分类,添加订阅源即可。一定要记得设置最小自动更新间隔,建议一般设置一天即可。更新太频繁容易让网站挂掉,以后没得用了。
在这里插入图片描述

默认的最小自动更新间隔

在这里插入图片描述

归档策略

在这里插入图片描述
清理策略,可以在配置,归档,最小自动刷新间隔,设置一个默认值,对每一个订阅源生效。清理策略,可以选择不清理。方便以后搜索。

展开所分类

左侧的分类默认是折叠的,每次都要点一下,非常不方便,可以设置默认展开所有分类。
在这里插入图片描述

RSS源获取

订阅源网址,可以在博客首页获取。
在这里插入图片描述

参考资料

在群晖上部署全功能 RSS 订阅托管服务 、实现基于 FreshRSS 自部署和多端访问
CGI、FastCGI和PHP-FPM关系解析
Nginx和PHP的配置
PHP 设置

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值