GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer le raccourcisseur d'URL Shlink avec Nginx sur Ubuntu 20.04

Shlink est un raccourcisseur d'URL auto-hébergé gratuit et open source écrit en PHP qui fournit à la fois une interface REST et une interface CLI pour interagir avec lui afin de générer et de gérer des URL courtes. L'une des principales fonctionnalités et le raccourcissement d'URL est que vous pouvez suivre toutes les visites de ces URL générées telles que l'emplacement, le navigateur, le référent et bien plus encore. De plus, un client Web officiel de Shlink utilise l'API REST de Shlink et fournit à l'utilisateur une interface Web facultative.

A la fin du guide, vous saurez comment installer Shlink URL Shortner sur votre serveur Ubuntu 20.04 LTS Focal Fossa en utilisant Nginx . Le même principe fonctionnera pour la nouvelle version du serveur Ubuntu 21.04 (Hirsute Hippo).

Pré-requis

  • OS recommandé : Ubuntu 20.04 – facultatif (Ubuntu 21.04 et Linux Mint 20).
  • Compte utilisateur : Un compte utilisateur avec un accès sudo ou root.
  • Packages requis : mariadb php7.4 ou php8.0 installé et configuré.
  • Forfaits supplémentaires : curl wget décompresser.

Vérifiez et mettez à niveau votre système d'exploitation Ubuntu.

sudo apt update && sudo apt upgrade -y

Ensuite, installez les packages requis pour ce guide :

sudo apt install curl wget unzip

Télécharger l'archive Shlink

La première étape consiste à visiter la page Shlink Github et à consulter la dernière version stable. Au moment de ce guide, la version stable actuelle est 2.7.1. Cependant, cela changera à l'avenir. Shlink est disponible en 3 versions pour PHP 7.4, PHP 8.0 et le code source.

Pour télécharger Shlink, 2.7.1, exécutez la commande suivante :

PHP 7.4 :

wget https://github.com/shlinkio/shlink/releases/download/v2.7.1/shlink2.7.1_php7.4_dist.zip

PHP 8.0 :

wget https://github.com/shlinkio/shlink/releases/download/v2.7.1/shlink2.7.1_php8.0_dist.zip

Code source :

wget https://github.com/shlinkio/shlink/archive/refs/tags/v2.7.1.zip

À des fins de guide, il suivra l'exemple de téléchargement PHP 7.4. L'étape suivante consiste à utiliser le (décompresser) commande pour extraire l'archive sur votre (/var/www/html) répertoire.

sudo unzip shlink2.7.1_php7.4_dist.zip -d /var/www/html

Vous devez renommer le dossier extrait pour vous faciliter la vie en exécutant la commande suivante :

sudo mv /var/www/html/shlink2.7.1_php7.4_dist/ /var/www/html/shlink

Avant de continuer, il est conseillé de définir les autorisations du répertoire sur (www-data) utilisateur tel qu'il est actuellement défini comme (root) . Pour ce faire, tapez et saisissez le (chown) suivant commande :

sudo chown -R www-data:www-data /var/www/html/shlink/

Créer une nouvelle base de données MariaDB et un utilisateur pour Shlink

L'étape suivante consiste à créer une nouvelle base de données et un nouvel utilisateur dédié avec uniquement l'autorisation d'accéder à cette base de données. Il n'est pas recommandé d'utiliser root ou le même compte utilisateur sur plusieurs bases de données si l'une est compromise.

Le guide a installé MariaDB et est familiarisé avec la terminologie ci-dessous.

Entrez dans la console du terminal MariaDB/MySQL en exécutant la commande root :

sudo mysql -u root

Ensuite, créez la nouvelle base de données pour Shlink à l'aide de la commande de terminal suivante :

CREATE DATABASE shlink;

Après avoir créé la base de données, créez un nouveau compte utilisateur et accordez-lui l'accès à la base de données Shlink. Si vous hébergez Nginx, PHP et MariaDB sur le même serveur, conservez le (localhost) . Si vous utilisez un serveur secondaire pour héberger MariaDB en interne ou en externe, entrez l'(adresse IP) en place (localhost) .

GRANT ALL ON shlink.* TO 'shlinkuser'@'localhost' IDENTIFIED BY 'password';

Pour apporter des modifications en direct, vous devez vider les privilèges :

