GNU/Linux >> Tutoriels Linux >  >> Ubuntu

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

Shlink est un raccourcisseur d'URL auto-hébergé open source, qui vous permet de raccourcir les URL et de les servir sous votre propre domaine court. L'utilisation de votre propre service de raccourcissement d'URL au lieu d'un service tiers comme bit.ly peut accroître la notoriété de la marque. Ce tutoriel vous montrera comment installer Shlink sur Ubuntu 20.04 avec un serveur Web Apache ou Nginx.

Fonctionnalités Shlink

  • Statistiques des visites  :effectuez le suivi de toutes les visites de vos URL courtes, y compris des statistiques telles que l'emplacement, le navigateur ou l'URL de provenance.
  • Suivi des e-mails  :Générer une image transparente de 1 pixel pouvant être utilisée pour suivre les e-mails.
  • Intégrations tierces  :Faites en sorte que des outils tiers utilisent facilement shlink pour raccourcir les URL en utilisant un point de terminaison d'API à requête unique.
  • Slugs personnalisés  :faites en sorte que vos URL raccourcies utilisent un slug personnalisé pour identifier facilement les campagnes.
  • Code QR :Générez des QR codes à la volée pointant vers vos URL courtes
  • Aperçus  :Obtenez des aperçus au format image pour n'importe quelle URL courte
  • Balises  :Taguez vos URL courtes et classez-les pour des analyses ultérieures
  • Accès limité  :Limitez l'accès aux URL courtes, par plage de dates et/ou nombre maximum de visites.
  • Importations tierces  :importez vos URL courtes existantes à partir de tiers comme bit.ly.
  • Ligne de commande et interface Web.

Prérequis pour installer Shlink sur le serveur Ubuntu 20.04

Shlink est écrit en PHP et repose sur un serveur de base de données MySQL/MariaDB ou PostgreSQL, vous devez donc configurer une pile LAMP ou LEMP. Si vous préférez le serveur Web Apache, configurez la pile LAMP.

  • Comment installer la pile LAMP sur le serveur/bureau Ubuntu 20.04

Si vous préférez le serveur Web Nginx, configurez la pile LEMP.

  • Comment installer la pile LEMP (Nginx, MariaDB, PHP7.4) sur Ubuntu 20.04 LTS

Vous avez également besoin d'un nom de domaine. J'ai enregistré mon nom de domaine auprès de NameCheap car le prix est bas et ils offrent une protection de la confidentialité whois gratuite à vie. Dans ce tutoriel, j'utilise mon lnux.be nom de domaine par exemple. Sans plus tarder, installons Shlink sur le serveur Ubuntu 20.04.

Étape 1 :Téléchargez Shlink sur votre serveur Ubuntu 20.04

Accédez à la page Shlink Github pour vérifier la dernière version stable. Vous pouvez télécharger la dernière version stable (2.6.2) en exécutant la commande suivante sur votre serveur.

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

Remarque :Si une nouvelle version sort, remplacez simplement 2.6.2 par le nouveau numéro de version.

Le fichier sera enregistré sous shlink2.6.2_php8.0_dist.zip . Utilisez unzip commande pour le décompresser dans /var/www/ répertoire.

sudo apt install unzip

sudo mkdir -p /var/www/

sudo unzip shlink2.6.2_php8.0_dist.zip -d /var/www/

Maintenant, les fichiers sont stockés sous /var/www/shlink2.6.2_php8.0_dist/ , nous le renommons pour le rendre plus simple.

sudo mv /var/www/shlink2.6.2_php8.0_dist/ /var/www/shlink

Ensuite, faites en sorte que l'utilisateur du serveur Web (www-data ) en tant que propriétaire de ce répertoire.

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

Étape 2 :Créer une base de données MariaDB et un utilisateur pour Shlink

Nous devons maintenant nous connecter à la console MariaDB et créer une base de données et un utilisateur pour Shlink. Par défaut, le package MariaDB sur Ubuntu utilise unix_socket pour authentifier la connexion de l'utilisateur, ce qui signifie essentiellement que vous pouvez utiliser le nom d'utilisateur et le mot de passe du système d'exploitation pour vous connecter à la console MariaDB. Vous pouvez donc exécuter la commande suivante pour vous connecter sans fournir de mot de passe root MariaDB.

