Installation YOURLS · 9 min read · Nov 29, 2025

Comment installer le raccourcisseur d'URL auto-hébergé YOURLS sur CentOS 8

YOURLS est un raccourcisseur d’URL gratuit, open-source et auto-hébergé écrit en PHP. Il est très similaire à TinyURL ou Bitly et vous permet de gérer votre propre service de raccourcissement d’URL. Il vous permet également d’ajouter une image de marque à vos URL courtes. Il offre un ensemble riche de fonctionnalités, y compris des liens privés et publics, des mots-clés d’URL personnalisés, des rapports de clics historiques, une interface Ajax, un support Jsonp et bien plus encore.

Dans ce tutoriel, nous allons vous montrer comment installer YOURLS sur CentOS 8 avec SSL Let’s Encrypt.

Prérequis

  • Un serveur exécutant CentOS 8.
  • Un nom de domaine valide pointé vers l’IP de votre serveur.
  • Un mot de passe root configuré sur le serveur.

Installer le serveur LEMP

Tout d’abord, vous devrez installer Nginx, MariaDB, PHP et les extensions PHP requises sur votre serveur. Vous pouvez tous les installer avec la commande suivante :

dnf install nginx mariadb-server php php-fpm php-json php-common php-mysqlnd php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath git unzip wget -y

Une fois tous les paquets installés, éditez le fichier de configuration PHP-FPM /etc/php-fpm.d/www.conf et changez l’utilisateur de apache à nginx :

nano /etc/php-fpm.d/www.conf

Changez les lignes suivantes :

user = nginx
group = nginx

Enregistrez et fermez le fichier, puis démarrez Nginx, le service MariaDB, le service PHP-FPM et activez-les pour qu’ils démarrent au redémarrage du système avec la commande suivante :

systemctl start nginx  
systemctl enable nginx  
systemctl start mariadb  
systemctl enable mariadb  
systemctl start php-fpm  
systemctl enable php-fpm

Une fois que vous avez terminé, vous pouvez passer à l’étape suivante.

Créer une base de données pour YOURLS

Ensuite, vous devrez créer une base de données et un utilisateur pour YOURLS. Tout d’abord, connectez-vous à MariaDB avec la commande suivante :

mysql

Une fois connecté, créez une base de données et un utilisateur avec la commande suivante :

MariaDB [(none)]> CREATE DATABASE yourlsdb;  
MariaDB [(none)]> GRANT ALL PRIVILEGES ON yourlsdb.* TO 'yourlsuser'@'localhost' IDENTIFIED BY 'password';

Ensuite, videz les privilèges et quittez MariaDB avec la commande suivante :

MariaDB [(none)]> FLUSH PRIVILEGES;  
MariaDB [(none)]> \q

À ce stade, MariaDB est installé et configuré.

Installer YOURLS

Tout d’abord, changez le répertoire vers la racine web de Nginx et téléchargez la dernière version de YOURLS avec la commande suivante :

cd /var/www/html  
git clone https://github.com/YOURLS/YOURLS.git

Ensuite, renommez le fichier de configuration d’exemple avec la commande suivante :

cd YOURLS/user/  
cp config-sample.php config.php

Ensuite, éditez le fichier config.php et définissez vos paramètres de base de données :

nano config.php

Changez les lignes suivantes :

/** Nom d'utilisateur de la base de données MySQL */
define( 'YOURLS_DB_USER', 'yourlsuser' );

/** Mot de passe de la base de données MySQL */
define( 'YOURLS_DB_PASS', 'password' );

/ Le nom de la base de données pour YOURLS
  Utilisez uniquement des lettres minuscules [a-z], des chiffres [0-9] et des underscores [_] */
define( 'YOURLS_DB_NAME', 'yourlsdb' );

/ Nom d'hôte MySQL.
  Si vous utilisez un port non standard, spécifiez-le comme 'hostname:port', par exemple 'localhost:9999' ou '127.0.0.1:666' */
define( 'YOURLS_DB_HOST', 'localhost' );

/ Préfixe des tables MySQL
  YOURLS créera des tables en utilisant ce préfixe (par exemple `yourls_url`, `yourls_options`, ...)
 ** Utilisez uniquement des lettres minuscules [a-z], des chiffres [0-9] et des underscores [_] */
define( 'YOURLS_DB_PREFIX', 'yourls_' );