FLUSH PRIVILEGES;

Pour quitter le terminal MariaDB, exécutez la commande suivante :

EXIT;

Installer la dernière version et les extensions de PHP 7.4

Dans le cadre des exigences, PHP 7.4 ou 8.0 est requis. Shlink a besoin de certaines extensions pour que le logiciel fonctionne avec PHP. C'est idéal pour s'assurer que PHP est à jour. Le PPA personnalisé par Ondrej, le mainteneur et PHP pour Debian, est fortement recommandé.

Ci-dessous, le guide ajoutera le référentiel et installera les extensions PHP requises pour PHP 7.4. Si vous souhaitez installer PHP 8.0, changez le 7.4 en 8.0 ou visitez notre tutoriel officiel Comment installer PHP 8.0 sur Ubuntu 20.04 .

Installez le PHP PPA personnalisé par ondrey :

sudo apt install software-properties-common && sudo add-apt-repository ppa:ondrej/php -y

Après avoir ajouté le référentiel, exécutez la commande suivante pour mettre à jour ou installer le dernier logiciel PHP 7.4 :

sudo apt install php7.4-apcu php7.4-fpm php7.4-mysql php7.4-gd php7.4-common php7.4-curl php7.4-intl php7.4-gmp php7.4-xml php7.4-json -y

Pour vous assurer que PHP 7.4 fonctionne correctement après l'installation ou la mise à jour, saisissez ce qui suit :

sudo systemctl status php7.4-fpm

Exemple de sortie :

Installer Shlink

Vous pouvez maintenant procéder à l'installation du script d'installation PHP Shlink en tant que (www-user) en exécutant la commande PHP suivante dans votre terminal Ubuntu :

sudo -u www-data php7.4 /var/www/html/shlink/bin/install

Tout de suite, vous vous retrouverez devant un nouvel écran qui vous demandera d'entrer les détails de la base de données.

Base de données

Dans le guide, vous choisirez MariaDB; cependant, si vous préférez revenir en arrière et configurer un autre logiciel de base de données facultatif, vous pouvez certainement le faire.

Comme ci-dessous, un exemple de création de Shlink configuré à l'aide de MariaDB :

Les options saisies en résumé :

  • Sélectionnez le type de base de données : 1 (MariaDB)
  • Nom de la base de données : shlink
  • Port de la base de données : 3306
  • Nom d'utilisateur de la base de données : utilisateur shlink
  • Mot de passe de la base de données :
  • Socket Unix :

Réducteur d'URL

Sur l'écran suivant, vous trouverez une autre page d'options. Ici, vous trouverez HTTP ou HTTPS spécifiques, le nom de domaine et certaines options d'URL Shlink. Exemples de paramètres ci-dessous :

Les options saisies en résumé :

  • Domaine par défaut pour les URL courtes générées :
  • Sélectionnez le schéma pour les URL courtes générées : HTTPS (Utilisez HTTP si vous n'utilisez pas SSL)
  • Voulez-vous valider les URL longues par un code d'état HTTP 200 lors de la réponse ? (oui/non) : oui
  • Quelle est la longueur par défaut que vous souhaitez que les codes abrégés générés aient ? (Vous pourrez toujours remplacer ceci sur chaque URL courte créée) : 5
  • Souhaitez-vous que Shlink résolve le titre de l'URL courte en fonction de la balise de titre de l'URL longue (le cas échéant) ? Sinon, il restera vide sauf indication contraire. (oui/non) : oui
  • Fournissez une clé de licence GeoLite2. (Laissez vide pour utiliser celui par défaut, mais il est fortement recommandé d'obtenir le vôtre. Allez sur https://shlink.io/documentation/geolite-license-key pour savoir comment l'obtenir) : clé de licence

Si vous souhaitez utiliser GeoLite2, vous devrez créer un compte chez MaxMind et créer une clé. Un guide pour ce faire peut être trouvé dans la documentation de MaxMind GeoLite2. Une fois cela fait, remplacez et entrez votre clé dans la configuration de Shlink.

Ensuite, vous aurez la possibilité de définir la redirection 301 ou 302. Vous devez utiliser le 301, sinon votre référencement, comme le suggère le logiciel, peut en effet être affecté de différentes manières.

Suivi

Après avoir défini 301 comme votre redirection permanente, la prochaine page que vous verrez est le suivi. La plupart des paramètres par défaut sont corrects, et si vous êtes dans l'UE ou avez des visiteurs de l'UE, vous devez anonymiser vos données, ce que Shlink peut heureusement faire pour vous.

Exemples de paramètres ci-dessous :

Les options saisies en résumé :

  • Voulez-vous suivre les visites d'orphelins ? (visites de l'URL de base, URL courtes invalides ou autres URL "non trouvées") : oui
  • Fournissez un nom de paramètre que vous pourrez utiliser pour désactiver le suivi sur demande spécifique vers des URL courtes (laissez vide et cette fonctionnalité ne sera pas activée) :
  • Voulez-vous désactiver complètement le suivi des visites ? : non
  • Voulez-vous désactiver le suivi des adresses IP des visiteurs ? : non
  • Voulez-vous désactiver le suivi des "agents utilisateurs" des visiteurs ? : oui
  • Souhaitez-vous que les adresses IP distantes des visiteurs soient anonymisées avant de les conserver dans la base de données ? : oui
  • Voulez-vous désactiver le suivi des "agents utilisateurs" des visiteurs ? :non
  • Voulez-vous désactiver le suivi des "référents" des visiteurs ? (oui/non) :non

