How to Install Selfoss RSS Reader on a CentOS 7 LAMP VPS

Selfoss RSS Reader is a free and open source self-hosted web-based multipurpose, live stream, mashup, news feed (RSS/Atom) reader and universal aggregator. Selfoss RSS Reader features OPML import, a restful JSON API, and its open plug-in system allows you to easily extend the default functionality by writing your own custom data connectors. You can use Selfoss to live stream and collect all of your posts, tweets, podcasts, and feeds in one central place that you can easily access from any desktop or mobile device.

In this tutorial, we are going to install Selfoss RSS Reader 2.17 on a CentOS 7 LAMP VPS using Apache web server, PHP 7.1, and a MariaDB database.

Prerequisites

  • A clean Vultr CentOS 7 server instance with SSH access

Step 1: Add a Sudo User

We will start by adding a new sudo user.

First, log into your server as root:

ssh root@YOUR_VULTR_IP_ADDRESS

Add a new user called user1 (or your preferred username):

useradd user1

Next, set the password for the user1 user:

passwd user1

When prompted, enter a secure and memorable password.

Now check the /etc/sudoers file to make sure that the sudoers group is enabled:

visudo

Look for a section like this:

%wheel        ALL=(ALL)       ALL

This line tells us that users who are members of the wheel group can use the sudo command to gain root privileges. It will be uncommented by default so you can simply exit the file.

Next we need to add user1 to the wheel group:

usermod -aG wheel user1

We can verify the user1 group membership and check that the usermod command worked with the groups command:

groups user1

Now use the su command to switch to the new sudo user user1 account:

su - user1

The command prompt will update to indicate that you are now logged into the user1 account. You can verify this with the whoami command:

whoami

Now restart the sshd service so that you can login via ssh with the new non-root sudo user account you have just created:

sudo systemctl restart sshd

Exit the user1 account:

exit

Exit the root account (which will disconnect your ssh session):

exit

You can now ssh into the server instance from your local host using the new non-root sudo user user1 account:

ssh user1@YOUR_VULTR_IP_ADDRESS

If you want to execute sudo without having to type a password every time, then open the /etc/sudoers file again, using visudo:

sudo visudo

Edit the section for the wheel group so that it looks like this:

%wheel        ALL=(ALL)       NOPASSWD: ALL

Please note: Disabling the password requirement for the sudo user is not a recommended practice, but it is included here as it can make server configuration much more convenient and less frustrating, especially during longer systems administration sessions. If you are concerned about the security implications, you can always revert the configuration change to the original after you finish your administration tasks.

Whenever you want to log into the root user account from within the sudo user account, you can use one of the following commands:

sudo -i
sudo su -

You can exit the root account and return back to your sudo user account at any time:

exit

Step 2: Update CentOS 7 System

Before installing any packages on the CentOS server instance, we will first update the system.

Make sure you are logged in to the server using a non-root sudo user and run the following command:

sudo yum -y update

Step 3: Install Apache Web Server

Install the Apache web server:

sudo yum -y install httpd

Then use the systemctl command to start and enable Apache to execute automatically at boot time:

sudo systemctl enable httpd
sudo systemctl start httpd

Check your Apache configuration file to ensure that the DocumentRoot directive points to the correct directory:

sudo vi /etc/httpd/conf/httpd.conf 

The DocumentRoot configuration option will look like this:

DocumentRoot "/var/www/html"

Now, let's make sure that the mod_rewrite Apache module is loaded. We can do this by searching the Apache base modules configuration file for the term "mod_rewrite".

Open the file:

sudo vi /etc/httpd/conf.modules.d/00-base.conf

Search for the term mod_rewrite.

If the mod_rewrite Apache module is loaded, you will find a configuration line looking like this:

LoadModule rewrite_module modules/mod_rewrite.so

If the above line starts with a semi-colon, you will need to remove the semi-colon to uncomment the line and load the module. This, of course, applies to any other required Apache modules too.

We now need to edit Apache's default configuration file so that mod_rewrite will work correctly with Selfoss RSS Reader.

Open the file:

sudo vi /etc/httpd/conf/httpd.conf

Then find the section that starts with <Directory "/var/www/html"> and change AllowOverride none to AllowOverride All. The end result (with all comments removed) will look something like this:

<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Now save and close the Apache configuration file.

We will restart Apache at the end of this tutorial, but restarting Apache regularly during installation and configuration is certainly a good habit, so let's do it now:

sudo systemctl restart httpd

Step 4: Open Web Firewall Ports

We now need to open the default HTTP and HTTPS ports as they will be blocked by firewalld by default.

Open the firewall ports:

sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp

Reload the firewall to apply the changes:

sudo firewall-cmd --reload

You will see the word success displayed in your terminal after each successful firewall configuration command.

We can quickly verify that the Apache HTTP port is open by visiting the IP address or domain of the server instance in a browser:

http://YOUR_VULTR_IP_ADDRESS/

You will see the default Apache web page in your browser.

Step 5: Disable SELinux (if enabled)

SELinux stands for "Security Enhanced Linux". It is a security enhancement to Linux which allows users and administrators more control over access control. It is disabled by default on Vultr CentOS 7 instances, but we will cover the steps to disable it, just in case you are not starting from a clean install and it was previously enabled.

To avoid file permission problems with Selfoss RSS Reader we need to ensure that SELinux is disabled.

First, let's check whether SELinux is enabled or disabled with the sestatus command:

sudo sestatus

If you see something like: SELinux status: disabled then it is definitely disabled and you can skip straight to Step 6. If you see any other message, then you will need to complete this section.

Open the SELinux configuration file with your favourite terminal editor:

sudo vi /etc/selinux/config

Change SELINUX=enforcing to SELINUX=disabled and then save the file.

To apply the configuration change, SELinux requires a server reboot, so you can either restart the server using the Vultr control panel or you can simply use the shutdown command:

sudo shutdown -r now

When the server reboots, your SSH session will get disconnected and you may see a message informing you about a 'broken pipe' or 'Connection closed by remote host'. This is nothing to worry about, simply wait for 20 seconds or so and then SSH back in again (with your own username and domain):

ssh user1@YOUR_DOMAIN

Or (with your own username and IP address):

ssh user1@YOUR_VULTR_IP_ADDRESS

Once you have logged back in, you should check the status of SELinux again with the sestatus command to make sure it is properly disabled:

sudo sestatus

You should see a message saying SELinux status: disabled. If you see a message saying SELinux status: enabled (or something similar) you will need to repeat the above steps and ensure that you properly restart your server.

Step 6: Install PHP 7.1

CentOS 7 requires us to add an external repo in order to install PHP 7.1, so run the following command:

sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

We can now install PHP 7.1 along with all of the necessary PHP modules required by Selfoss RSS Reader:

sudo yum -y install php71w php71w-gd php71w-mbstring php71w-mysql php71w-xml php71w-common php71w-pdo php71w-mysqlnd

Step 7: Install MariaDB (MySQL) Server

CentOS 7 defaults to using MariaDB database server, which is an enhanced, fully open source, community developed, drop-in replacement for MySQL server.

Install MariaDB database server:

sudo yum -y install mariadb-server

Start and enable MariaDB server to execute automatically at boot time:

sudo systemctl enable mariadb
sudo systemctl start mariadb    

Secure your MariaDB server installation:

sudo mysql_secure_installation

The root password will be blank, so simply hit enter when prompted for the root password.

When prompted to create a MariaDB/MySQL root user, select "Y" (for yes) and then enter a secure root password. Simply answer "Y" to all of the other yes/no questions as the default suggestions are the most secure options.

Step 8: Create Database for Selfoss RSS Reader

Log into the MariaDB shell as the MariaDB root user by running the following command:

sudo mysql -u root -p

To access the MariaDB command prompt, simply enter the MariaDB root password when prompted.

Run the following queries to create a MariaDB database and database user for Selfoss RSS Reader:

CREATE DATABASE selfoss_db CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'selfoss_user'@'localhost' IDENTIFIED BY 'UltraSecurePassword';
GRANT ALL PRIVILEGES ON selfoss_db.* TO 'selfoss_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

You can replace the database name selfoss_db and username selfoss_user with something more to your liking, if you prefer. (Please note that the default maximum length for usernames in MariaDB on CentOS 7 is 16 characters). Also, make sure that you replace "UltraSecurePassword" with an actually secure password.

Step 9: Install Selfoss RSS Reader Files

Change your current working directory to the default web directory:

cd /var/www/html/

If you get an error message saying something like 'No such file or directory' then try the following command:

cd /var/www/ ; sudo mkdir html ; cd html

Your current working directory will now be: /var/www/html/. You can check this with the pwd (print working directory) command:

pwd

Now use wget to download the Selfoss RSS Reader installation package:

sudo wget --content-disposition https://github.com/SSilence/selfoss/archive/2.17.zip

Please note: You should definitely check for the most recent version by visiting the Selfoss RSS Reader download page.

List the current directory to check that you have successfully downloaded the file:

ls -la

Let's quickly install unzip so we can unzip the file:

sudo yum -y install unzip

Now uncompress the zip archive:

sudo unzip selfoss-2.17.zip

Move all of the installation files to the web root directory:

sudo mv -v selfoss-2.17/* selfoss-2.17/.* /var/www/html 2>/dev/null

Change ownership of the web files to avoid any permissions problems:

sudo chown -R apache:apache * ./

Restart Apache again:

sudo systemctl restart httpd

Step 10: Install and Run Composer

Selfoss RSS Reader requires us to use composer to download some plugins so let's install composer:

sudo yum -y install composer

Now make sure you are in the webroot directory:

cd /var/www/html

Run composer using the apache user:

sudo -u apache composer install

You will see some warning messages from composer about not being able to write to the cache, but don't worry too much about that as everything will still install just fine.

We're now ready to move on to the final step.

Step 11: Complete Selfoss RSS Reader Installation

  1. We first need to update the Selfoss RSS Reader configuration file config.ini with the correct database settings so make sure you are still in the webroot directory and copy defaults.ini to config.ini:

    sudo cp -iv defaults.ini config.ini
    
  2. Next, open the config.ini configuration file and add the following database values:

    [globals]
    db_type=mysql
    db_host=localhost
    db_database=selfoss_db
    db_username=selfoss_user
    db_password=UltraSecurePassword
    db_port=3306
    
  3. We now need to add a password hash to config.ini, but first we need to generate it, so visit the following URL in your browser:

    http://YOUR_VULTR_IP_ADDRESS/password
    

    Then enter your desired password into the Password field and click on Generate.

    Simply copy the resulting hash value to the password option in the config.ini file so the password section now looks something like this:

    username=admin
    password=b729a37c34ff9648c33d67de3b289b58b7486dd71236343a6c2c275c2cc0477bd1d254eb92248bfa753169547d4bd2e81c2c9e460ba5bba822af1e87722dd12a
    salt=<long string of random chracters>
    

    Note: Your password hash will obviously be different to the hash shown above and you are free to choose a different username.

  4. Remove all of the other unedited options from the config.ini file so your complete configuration file looks similar to this:

    [globals]
    db_type=mysql
    db_host=localhost
    db_database=db1
    db_username=u1
    db_password=usecpass1
    db_port=3306
    username=admin
    password=b729a37c34ff9648c33d67de3b289b58b7486dd71236343a6c2c275c2cc0477bd1d254eb92248bfa753169547d4bd2e81c2c9e460ba5bba822af1e87722dd12a
    salt=<long string of random chracters>
    

    Note: If you want to change any of the defaults.ini options, you can simply add them to the list of options above.

    When you have finished editing the configuration file, you can save and exit the file.

  5. You can now login to Selfoss RSS Reader by visiting the home page and entering your username and password:

     http://YOUR_VULTR_IP_ADDRESS/
    
  6. If you want the reader to auto-update your feeds (and you almost certainly do), you will need to edit your crontab:

    sudo crontab -e
    

    Add the following line to refresh your feeds hourly:

    0 * * * * apache cd /var/www/html && php cliupdate.php
    

If you haven't yet configured your Vultr DNS settings, you can do so using the Vultr DNS control panel.

It's also advisable to configure your site to use SSL as most modern browsers will give warnings when sites do not have SSL enabled and SSL certificates are now available for free.

In any case, you are now free to start adding your feeds and further customizing your reader, if you desire.


Instal·leu Plesk a CentOS 7

Instal·leu Plesk a CentOS 7

Utilitzeu un sistema diferent? Plesk és un tauler de control d'amfitrió web propietari que permet als usuaris administrar els seus llocs web personals i/o de clients, bases de dades

Com instal·lar Squid Proxy a CentOS

Com instal·lar Squid Proxy a CentOS

Squid és un popular programa Linux gratuït que us permet crear un servidor intermediari web de reenviament. En aquesta guia, veureu com instal·lar Squid a CentOS per convertir-vos-hi

Com instal·lar Lighttpd (LLMP Stack) a CentOS 6

Com instal·lar Lighttpd (LLMP Stack) a CentOS 6

Introducció Lighttpd és una bifurcació d'Apache destinada a ser molt menys intensiu en recursos. És lleuger, d'aquí el seu nom, i és bastant senzill d'utilitzar. Instal·lant

Configuració de xarxes estàtiques i IPv6 a CentOS 7

Configuració de xarxes estàtiques i IPv6 a CentOS 7

Recentment, VULTR ha fet canvis al seu extrem, i ara tot hauria de funcionar bé des de la caixa amb NetworkManager habilitat. Si voleu desactivar

Modificació dIcinga2 per utilitzar el model mestre/client a CentOS 6 o CentOS 7

Modificació dIcinga2 per utilitzar el model mestre/client a CentOS 6 o CentOS 7

Icinga2 és un sistema de supervisió potent i, quan s'utilitza en un model de client mestre, pot substituir la necessitat de controls de monitoratge basats en NRPE. El mestre-client

Com instal·lar Apache Cassandra 3.11.x a CentOS 7

Com instal·lar Apache Cassandra 3.11.x a CentOS 7

Utilitzeu un sistema diferent? Apache Cassandra és un sistema de gestió de bases de dades NoSQL gratuït i de codi obert dissenyat per proporcionar escalabilitat, alta

Com instal·lar Microweber a CentOS 7

Com instal·lar Microweber a CentOS 7

Utilitzeu un sistema diferent? Microweber és un CMS d'arrossegar i deixar anar de codi obert i una botiga en línia. El codi font de Microweber està allotjat a GitHub. Aquesta guia us mostrarà

Com instal·lar Vanilla Forum a CentOS 7

Com instal·lar Vanilla Forum a CentOS 7

Utilitzeu un sistema diferent? Vanilla Forum és una aplicació de fòrum de codi obert escrita en PHP. És totalment personalitzable, fàcil d'utilitzar i admet externa

Com instal·lar Mattermost 4.1 a CentOS 7

Com instal·lar Mattermost 4.1 a CentOS 7

Utilitzeu un sistema diferent? Mattermost és una alternativa autoallotjada de codi obert al servei de missatgeria Slack SAAS. En altres paraules, amb Mattermost, ca

Creació duna xarxa de servidors de Minecraft amb BungeeCord a Debian 8, Debian 9 o CentOS 7

Creació duna xarxa de servidors de Minecraft amb BungeeCord a Debian 8, Debian 9 o CentOS 7

Què necessitareu Un Vultr VPS amb almenys 1 GB de RAM. Accés SSH (amb privilegis d'arrel/administrador). Pas 1: instal·lació de BungeeCord Primer de tot

Permet xifrar a Plesk

Permet xifrar a Plesk

El tauler de control de Plesk inclou una integració molt agradable per Lets Encrypt. Lets Encrypt és un dels únics proveïdors SSL que ofereix certificats complets

Permet xifrar a cPanel

Permet xifrar a cPanel

Lets Encrypt és una autoritat de certificació dedicada a proporcionar certificats SSL de manera gratuïta. cPanel ha creat una integració perfecta perquè tu i el teu client

Com instal·lar Concrete5 a CentOS 7

Com instal·lar Concrete5 a CentOS 7

Utilitzeu un sistema diferent? Concrete5 és un CMS de codi obert que ofereix moltes característiques distintives i útils per ajudar els editors a produir continguts fàcilment i

Com instal·lar el tauler de revisió a CentOS 7

Com instal·lar el tauler de revisió a CentOS 7

Utilitzeu un sistema diferent? Review Board és una eina gratuïta i de codi obert per revisar el codi font, la documentació, les imatges i molts més. És un programari basat en web

Configura lautenticació HTTP amb Nginx a CentOS 7

Configura lautenticació HTTP amb Nginx a CentOS 7

En aquesta guia, aprendràs a configurar l'autenticació HTTP per a un servidor web Nginx que s'executa a CentOS 7. Requisits Per començar, necessitareu el

Com instal·lar GoAccess a CentOS 7

Com instal·lar GoAccess a CentOS 7

Utilitzeu un sistema diferent? GoAccess és un analitzador de registres web de codi obert. Podeu utilitzar-lo per analitzar els registres en temps real al terminal o

Com instal·lar YOURLS a CentOS 7

Com instal·lar YOURLS a CentOS 7

YOURLS (Your Own URL Shortener) és una aplicació d'anàlisi de dades i escurçament d'URL de codi obert. En aquest article, tractarem el procés d'instal·lació

Com instal·lar i configurar ArangoDB a CentOS 7

Com instal·lar i configurar ArangoDB a CentOS 7

Utilitzeu un sistema diferent? Introducció ArangoDB és una base de dades NoSQL de codi obert amb un model de dades flexible per a documents, gràfics i claus-valors. És

Utilitzant Etckeeper per al control de versions de /etc

Utilitzant Etckeeper per al control de versions de /etc

Introducció El directori /etc/ té un paper crític en el funcionament d'un sistema Linux. La raó d'això és perquè gairebé totes les configuracions del sistema

Per què hauríeu dutilitzar SSHFS? Com muntar un sistema de fitxers remot amb SSHFS a CentOS 6

Per què hauríeu dutilitzar SSHFS? Com muntar un sistema de fitxers remot amb SSHFS a CentOS 6

Molts administradors de sistemes gestionen grans quantitats de servidors. Quan s'hagi d'accedir als fitxers a través de diferents servidors, inicieu sessió a cadascun individualment ca

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

La Intel·ligència Artificial no està en el futur, és aquí mateix en el present. En aquest bloc Llegiu com les aplicacions d'Intel·ligència Artificial han afectat diversos sectors.

Atacs DDOS: una breu visió general

Atacs DDOS: una breu visió general

També ets víctima d'atacs DDOS i estàs confós sobre els mètodes de prevenció? Llegiu aquest article per resoldre les vostres consultes.

Us heu preguntat mai com guanyen diners els pirates informàtics?

Us heu preguntat mai com guanyen diners els pirates informàtics?

Potser haureu sentit que els pirates informàtics guanyen molts diners, però us heu preguntat mai com guanyen aquest tipus de diners? anem a discutir.

Invents revolucionaris de Google que us facilitaran la vida.

Invents revolucionaris de Google que us facilitaran la vida.

Vols veure els invents revolucionaris de Google i com aquests invents van canviar la vida de tots els éssers humans actuals? A continuació, llegiu al bloc per veure els invents de Google.

Divendres essencial: què va passar amb els cotxes impulsats per IA?

Divendres essencial: què va passar amb els cotxes impulsats per IA?

El concepte de cotxes autònoms per sortir a les carreteres amb l'ajuda de la intel·ligència artificial és un somni que tenim des de fa temps. Però malgrat les diverses promeses, no es veuen enlloc. Llegeix aquest blog per saber-ne més...

Singularitat tecnològica: un futur llunyà de la civilització humana?

Singularitat tecnològica: un futur llunyà de la civilització humana?

A mesura que la ciència evoluciona a un ritme ràpid, fent-se càrrec de molts dels nostres esforços, també augmenten els riscos de sotmetre'ns a una singularitat inexplicable. Llegeix, què pot significar per a nosaltres la singularitat.

Evolució de lemmagatzematge de dades – Infografia

Evolució de lemmagatzematge de dades – Infografia

Els mètodes d'emmagatzematge de les dades que han anat evolucionant poden ser des del naixement de les dades. Aquest bloc tracta l'evolució de l'emmagatzematge de dades a partir d'una infografia.

Funcionalitats de les capes darquitectura de referència de Big Data

Funcionalitats de les capes darquitectura de referència de Big Data

Llegeix el blog per conèixer de la manera més senzilla les diferents capes de l'Arquitectura Big Data i les seves funcionalitats.

6 avantatges sorprenents de tenir dispositius domèstics intel·ligents a les nostres vides

6 avantatges sorprenents de tenir dispositius domèstics intel·ligents a les nostres vides

En aquest món digital, els dispositius domèstics intel·ligents s'han convertit en una part crucial de les vides. A continuació, es mostren alguns avantatges sorprenents dels dispositius domèstics intel·ligents sobre com fan que la nostra vida valgui la pena i sigui més senzilla.

Lactualització del suplement de macOS Catalina 10.15.4 està causant més problemes que no pas solucions

Lactualització del suplement de macOS Catalina 10.15.4 està causant més problemes que no pas solucions

Recentment, Apple va llançar macOS Catalina 10.15.4, una actualització de suplements per solucionar problemes, però sembla que l'actualització està causant més problemes que provoquen el bloqueig de les màquines Mac. Llegiu aquest article per obtenir més informació