sudo mysql -u root

Ensuite, créez une nouvelle base de données pour Shlink à l'aide de la commande suivante. Ce tutoriel le nomme shlink , vous pouvez utiliser le nom de votre choix pour la base de données.

CREATE DATABASE shlink;

La commande suivante créera un utilisateur et un mot de passe de base de données, et accordera en même temps toutes les autorisations de la nouvelle base de données au nouvel utilisateur afin que plus tard Shlink puisse écrire dans la base de données. Remplacez les textes en rouge par le nom, le nom d'utilisateur et le mot de passe de votre base de données préférée.

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

Videz la table des privilèges et quittez la console MariaDB.

FLUSH PRIVILEGES;

EXIT;

Étape 3 :Installez PHP8.0 et certaines extensions

Depuis que nous avons téléchargé la version PHP 8 de Shlink, nous devons installer PHP8. Le référentiel Ubuntu 20.04 inclut PHP7.2. Pour installer PHP8.0 sur Ubuntu 20.04, nous devons ajouter un PPA.

sudo apt install software-properties-common

sudo add-apt-repository ppa:ondrej/php -y

Installez ensuite PHP8.0 et les extensions requises par Shlink.

sudo apt install php-apcu php8.0 php8.0-fpm php8.0-mysql php8.0-gd php8.0-common php8.0-curl php8.0-intl php8.0-gmp php8.0-xml

Si vous utilisez Apache serveur Web, vous devez exécuter les commandes suivantes pour lui faire utiliser PHP8.0-FPM.

sudo a2dismod mpm_prefork
sudo a2enmod mpm_event proxy_fcgi setenvif
sudo a2enconf php8.0-fpm

Puis redémarrez Apache.

sudo systemctl restart apache2

Étape 4 :Exécutez le script d'installation Shlink

Exécutez le script d'installation PHP en tant que www-data utilisateur.

sudo -u www-data php8.0 /var/www/shlink/bin/install

L'assistant de configuration vous demandera d'entrer les détails de la base de données. J'ai donc choisi MariaDB comme type de base de données, puis saisissez le nom, l'utilisateur et le mot de passe de la base de données. L'hôte est localhost et le port est 3306 . Shlink peut également se connecter au serveur de base de données via le socket Unix. Si vous utilisez MariaDB, l'emplacement du socket est /var/run/mysqld/mysqld.sock sur le serveur Ubuntu.

Ensuite, entrez le domaine par défaut pour votre raccourcisseur d'URL et sélectionnez le type de schéma (https ). Répondez ensuite à plusieurs questions simples.

Si vous souhaitez analyser la géolocalisation des visiteurs, vous devez utiliser votre propre clé de licence GeoLite2, qui est gratuite. Pour obtenir une clé de licence, créez un compte chez MaxMind. Maxmind vous enverra un e-mail. Cliquez sur le lien dans l'e-mail pour définir un mot de passe, puis connectez-vous à votre compte MaxMind. Ensuite, sélectionnez My License Key sur la barre de gauche.

Cliquez sur Générer une nouvelle clé de licence bouton.

Donnez un nom à votre clé de licence. Choisissez ensuite No , car nous n'avons pas besoin d'utiliser le geoipupdate programme. Cliquez ensuite sur Confirm bouton.

Une fois la clé de licence créée, copiez la clé de licence et collez-la dans l'assistant de configuration Shlink. Ensuite, vous pouvez choisir d'anonymiser les adresses IP des visiteurs et définir le type de redirection (302 ou 301).