Redirections

La configuration de la redirection est assez simple. La meilleure option consiste à tout relier à votre page d'accueil pour toute erreur 404 / introuvable pouvant survenir sur votre site Web. Exemple ci-dessous :

Les options saisies en résumé :

  • URL personnalisée vers laquelle rediriger lorsqu'un utilisateur accède à l'URL de base de Shlink (si aucune valeur n'est fournie, l'utilisateur verra une page par défaut "404 introuvable") : https://www.exemple.com
  • URL personnalisée vers laquelle rediriger lorsqu'un utilisateur rencontre une URL courte non valide (si aucune valeur n'est fournie, l'utilisateur verra une page "404 introuvable" par défaut) : https://www.exemple.com
  • URL personnalisée vers laquelle rediriger lorsqu'un utilisateur accède à une URL introuvable autre qu'une URL courte non valide (si aucune valeur n'est fournie, l'utilisateur verra une page "404 introuvable" par défaut) : https://www.exemple.com

Candidature

Dans les options de l'application, vous pouvez activer un contrôle de sécurité, qui permettra désormais de supprimer les URL courtes après un certain nombre de visites, ainsi que de définir le chemin à partir duquel Shlink sera servi si ce n'est le chemin racine :

Les options saisies en résumé :

  • Voulez-vous activer un contrôle de sécurité qui empêchera la suppression des URL courtes après avoir reçu un nombre spécifique de visites ? : oui
  • Quel est le nombre de visites à partir desquelles le système n'autorisera pas la suppression des URL courtes ? : 15
  • Quel est le chemin à partir duquel shlink va être diffusé ? (Laissez vide si vous prévoyez de diffuser shlink à partir de la racine du domaine) :

Notez que vous pouvez modifier le 15 en quelque chose de plus grand ou plus petit selon votre site, principalement autour du trafic.

Intégrations

Shlink n'a qu'une seule intégration :Redis, que vous pouvez configurer ci-dessous dans une instance unique ou en cluster. Il est recommandé d'utiliser un seul serveur pour Redis jusqu'à ce que vous soyez très familiarisé avec le clustering, le partitionnement et la réplication Redis car il est assez approfondi, et le site Web moyen de petite à moyenne ne devrait pas en avoir besoin à moins de recevoir d'énormes charges de trafic.

Dans le guide, nous l'avons laissé vide, mais si vous deviez l'utiliser sur l'hôte local, tapez 127.0.1.1:6379.

Félicitations, vous avez installé Shlink sur Ubuntu 20.04.

Exemple de bloc de serveur Nginx

Pour utiliser Shlink avec Nginx, vous devrez configurer votre bloc serveur. Vous pouvez le faire en copiant et collant la configuration suivante en la modifiant selon vos besoins avec HTTPS ou non :

