Ubuntu/Debian安装部署FreshRSS-non-docker方式
1、准备环境
安装相关依赖
sudo apt update
sudo apt install -y git curl wget nginx postgresql postgresql-contrib php-fpm php-cli php-pgsql php-curl php-gd php-intl php-json php-mbstring php-xml php-zip
2、配置数据库
使用postgresql作为后端数据库
连接数据库
sudo -u postgres psql
创建freshrss数据库,并设置相关权限
示例数据库名:freshrss,数据库用户名:backward
此处容易踩坑,权限不够会导致freshrss初始化时,postgresql中建表失败
CREATE DATABASE freshrss;
CREATE USER backward WITH PASSWORD 'your_password';
GRANT CONNECT ON DATABASE freshrss TO backward;
GRANT USAGE ON SCHEMA public TO backward;
GRANT CREATE ON SCHEMA public TO backward;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO backward;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT USAGE, SELECT ON SEQUENCES TO backward;
\q
3、下载并安装FreshRSS
下载FreshRSS
cd /var/www/
sudo git clone https://github.com/FreshRSS/FreshRSS.git
配置FreshRSS
cd FreshRSS
sudo cp config.default.php data/config.php
编辑配置文件
sudo vi data/config.php
修改一下内容
此处新增设定default_user为seventh,这个步骤不配置default_user会导致在网页上初始化时在最后一步失败。
'default_user' => 'seventh',
'db' => [
'type' => 'pgsql',
'host' => 'localhost',
'user' => 'backward',
'password' => 'your_password',
'base' => 'freshrss',
]
设置权限
创建新用户组freshrss
sudo groupadd freshrss
添加新用户到新用户组
ubuntu下www-data用户无法执行crontab,将ubuntu用户添加到freshrss用户组以获得权限
sudo usermod -aG freshrss ubuntu
设置FreshRSS目录权限
sudo chown -R www-data:freshrss /var/www/FreshRSS/
sudo chmod -R 755 /var/www/FreshRSS/
sudo chmod -R 775 /var/www/FreshRSS/data/
4、配置Nginx反向代理
创建nginx配置文件
sudo vi /etc/nginx/conf.d/freshrss.conf
server {
listen 80;
listen [::]:80;
server_name rss.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name rss.example.com;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EECDH+CHACHA20:EECDH+AES256:EECDH+AES128:!aNULL:!SHA1:!MD5:!EXPORT:!DES";
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
ssl_certificate /etc/ssl/example.com/fullchain.crt;
ssl_certificate_key /etc/ssl/example.com/private.key;
root /var/www/FreshRSS/p/;
index index.php index.html index.htm;
access_log /var/log/nginx/rss.access.log;
error_log /var/log/nginx/rss.error.log;
location ~ ^.+?\.php(/.*)?$ {
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
}
location / {
try_files $uri $uri/ index.php;
}
location ~ /\.ht {
deny all;
}
}
需要注意,nginx配置文件中php-fpm的版本,要与系统中安装的版本一致,否则会导致nginx服务运行失败,本配置中为php8.3-fpm。
查看php-fpm版本
php-fpm -v
5、配置域名证书
下载安装acme.sh
git clone https://github.com/acmesh-official/acme.sh.git
cd acme.sh
./acme.sh --install -m youremail@mail.com
配置 DNS API 凭证(以 Cloudflare 为例)
export CF_Token="你的Cloudflare_API_Token"
export CF_Account_ID="你的Cloudflare_账户ID"
申请证书
~/.acme.sh/acme.sh --issue --dns dns_cf -d "*.example.com"
安装证书到nginx证书目录(请将example.com改成你自己的域名)
创建证书目录
sudo mkdir -p /etc/ssl/example.com/
安装证书
acme.sh --install-cert -d *.example.com \
--key-file /etc/ssl/example.com/private.key \
--fullchain-file /etc/ssl/example.com/fullchain.crt \
--reloadcmd "service nginx reload"
启动配置
sudo nginx -t
sudo nginx -s reload
sudo systemctl restart php8.3-fpm
6、完成初始化
访问网页
https://rss.example.com
安装提示,完成初始化,默认用户为前面设置的default_user:seventh,其他的数据库相关设置与前面设置的也保持一致,即可完成初始化。
7、附加设置
设置定时任务来更新订阅,使用当前系统的登录用户而非root用户或www-data用户,如ubuntu。
编辑crontab:
crontab -e
添加以下内容(每20分钟更新一次)
freshrss官方文档中www-data用户无法执行crontab任务,此处选择把ubuntu用户添加到步骤3中创建的freshrss用户组来执行,经测试可以成功。
*/20 * * * * /usr/bin/php /var/www/FreshRSS/app/actualize_script.php > /tmp/FreshRSS.log 2>&1
性能优化
包括选择合适的php-fpm运行模式,配置合适的进程数,修改www.conf 文件
pm = dynamic
pm.max_children = 20
pm.start_servers = 5
pm.min_spare_servers = 3
pm.max_spare_servers = 10
pm.max_requests = 500
pm = static 静态模式,始终保持一个固定数量的子进程;
pm = dynamic 动态模式,启动时,会产生固定数量的子进程pm.start_servers,最大进程由pm.max_children控制;
pm = ondemand 按需模式,进程在有需求时才产生,持续闲置了pm.process_idle_timeout秒后就会被杀掉;
更多推荐


所有评论(0)