Качаем tt-rss с официального сайта https://tt-rss.org/
git clone https://tt-rss.org/git/tt-rss.git /path/to/tt-rss/www
Ставим nginx
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm yum install nginx
Конфиг nginx
server { listen 443 ssl http2; server_name rss.site.name; root /path/to/tt-rss/www/; index index.php index.html index.htm; access_log /path/to/tt-rss/log/ssl-access.log main; error_log /path/to/tt-rss/log/ssl-error.log; keepalive_timeout 60; ssl_certificate /etc/letsencrypt/live/rss.site.name/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/rss.site.name/privkey.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA'; ssl_dhparam /etc/ssl/certs/dhparam.pem; add_header Strict-Transport-Security 'max-age=604800'; # GZIP Compression gzip on; gzip_vary on; gzip_min_length 10240; gzip_proxied expired no-cache no-store private auth; gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml; gzip_disable "MSIE [1-6]\."; location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; #fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param DOCUMENT_ROOT /path/to/tt-rss/www/; fastcgi_param SCRIPT_FILENAME /path/to/tt-rss/www$fastcgi_script_name; fastcgi_param PATH_TRANSLATED /path/to/tt-rss/www$fastcgi_script_name; include fastcgi_params; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param HTTPS on; fastcgi_intercept_errors on; fastcgi_ignore_client_abort off; fastcgi_connect_timeout 60; fastcgi_send_timeout 180; fastcgi_read_timeout 180; fastcgi_buffer_size 128k; fastcgi_buffers 4 256k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; } location /cache { deny all; } location = /config.php { deny all; } } server { listen 443 ssl http2; server_name www.rss.site.name; rewrite ^ https://rss.site.name$request_uri? permanent; }
Обращаю внимание, что у меня nginx работает с php-fpm через сокет. Если у вас по tcp порту, то ставьте
fastcgi_pass 127.0.0.1:9000;
Создаем директрию для логов
mkdir /path/to/tt-rss/log
Выставляем права
chown -R nginx. /path/to/tt-rss
Ставим сертификат от LetsEncrypt
yum install certbot certbot certonly --standalone --preferred-challenges=http -d rss.site.name
Запускаем nginx
systemctl start nginx systemctl enable nginx
Ставим php-fpm
rpm -ivh http://rpms.remirepo.net/enterprise/remi-release-7.rpm yum install epel-release yum-utils yum-config-manager --enable remi-php71 yum install php71 yum install php-fpm php-pgsql systemctl start php-fpm systemctl enable php-fpm
Настроим php-fpm
yum install net-tools netstat -tulpn | grep php-fpm
Все в порядке, повис на порту 9000. Запустим его через unix сокет. Для этого открываем конфиг /etc/php-fpm.d/www.conf и комментируем строку:
vim /etc/php-fpm.d/www.conf
;listen = 127.0.0.1:9000
Вместо нее добавляем несколько других:
listen = /var/run/php-fpm/php-fpm.sock listen.mode = 0660 listen.owner = nginx listen.group = nginx
Заодно измените пользователя, от которого будет работать php-fpm. Вместо apache укажите nginx
user = nginx group = nginx
systemctl restart php-fpm
Открываем 80, 443 порты
firewall-cmd --add-service=http --permanent firewall-cmd --add-service=https --permanent firewall-cmd --reload
Уже можно заходить на rss.site.name и должно перекинуть в https://rss.site.name/install/
Осталось настроить postgresql
Подключим репозитрий
yum install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm
Установим и запустим postgresql 11
yum install postgresql11-server /usr/pgsql-11/bin/postgresql-11-setup initdb systemctl start postgresql-11 systemctl enable postgresql-11
Cоздаем базу и пользователя для tt-rss
sudo -u postgres psql postgres=# create database mydb; postgres=# create user myuser with encrypted password 'mypass'; postgres=# grant all privileges on database mydb to myuser;
Смотрим где наша база и конфиги к ней
postgres=# SHOW config_file; config_file ---------------------------------------- /var/lib/pgsql/11/data/postgresql.conf (1 row)
Выходим из postgresql
postgres=# \q
Правим файл /var/lib/pgsql/11/data/pg_hba.conf
Приводим его к виду
#local all all peer #host all all 127.0.0.1/32 ident #host all all ::1/128 ident local all all md5 host all all 127.0.0.1/32 md5 host all all ::1/128 md5
Перезапускаем postgresql
systemctl restart postgresql-11
Возвращаемся к странице настроек https://rss.site.name/install/
По идее ошибок быть не должно. Сохраняем предложенный config.php файл. Его можно будет потом поправить и настроить под себя.
Дефолтные логин и пароль: admin — password
Осталось настроить проверку новых постов. Можно запускать по крону или написать демона, как подсказывает wiki: https://git.tt-rss.org/fox/tt-rss/wiki/UpdatingFeeds
Выбираю демоном
vim /etc/systemd/system/tt-rss.service
[Unit] Description=ttrss_backend After=network.target mysql.service postgresql.service [Service] User=nginx ExecStart=/path/to/tt-rss/www/update_daemon2.php [Install] WantedBy=multi-user.target
systemctl start tt-rss.service systemctl enable tt-rss.service