server {
   listen 80;
   listen [::]:80;
   server_name www.linuxcapable.com

   root /var/www/html/shlink/public;
   error_log /var/log/nginx/shlink.error;
   access_log /var/log/nginx/shlink.access;

   index index.php index.html index.htm index.nginx-debian.html;

   location / {
     # try to serve file directly, fallback to app.php
     try_files $uri /index.php$is_args$args;
   }

   # redirect some entire folders
     rewrite ^/(vendor|translations|build)/.* /index.php break;

   location ~ \.php$ {
     fastcgi_split_path_info ^(.+\.php)(/.+)$;
     fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
     fastcgi_index index.php;
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
     include fastcgi_params;
   }

}

Avant de redémarrer votre serveur Nginx, faites un essai en saisissant le code suivant :

sudo nginx -t

Vous devriez recevoir le résultat suivant :

nginx: the configuration file /etc/nginx/my-server.conf syntax is ok
nginx: configuration file /etc/nginx/my-server.conf test is successful

Si tout va bien, redémarrez votre serveur Nginx comme ci-dessous :

sudo systemctl restart nginx

Créer des liens courts

Pour créer des liens courts avec Shlink, vous devez d'abord créer une clé API en exécutant la commande PHP :

sudo -u www-data php7.4 /var/www/shlink/html/bin/cli api-key:generate

Une fois que vous avez votre clé API, vous devez visiter Shlink.io pour enregistrer votre serveur.

Saisissez le nom du serveur, l'URL du serveur et la clé API comme dans l'exemple ci-dessous :

Vous pouvez maintenant ajouter des liens courts à l'aide de l'interface utilisateur Web de Shlink si vous préférez. N'oubliez pas qu'ils sont stockés sur votre serveur :

L'option la plus courante consiste à utiliser les commandes du terminal pour générer des URL courtes.

Pour cela, exécutez la commande suivante :

sudo -u www-data /var/www/html/shlink/bin/cli short-url:generate

Pour répertorier les URL courtes générées, utilisez la commande suivante :

sudo -u www-data /var/www/html/shlink/bin/cli short-url:list

Pour demander de l'aide, exécutez la commande suivante :

sudo -u www-data php /var/www/html/shlink/bin/cli

Exemple de sortie :

Usage:
  command [options] [arguments]

Options:
  -h, --help            Display this help message
  -q, --quiet           Do not output any message
  -V, --version         Display this application version
      --ansi            Force ANSI output
      --no-ansi         Disable ANSI output
  -n, --no-interaction  Do not ask any interactive question
  -v|vv|vvv, --verbose  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Available commands:
  help                Displays help for a command
  list                Lists commands
 api-key
  api-key:disable     Disables an API key.
  api-key:generate    Generates a new valid API key.
  api-key:list        Lists all the available API keys.
 db
  db:create           Creates the database needed for shlink to work. It will do nothing if the database already exists
  db:migrate          Runs database migrations, which will ensure the shlink database is up to date.
 short-url
  short-url:delete    Deletes a short URL
  short-url:generate  Generates a short URL for provided long URL and returns it
  short-url:list      List all short URLs
  short-url:parse     Returns the long URL behind a short code
  short-url:visits    Returns the detailed visits information for provided short code
 tag
  tag:create          Creates one or more tags.
  tag:delete          Deletes one or more tags.
  tag:list            Lists existing tags.
  tag:rename          Renames one existing tag.
 visit
  visit:locate        Resolves visits origin locations.

Ubuntu
  1. Comment installer WordPress avec Nginx sur Ubuntu 18.04

  2. Comment installer phpMyAdmin avec Nginx sur Ubuntu 18.04

  3. Comment installer MediaWiki avec Nginx sur Ubuntu 16.04

  4. Comment installer Grav CMS avec Nginx sur Ubuntu 16.04

  5. Comment installer le raccourcisseur d'URL Shlink avec Nginx sur Ubuntu 20.04

Comment installer le raccourcisseur d'URL Polr sur Ubuntu 20.04

Comment installer Nginx avec ModSecurity sur Ubuntu 15.04

Comment installer WordPress 5.x avec Nginx sur Ubuntu 18.04 / Ubuntu 16.04

Comment installer le raccourcisseur d'URL Shlink sur le serveur Ubuntu 20.04

Comment installer le raccourcisseur d'URL Shlink sur le serveur Ubuntu 18.04

Comment installer Nextcloud 13 sur Ubuntu 16.04 avec Nginx