Configurez ensuite les redirections pour les cas d'anomalie. Lorsque les visiteurs atteindront l'URL de base de mon Shlink (https://lnux.be), ils seront redirigés vers mon site Web. Vous pouvez également créer une URL personnalisée pour la page 404 introuvable.

Enfin, configurez l'application. J'appuie simplement sur Enter pour utiliser les paramètres par défaut.

Étape 5 :Créer un hôte virtuel Apache ou un fichier de configuration Nginx pour Shlink

Apache

Si vous utilisez le serveur Web Apache, créez un hôte virtuel pour Shlink.

sudo nano /etc/apache2/sites-available/shlink.conf

Mettez le texte suivant dans le fichier. Remplacer lnux.be avec votre vrai nom de domaine et n'oubliez pas de définir un enregistrement DNS A pour celui-ci.

<VirtualHost *:80>
  ServerName lnux.be
  DocumentRoot /var/www/shlink/public

  ErrorLog ${APACHE_LOG_DIR}/shlink_error.log
  CustomLog ${APACHE_LOG_DIR}/shlink_access.log combined

  <Directory /var/www/shlink/public>
    Options FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    allow from all
  </Directory>

Include /etc/apache2/conf-available/php8.0-fpm.conf

</VirtualHost>

Enregistrez et fermez le fichier. Activez ensuite cet hôte virtuel avec :

sudo a2ensite shlink.conf

Rechargez Apache pour que les modifications prennent effet.

sudo systemctl reload apache2

Nginx

Si vous utilisez le serveur Web Nginx, créez un hôte virtuel pour Shlink.

sudo nano /etc/nginx/conf.d/shlink.conf

Mettez le texte suivant dans le fichier. Remplacer lnux.be avec votre vrai nom de domaine et n'oubliez pas de définir un enregistrement DNS A pour celui-ci.

server {
   listen 80;
   listen [::]:80;
   server_name lnux.be;

   root /var/www/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;
   }

}

Enregistrez et fermez le fichier. Testez ensuite la configuration de Nginx.

sudo nginx -t

Si le test réussit, rechargez Nginx pour que les modifications prennent effet.

sudo systemctl reload nginx

Étape 6 :Activer HTTPS

Pour chiffrer le trafic HTTP, nous pouvons activer HTTPS en installant un certificat TLS gratuit émis par Let's Encrypt. Exécutez la commande suivante pour installer le client Let's Encrypt (certbot) sur le serveur Ubuntu 20.04.

sudo apt install certbot

Si vous utilisez Apache , installez le plug-in Certbot Apache.

sudo apt install python3-certbot-apache

Et exécutez cette commande pour obtenir et installer le certificat TLS.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d lnux.be

Si vous utilisez Nginx , vous devez également installer le plug-in Certbot Nginx.

sudo apt install python3-certbot-nginx

Ensuite, exécutez la commande suivante pour obtenir et installer le certificat TLS.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d lnux.be

  • --nginx  :Utilisez le plug-in nginx.
  • --apache :Utilisez le plug-in Apache.
  • --agree-tos  :acceptez les conditions d'utilisation.
  • --redirect  :Forcer HTTPS par redirection 301.
  • --hsts :Ajoutez l'en-tête Strict-Transport-Security à chaque réponse HTTP. Forcer le navigateur à toujours utiliser TLS pour le domaine. Protège contre le SSL/TLS Stripping.
  • --staple-ocsp :active l'agrafage OCSP. Une réponse OCSP valide est agrafée au certificat que le serveur propose pendant TLS.

Le certificat devrait maintenant être obtenu et installé automatiquement.

Étape 7 :Création de liens courts

Tout d'abord, vous devez créer une clé API avec la commande suivante.

sudo -u www-data php8.0 /var/www/shlink/bin/cli api-key:generate

Rendez-vous ensuite sur https://app.shlink.io/ pour ajouter votre serveur.

Une fois que vous avez ajouté votre serveur, vous pouvez créer des liens courts.

Notez qu'il ne s'agit que d'un client Web. Les URL courtes sont stockées sur votre propre serveur.

Vous pouvez également générer des URL courtes à partir de la ligne de commande sur votre serveur.

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

Lister les URL courtes.

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

Exécutez la commande suivante pour voir le message d'aide.

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

Ubuntu
  1. Comment installer MySQL sur Ubuntu 18.04

  2. Comment installer le serveur Minecraft sur Ubuntu 18.04

  3. Comment installer Nginx sur Ubuntu 20.04

  4. Comment installer Zimbra 8.6 sur le serveur Ubuntu 14.04

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

Comment installer Ubuntu Server 18.04 LTS

Comment installer le serveur Ubuntu 20.04 LTS

Comment installer Cockpit sur Ubuntu 20.04

Comment installer le serveur VNC sur Ubuntu 20.04

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

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