发现自己已然好长时间没事就喜欢刷知乎,或者刷豆瓣,而推荐给我的又都是哪些结婚后是何种体验,离婚后是何种体验,处对象是何种体验。

  这些东西,偶尔瞧瞧,能使自己在实际生活中留意,从而防止踩坑,维护家庭和谐其实是有益处的,但是天天看,最重要的作用大约就是杀时间了。

  但生命一晃早已快过半,还是得把时间用在更有意义的地方才行。正好近期发觉好些写博客的,觉得看了太有收获,那之后就看博客好了,最好是把所有信息都搜集上去置于一个app上面看。一搜索,才发觉这东西老早就有了,叫RSS,曾经google支持得挺好,结果几年前直接把这个给关闭了。现在要用,最好就是自己搭建RSS服务器,找了半天,发现tt-rss应当普遍反映不错,不过官方文档写得实在儿戏,于是网上有了一堆乱七八糟的博客教如何搭建tt-rss的。不过每位人安装tt-rss的时间不同,遇到的问题不同,总结的推论也不同,所以就有了这篇造轮子的文章。

  这个安装大约分为服务器上的安装与安卓端安装,其中服务器端包括安装tt-rss,以及tt-rss的mercury_fulltext插件、fever插件,还有配合mercury_fulltext插件工作的mercury-parser-api,安卓端就比较简略了,只是找了很久也没找到中意的app,最后只好凑合用了。

  1.安装tt-rss

  由于自己的服务器上搭建有博客系统,域名也只有1个,所以网上留传的docker安装方法不太喜欢,按我的理解,如果用docker在我的服务器上安装,大概得用不同的端口,这个使我太是不喜欢,于是就自己忙活如何在nginx下边加一个location来解决,结果活活忙活了我两晚,要不是在外边出差,估计都不或许有两晚时间给我忙活。

  好了,言归正传,还是说如何安装忙活的吧。

  1.1 服务器基本状况

   ubuntu 18.04

    nginx

  1.2 在服务器上安装php

  此处的php指的是typecho 不需要而ttrss还要的各类模块,不过不管了,照着tt-rss的PhpCompatibilityNotes来安装就好。有一点小改动,我把其中的版本号去除了,不然ubuntu18.04安装不过去。

  sudo apt install php-cli php-curl php-mbstring php-json php-intl php-gd php-pgsql php-xml php-opcache

  1.3 设置php

  安装好以后发觉是php7.2版本,然后需要稍稍设置一下。

  sudo vim /etc/php/7.2/fpm/php.ini

  然后找到php.ini中的opcache部份,更改为下边那样就行

   [opcache]

     ; Determines if Zend OPCache is enabled
    opcache.enable=1
    ; Determines if Zend OPCache is enabled for the CLI version of PHP

  1.4安装postgresql

  sudo apt-get install postgresql

  然后修改ubuntu系统中postgres用户的密码,更改postgresql数据库中管理员postgres的密码,然后在postgresql数据库中改建一个role,这个role的名子最好跟运行php、nginx的ubuntu系统中的用户名相似(如果不同会有哪些问题不太清楚,会不会有问题也不太清楚),然后把这个role的密码也更改了,然后用这个role争创一个数据库。具体步骤命令如下。

   sudo passwd postgres

    [sudo] password for ubuntu: 
    Enter new UNIX password: 
    Retype new UNIX password: 

   sudo su postgres -c psql

    postgres=# \password postgres
    Enter new password: 

  上面的postgres=#是键入命令的提示符。

   postgres=# CREATE ROLE "ttrss" WITH CREATEDB LOGIN;

  然后是修改ttrss的密码,与上面一样。

  我的弄法是这么的,先在ubuntu系统中争创一个ttrss用户,然后用这个用户登入至ubuntu,然后在命令行键入

  createdb ttrss

  1.5 配置nginx

  我的nginx配置文件为/etc/nginx/sites-available/default,我的default文件如下。

   ## for ttrss

    server {
           listen 127.0.0.1:181;
           root /var/ttrss;
           index index.html index.htm index.php;
           location ~ .*\.php(\/.*)*$ {
    fastcgi_split_path_info ^(.+?\.php)(/.*)$;
    if (!-f $document_root$fastcgi_script_name) {
    return 404;
    }
    fastcgi_pass unix:/run/php/php7.2-fpm.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
    include fastcgi_params;
               }
    }
    # Default server configuration
    #
    server {
    listen 443 ssl default_server;
    listen [::]:443 ssl default_server;
            root /var/typecho;
    index index.html index.htm index.php;
    server_name sanzhou.live;
    ssl on;
    ssl_certificate /etc/private/ttrss.crt;
    ssl_certificate_key /etc/private/ttrss.key;
    ssl_prefer_server_ciphers on;
    ssl_dhparam /etc/certs/dhparam.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ".........";
    keepalive_timeout 70;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    location / {
    try_files $uri $uri/ =404;
    }
            #for ttrss
    location ^~/ttrss/ {
    proxy_pass http://127.0.0.1:181;
    proxy_set_header  Host                $http_host;
    proxy_set_header  X-Real-IP           $remote_addr;
    proxy_set_header  X-Forwarded-Ssl     on;
    proxy_set_header  X-Forwarded-For     $proxy_add_x_forwarded_for;
    proxy_set_header  X-Forwarded-Proto   $scheme;
    proxy_set_header  X-Frame-Options     SAMEORIGIN;
    client_max_body_size        100m;
    client_body_buffer_size     128k;
    proxy_buffer_size           4k;
    proxy_buffers               4 32k;
    proxy_busy_buffers_size     64k;
    proxy_temp_file_write_size  64k;
    }
           #for typecho blog php
    location ~ .*\.php(\/.*)*$ {
    fastcgi_split_path_info ^(.+?\.php)(/.*)$;
    if (!-f $document_root$fastcgi_script_name) {
    return 404;
    }
    fastcgi_pass unix:/run/php/php7.2-fpm.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
    include fastcgi_params;
    }

  要留意3点,一是配置上面这些是我自己服务器对应的东西,需要对应更改,第二是上面的各个location次序不能乱,第三个是"location ^~/ttrss/"中的^~这两个符号不能省略,这个跟nginx中loation的执行次序关系巨大。后面两个留意点就是使我自己煮2个熬夜的成因。

  1.6 初始化ttrss

  访问sanzhou.live/ttrss,第一次访问会直接至ttrss的安装界面,根据提示键入postgresql的用户名、密码,创建的数据库等,然后点初始化就可以了。

  完了就可以登入了,访问sanzhou.live/ttrss,用户名键入admin,密码键入password,进去以后建议先更改密码。

  到这一步基本即使完成了ttrss的安装过程,剩下的就是自己遇见有意思的rss往旁边放就行了,也可以直接导出opml文件。

  1.7 让ttrss手动隔1小时抓取一次rss内容

   sudo crontab -u ttrss -e

    #插入以下字符,路径按照你的实际路径修改,作用是每小时刷新一次RSS。
    * */1 * * * php /home/wwwroot/ttrss.tstrs.me/update.php  --feeds  > /dev/null

  2.安装ttrss的插件2.1 安装mercury-parser-api

  按我的理解,这是一个可以将任何网上文章结构化抓取出来的一个网路服务,本来想直接在ubuntu下安装,发现各类错误,毫无头绪,后来就直接安装了docker,再用docker来安装运行这个网路服务了,整个命令如下:

   sudo apt-get install docker docker-compose

  安装完成后,通过curl 139.162.77.179:3000命令能返回下边一行,就算成功了,其中ip地址是我杜撰的自己服务器的IP地址。

  {"message":"Welcome to mercury-parser-api API! Endpoint: /parser"}

  测试了下,这个docker 运行3000端口虽然只有本机能访问,应该还是比较安全的。

  2.2 安装mercury_fulltext插件

  之所以要装这个插件,是我订阅的rss中,有个高手的rss只有上面一段短文typecho安卓客户端,不给整篇文章,安装这个后来就可以手动把整篇文章给搞至rss上来了。

  安装也简略,直接cd踏入ttrss文件夹的pluginstypecho安卓客户端,然后键入这个命令

   cd /var/ttrss/ttrss/plugins

  完成了后来从浏览器登陆sanzhou.live/ttrss,然后启用mercury_fulltext这个插件,完了在feeds的mercury_fulltext填上139.162.77.179:3000,然后对还要使用该插件的rss源右键步入编辑,然后插件选择使用mercury_fulltext就可以了。

  2.2 安装fever插件

  这个插件听说是为了在多个rss reader终端上能同步处理rss内容,意思就是在安卓看了某篇rss文章后,我再至windows下看的时侯,这篇文章早已手动标记为已读。

  这个也简略,按如下命令设置即可

   cd /var/ttrss/ttrss/plugins.local

  然后用浏览器登陆sanzhou.live/ttrss,然后启用fever插件,具体启用、配置密码等过程见这儿。

  然后从客户端登陆fever的时侯,记得登陆的地址是sanzhou.live/ttrss/plugins.local/fever

  3.安装客户端3.1 ubuntu客户端

  本来想安装安卓跟ubuntu两种客户端,然后发觉ubuntu下没找到支持fever的客户端,只找到了支持ttrss的客户端,叫liferea,安装也简略。

  sudo apt-get install liferea

  由于不支持fever,我也就没用。

  3.2安卓客户端

  安卓支持ttrss的客户端有好几款,试了feedme,还有Readably,最后猕猴桃还是ttrss自家监制的安卓客户端比较管用,直接在apkpure下载的。

  但有个告诫说是trial mode,7 days left,估计是试用期仅7天?7天之后呢,不知道了,先用着吧。

  不过若果是用这个客户端,其实倒不用安装fever插件了,它自己能和服务器同步。

  4.参考网站

最后修改:2020 年 12 月 22 日 07 : 12 PM
如果觉得我的文章对你有用,请随意赞赏