Selfoss RSS Reader est un lecteur Web gratuit et open source auto-hébergé, polyvalent, diffusé en direct, mashup, lecteur de flux d'actualités (RSS / Atom) et agrégateur universel. Selfoss RSS Reader comprend l'importation OPML, une API JSON reposante et son système de plug-in ouvert vous permet d'étendre facilement la fonctionnalité par défaut en écrivant vos propres connecteurs de données personnalisés. Vous pouvez utiliser Selfoss pour diffuser en direct et collecter tous vos messages, tweets, podcasts et flux en un seul endroit central auquel vous pouvez facilement accéder depuis n'importe quel ordinateur de bureau ou appareil mobile.
Dans ce tutoriel, nous allons installer Selfoss RSS Reader 2.17 sur un Debian 9 LAMP VPS en utilisant le serveur web Apache, PHP 7.1 et une base de données MariaDB.
Conditions préalables
- Une instance de serveur Vultr Debian 9 propre avec accès SSH
Étape 1: ajouter un utilisateur Sudo
Nous allons commencer par ajouter un nouvel sudoutilisateur.
Tout d'abord, connectez-vous à votre serveur en tant que root:
ssh root@YOUR_VULTR_IP_ADDRESS
La sudocommande n'est pas installée par défaut dans l'instance de serveur Vultr Debain 9, nous allons donc d'abord installer sudo:
apt-get -y install sudo
Ajoutez maintenant un nouvel utilisateur appelé user1(ou votre nom d'utilisateur préféré):
adduser user1
Lorsque vous y êtes invité, entrez un mot de passe sécurisé et mémorable. Vous serez également invité à entrer votre "nom complet" et quelques autres détails, mais vous pouvez simplement les laisser vides en appuyant sur Enter.
Maintenant, vérifiez le /etc/sudoersfichier pour vous assurer que le sudoersgroupe est activé:
visudo
Recherchez une section comme celle-ci:
%sudo ALL=(ALL:ALL) ALL
Cette ligne nous indique que les utilisateurs membres du sudogroupe peuvent utiliser la sudocommande pour obtenir des rootprivilèges. Il ne sera pas commenté par défaut afin que vous puissiez simplement quitter le fichier.
Ensuite, nous devons ajouter user1au sudogroupe:
usermod -aG sudo user1
Nous pouvons vérifier l' user1appartenance au groupe et vérifier que la usermodcommande a fonctionné avec la groupscommande:
groups user1
Utilisez maintenant la sucommande pour basculer vers le nouveau user1compte utilisateur sudo :
su - user1
L'invite de commande sera mise à jour pour indiquer que vous êtes maintenant connecté au user1compte. Vous pouvez le vérifier avec la whoamicommande:
whoami
Redémarrez maintenant le sshdservice pour vous connecter via sshle nouveau compte utilisateur sudo non root que vous venez de créer:
sudo systemctl restart sshd
Quittez le user1compte:
exit
Quittez le rootcompte (qui déconnectera votre sshsession):
exit
Vous pouvez maintenant sshaccéder à l'instance de serveur à partir de votre hôte local en utilisant le nouveau user1compte utilisateur sudo non root :
ssh user1@YOUR_VULTR_IP_ADDRESS
Si vous souhaitez exécuter sudo sans avoir à taper un mot de passe à chaque fois, ouvrez à /etc/sudoersnouveau le fichier en utilisant visudo:
sudo visudo
Modifiez la section du sudogroupe pour qu'elle ressemble à ceci:
%sudo ALL=(ALL) NOPASSWD: ALL
Remarque: la désactivation de l'exigence de mot de passe pour l'utilisateur sudo n'est pas une pratique recommandée, mais elle est incluse ici car elle peut rendre la configuration du serveur beaucoup plus pratique et moins frustrante, en particulier pendant les sessions d'administration de systèmes plus longues. Si vous êtes préoccupé par les implications de sécurité, vous pouvez toujours rétablir la modification de configuration à l'original après avoir terminé vos tâches d'administration.
Chaque fois que vous souhaitez vous connecter au rootcompte d'utilisateur à partir du sudocompte d'utilisateur, vous pouvez utiliser l'une des commandes suivantes:
sudo -i
sudo su -
Vous pouvez quitter le rootcompte et revenir à votre sudocompte utilisateur à tout moment:
exit
Étape 2: Mettre à jour le système Debian 9
Avant d'installer des paquets sur l'instance du serveur Debian, nous mettrons d'abord à jour le système.
Assurez-vous que vous êtes connecté au serveur à l'aide d'un utilisateur sudo non root et exécutez les commandes suivantes:
sudo apt-get update
sudo apt-get -y upgrade
Étape 3: installer Apache Web Server
Installez le serveur Web Apache:
sudo apt-get -y install apache2
Utilisez ensuite la systemctlcommande pour démarrer et activer Apache pour qu'il s'exécute automatiquement au démarrage:
sudo systemctl enable apache2
sudo systemctl start apache2
Vérifiez votre fichier de configuration de site par défaut Apache pour vous assurer que la DocumentRootdirective pointe vers le bon répertoire:
sudo vi /etc/apache2/sites-enabled/000-default.conf
L' DocumentRootoption de configuration ressemblera à ceci:
DocumentRoot "/var/www/html"
Nous devons maintenant activer le mod_rewritemodule Apache, assurez-vous donc que votre fichier de configuration de site par défaut Apache est toujours ouvert et ajoutez les Directorydirectives Apache suivantes juste avant la </VirtualHost>balise de fermeture , afin que la fin de votre fichier de configuration ressemble à ceci:
<Directory /var/www/html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
La directive la plus importante présentée ci-dessus est AllowOverride All.
Maintenant, enregistrez et quittez le fichier, et activez les modules mod_rewrite, mod_authz_coreet mod_headersApache:
sudo a2enmod rewrite authz_core headers
Nous redémarrerons Apache à la fin de ce tutoriel, mais redémarrer régulièrement Apache pendant l'installation et la configuration est certainement une bonne habitude, alors faisons-le maintenant:
sudo systemctl restart apache2
Étape 4: installez PHP 7.0
Nous pouvons maintenant installer PHP 7.0 avec tous les modules PHP nécessaires requis par Selfoss RSS Reader:
sudo apt-get -y install php php-gd php-mbstring php-common php-mysql php-imagick php-xml libapache2-mod-php php-curl php-tidy php-zip
Étape 5: installer le serveur MariaDB (MySQL)
Debian 9 utilise par défaut le serveur de base de données MariaDB, qui est un remplacement amélioré, entièrement open source, développé par la communauté, pour le serveur MySQL.
Installez le serveur de base de données MariaDB:
sudo apt-get -y install mariadb-server
Démarrez et activez le serveur MariaDB pour qu'il s'exécute automatiquement au démarrage:
sudo systemctl enable mariadb
sudo systemctl start mariadb
Sécurisez l'installation de votre serveur MariaDB:
sudo mysql_secure_installation
Le rootmot de passe sera vide, donc appuyez simplement sur Entrée lorsque vous êtes invité à entrer le rootmot de passe.
Lorsque vous êtes invité à créer un utilisateur MariaDB / MySQL root, sélectionnez "Y" (pour oui), puis entrez un rootmot de passe sécurisé . Répondez simplement "Y" à toutes les autres questions oui / non car les suggestions par défaut sont les options les plus sûres.
Connectez-vous au shell MariaDB en tant rootqu'utilisateur MariaDB en exécutant la commande suivante:
sudo mariadb -u root -p
Pour accéder à l'invite de commande MariaDB, entrez simplement le rootmot de passe MariaDB lorsque vous y êtes invité.
Exécutez les requêtes suivantes pour créer une base de données MariaDB et un utilisateur de base de données pour 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;
Vous pouvez remplacer le nom selfoss_dbet le nom selfoss_userd' utilisateur de la base de données par quelque chose de plus à votre goût, si vous préférez. Assurez-vous également de remplacer "UltraSecurePassword" par un mot de passe réellement sécurisé.
Remplacez votre répertoire de travail actuel par le répertoire Web par défaut:
cd /var/www/html/
Si vous obtenez un message d'erreur indiquant quelque chose comme cela, 'No such file or directory'essayez la commande suivante:
cd /var/www/ ; sudo mkdir html ; cd html
Votre répertoire de travail sera désormais: /var/www/html/. Vous pouvez vérifier cela avec la commande pwd(imprimer le répertoire de travail):
pwd
Maintenant, utilisez wgetpour télécharger le package d'installation de Selfoss RSS Reader:
sudo wget --content-disposition https://github.com/SSilence/selfoss/archive/2.17.zip
Remarque: vous devez absolument rechercher la version la plus récente en visitant la page de téléchargement de Selfoss RSS Reader .
Répertoriez le répertoire actuel pour vérifier que vous avez correctement téléchargé le fichier:
ls -la
Supprimer index.html:
sudo rm index.html
Installons rapidement unzipafin que nous puissions décompresser le fichier:
sudo apt-get -y install unzip
Décompressez maintenant l'archive zip:
sudo unzip selfoss-2.17.zip
Déplacez tous les fichiers d'installation dans le répertoire racine Web:
sudo mv -v selfoss-2.17/* selfoss-2.17/.* /var/www/html 2>/dev/null
Modifiez la propriété des fichiers Web pour éviter tout problème d'autorisation:
sudo chown -R www-data:www-data * ./
Redémarrez Apache à nouveau:
sudo systemctl restart apache2
Étape 8: installer et exécuter Composer
Selfoss RSS Reader nous oblige à utiliser composerpour télécharger certains plugins alors installons composer:
sudo apt-get -y install composer
Assurez-vous maintenant que vous êtes dans le répertoire webroot:
cd /var/www/html
Exécutez composer à l'aide de l' www-datautilisateur:
sudo -u www-data composer install
Vous verrez des messages d'avertissement indiquant que vous composerne pouvez pas écrire dans le cache, mais ne vous inquiétez pas trop à ce sujet car tout s'installera toujours très bien.
Nous sommes maintenant prêts à passer à la dernière étape.
-
Nous devons d'abord mettre à jour le fichier de configuration Selfoss RSS Reader config.iniavec les paramètres de base de données corrects, assurez-vous donc que vous êtes toujours dans le répertoire webroot et copiez-le defaults.inidans config.ini:
sudo cp -iv defaults.ini config.ini
-
Ensuite, ouvrez le config.inifichier de configuration et ajoutez les valeurs de base de données suivantes:
[globals]
db_type=mysql
db_host=localhost
db_database=selfoss_db
db_username=selfoss_user
db_password=UltraSecurePassword
db_port=3306
-
Nous devons maintenant ajouter un hachage de mot de passe à config.ini, mais nous devons d'abord le générer, alors visitez l'URL suivante dans votre navigateur:
http://YOUR_VULTR_IP_ADDRESS/password
Saisissez ensuite le mot de passe souhaité dans le Passwordchamp et cliquez sur Generate.
Copiez simplement la valeur de hachage résultante dans l'option de mot de passe dans le config.inifichier pour que la section de mot de passe ressemble maintenant à ceci:
username=admin
password=b729a37c34ff9648c33d67de3b289b58b7486dd71236343a6c2c275c2cc0477bd1d254eb92248bfa753169547d4bd2e81c2c9e460ba5bba822af1e87722dd12a
salt=<long string of random chracters>
Remarque: Le hachage de votre mot de passe sera évidemment différent du hachage montré ci-dessus et vous êtes libre de choisir un nom d'utilisateur différent.
-
Supprimez toutes les autres options non modifiées du config.inifichier afin que votre fichier de configuration complet ressemble à ceci:
[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>
Remarque: Si vous souhaitez modifier l'une des defaults.inioptions, vous pouvez simplement les ajouter à la liste des options ci-dessus.
Une fois la modification du fichier de configuration terminée, vous pouvez enregistrer et quitter le fichier.
-
Vous pouvez maintenant vous connecter à Selfoss RSS Reader en visitant la page d'accueil et en entrant votre nom d'utilisateur et votre mot de passe:
http://YOUR_VULTR_IP_ADDRESS/
-
Si vous voulez que le lecteur mette à jour automatiquement vos flux (et vous le faites presque certainement), vous devrez modifier votre crontab:
sudo crontab -e
Ajoutez la ligne suivante pour actualiser vos flux toutes les heures:
0 * * * * www-data cd /var/www/html && php cliupdate.php
Si vous n'avez pas encore configuré vos paramètres DNS Vultr, vous pouvez le faire à l'aide du panneau de configuration DNS Vultr.
Il est également conseillé de configurer votre site pour utiliser SSL car la plupart des navigateurs modernes avertissent lorsque les sites n'ont pas activé SSL et que les certificats SSL sont désormais disponibles gratuitement.
Dans tous les cas, vous êtes maintenant libre de commencer à ajouter vos flux et à personnaliser davantage votre lecteur, si vous le souhaitez.