define( 'YOURLS_SITE', 'http://yourls.example.com' );
$yourls_user_passwords = array(
        'admin' => 'yourpassword',

Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, créez un fichier .htaccess avec la commande suivante :

nano /var/www/html/YOURLS/.htaccess

Ajoutez les lignes suivantes :


RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /yourls-loader.php [L]

Enregistrez et fermez le fichier, puis donnez les permissions et la propriété appropriées avec la commande suivante :

chown -R nginx:nginx /var/www/html/YOURLS  
chmod -R 775 /var/www/html/YOURLS

Une fois que vous avez terminé, vous pouvez passer à l’étape suivante.

Configurer Nginx pour YOURLS

Ensuite, créez un nouveau fichier de configuration de virtual host Nginx pour YOURLS :

nano /etc/nginx/conf.d/yourls.conf

Ajoutez les lignes suivantes :

server {
  listen 80;
  server_name yourls.example.com;
  root /var/www/html/YOURLS;
  index index.php index.html index.htm;
  location / {
    try_files $uri $uri/ /yourls-loader.php$is_args$args;
  }

  location ~ \.php$ {
    include fastcgi.conf;

    fastcgi_index index.php;
    fastcgi_pass unix:/run/php-fpm/www.sock;
  }
}

Enregistrez et fermez le fichier, puis redémarrez le service Nginx et PHP-FPM avec la commande suivante :

systemctl restart nginx  
systemctl restart php-fpm

Vous pouvez également vérifier l’état de Nginx avec la commande suivante :

systemctl status nginx

Vous devriez obtenir la sortie suivante :

? nginx.service - Le serveur HTTP et proxy inverse nginx
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/nginx.service.d
           ??php-fpm.conf
   Active: active (running) since Tue 2020-10-20 09:37:40 EDT; 5min ago
  Process: 12864 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 12862 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 12860 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 12871 (nginx)
    Tasks: 3 (limit: 12523)
   Memory: 5.5M
   CGroup: /system.slice/nginx.service
           ??12871 nginx: master process /usr/sbin/nginx
           ??12872 nginx: worker process
           ??12873 nginx: worker process

Oct 20 09:37:40 centos systemd[1]: Stopped Le serveur HTTP et proxy inverse nginx.
Oct 20 09:37:40 centos systemd[1]: Démarrage du serveur HTTP et proxy inverse nginx...
Oct 20 09:37:40 centos nginx[12862]: nginx: le fichier de configuration /etc/nginx/nginx.conf a une syntaxe correcte
Oct 20 09:37:40 centos nginx[12862]: nginx: le test du fichier de configuration /etc/nginx/nginx.conf est réussi
Oct 20 09:37:40 centos systemd[1]: Démarré Le serveur HTTP et proxy inverse nginx.

Configurer SELinux et le pare-feu

Par défaut, SELinux est activé dans CentOS 8. Vous devrez donc le configurer pour votre site web YOURLS.

Vous pouvez configurer SELinux avec la commande suivante :

setsebool httpd_can_network_connect on -P  
chcon -R -u system_u -t httpd_sys_rw_content_t -r object_r /var/www/html/YOURLS

Ensuite, autorisez le port 80 et 443 à travers le pare-feu avec la commande suivante :

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https  
firewall-cmd --reload

Une fois que vous avez terminé, vous pouvez passer à l’étape suivante.

Accéder à YOURLS

Maintenant, ouvrez votre navigateur web et accédez à YOURLS en utilisant l’URL http://yourls.example.com/admin. Vous devriez voir la page suivante :

YOURLS

Cliquez sur le bouton Installer YOURLS. Vous devriez voir la page suivante :

Installateur YOURLS

Cliquez sur la Page d’administration YOURLS. Vous devriez voir la page de connexion YOURLS :

Connexion

Fournissez votre nom d’utilisateur et votre mot de passe administrateur que vous avez définis dans le config.php, puis cliquez sur le bouton Connexion. Vous devriez voir le tableau de bord YOURLS sur la page suivante :

Tableau de bord admin YOURLS

Sécuriser YOURLS avec SSL Let’s Encrypt

Ensuite, vous devrez installer l’utilitaire Certbot sur votre système pour télécharger et installer SSL Let’s Encrypt pour votre site web YOURLS.

Vous pouvez installer le client Certbot avec la commande suivante :

wget https://dl.eff.org/certbot-auto  
mv certbot-auto /usr/local/bin/certbot-auto  
chown root /usr/local/bin/certbot-auto  
chmod 0755 /usr/local/bin/certbot-auto

Ensuite, obtenez et installez un certificat SSL pour votre site web YOURLS avec la commande suivante :

certbot-auto --nginx -d yourls.example.com

La commande ci-dessus installera d’abord toutes les dépendances requises sur votre serveur. Une fois installé, on vous demandera de fournir une adresse e-mail et d’accepter les conditions de service comme indiqué ci-dessous :

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to

cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

Obtaining a new certificate
Performing the following challenges:
http-01 challenge for yourls.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/yourls.conf

Sélectionnez si vous souhaitez rediriger le trafic HTTP vers HTTPS ou non comme indiqué ci-dessous :

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for

new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Tapez 2 et appuyez sur Entrée pour continuer. Une fois l’installation terminée avec succès, vous devriez obtenir la sortie suivante :

Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/yourls.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://yourls.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=yourls.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/yourls.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/yourls.example.com/privkey.pem
   Your cert will expire on 2020-06-11. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot-auto
   again with the "certonly" option. To non-interactively renew *all*
   of your certificates, run "certbot-auto renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Vous pouvez maintenant accéder au site web YOURLS de manière sécurisée en utilisant l’URL https://yourls.example.com.

Conclusion

Félicitations ! Vous avez installé avec succès YOURLS avec Nginx et SSL Let’s Encrypt sur CentOS 8. Vous pouvez maintenant héberger facilement votre propre raccourcisseur d’URL avec YOURLS. N’hésitez pas à me poser des questions si vous en avez.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.