Raccourcissez vos URL vous-même : mettre en place YOURLS sur votre serveur

Il y a quelques temps, suite à la presque-chute de tr.im, j’ai décidé d’utiliser mon propre système de raccourcisseur d’urls afin de préserver mes infos.
J’ai donc mis en place YOURLS (Your Own URL Shortener = Votre Raccourcisseur d’URL Personnel) sur mon serveur, derrière un nom de domaine acheté pour l’occasion, unsl.im.
YOURLS est un petit ensemble de scripts PHP qui vont vous permettre de faire tourner votre propre service de raccourcissement d’URL (à la TinyURL). Vous pouvez le rendre public ou privé, vous pouvez utiliser vos propres mots-clés pour les URLs, et avec vient sa propre API.
J’ai opté pour le mode privé et j’ai donc eu besoin d’une page d’accueil listant les 5 dernières URLs raccourcies ainsi que l’accès au flux RSS des-dites URLs (30 dernières) plutôt qu’une page proposant de raccourcir des URLs (ça m’est réservé, na !).
Or apparemment je ne suis pas la seule à vouloir faire cela, puisque vous êtes déjà 5 à m’avoir demandé mes fichiers index.php et rss.php permettant de faire cette « interface publique »…
Comme en plus la nouvelle version (1.4) est sortie récemment avec tout plein de trucs sympas dedans, et que ça m’a demandé un peu beaucoup de travail pour adapter les fichiers publics, j’ai décidé de simplifier, et de carrément vous proposer un guide rapide d’installation et paramétrage, ainsi que le téléchargement des-dits fichiers d’interface publique et enfin quelques conseils…
Il va de soit qu’il vous faut quand même quelques compétences techniques assez basiques pour effectuer toutes les étapes (créer la base de données, etc), car je ne les expliquerai pas ici.
Enfin, je ne suis pas affiliée/associée à YOURLS et ne suis donc pas responsable des soucis que vous pourriez rencontrer : en d’autres termes, il y a une page pour signaler des bugs, et il vaut mieux vous y rendre et/ou contacter les créateurs de YOURLS que me demander à moi : déjà parce que je n’aurai probablement pas le temps, et d’autre part parce que je ne serai probablement pas assez bonne en PHP pour ça :)
Allez, maintenant que tout ça est dit, passons au cœur du sujet…

Un peu plus d’infos sur YOURLS

Voici les principales fonctionnalités de YOURLS

  • Publique (tout le monde peut créer des URLs raccourcies) ou privé (juste vous)
  • Mots-clés d’URL séquentiels ou personnalisés
  • Bookmarklet pratique pour raccourcir et partager facilement des liens
  • Statistiques : historique des clicks, tracking des referrers, géolocalisation des visiteurs
  • Une API pour les développeurs

Prérequis

  1. Un serveur avec le module mod_rewrite activé
  2. Au moins PHP 4.3 (voire 5 si vous voulez que l’outil de partage dans l’admin fonctionne correctement sans avoir à tripatouiller les fichiers php, ce qui complexifierai considérablement les mises à jour, cf “Bon à savoir” plus bas)
  3. Au moins MYSQL 4.1
  4. Note : YOURLS peut aussi tourner sur Nginx (En savoir plus, en anglais)

Installation/Mise à jour

Premièrement, récupérez la dernière version de YOURLS sur google (à l’heure d’écriture de cet article, c’est la 1.4).

Cas d’une première installation :

  1. Décompresser l’archive contenant YOURLS
  2. Renommer includes/config-sample.php en includes/config.php
  3. Ouvrez includes/config.php avec un éditeur de texte brut (comme Notepad) et entrez les différents paramètres demandés (voir “Configuration” sur le site de YOURLS)
  4. Téléchargez les fichiers décompressés sur votre serveur à la racine (dossier public_html ou www par exemple)
  5. Créez la base de données en utilisant les informations entrées dans includes/config.php (ou vous pouvez utiliser une base déjà existante)
  6. Pointez votre navigateur sur http://votresite.com/admin/

Cas d’une mise à jour

  1. Faites une copie de votre fichier /includes/config.php
  2. Détruisez tous les fichiers dans votre répertoire YOURLS (le .htaccess aussi, selon l’auteur, mais je suis chez OVH et j’ai eu besoin d’en avoir un, cf. “Bon à savoir”)
  3. Décompresser l’archive YOURLS, téléchargez les fichiers sur votre serveur
  4. Renommer config-sample.php en config.php et entrez les paramètres demandés. Vous pouvez reprendre les informations depuis votre ancien fichier de configuration mais ne repartez pas de ce fichier, vous risqueriez des oublis/ajouts, utilisez le nouveau fichier de configuration.
  5. Dans votre nouveau fichier config.php, ajoutez les defines pour YOURLS_DB_TABLE_URL et YOURLS_DB_TABLE_NEXTDEC présents dans votre ancien fichier de configuration
  6. Faites une sauvegarde de votre base de données !
  7. Pointez votre navigateur sur http://votresite.com/admin/ et suivez les instructions
  8. Une fois que la mise à jour est terminée, retirez le define pour YOURLS_DB_TABLE_NEXTDEC de votre fichier de configuration
  9. L’auteur promet qu’à la prochaine mise à jour il ne sera pas nécessaire de modifier le fichier de configuration à nouveau :)

Configuration

Pour savoir comment renseigner les différents paramètres du fichier config.php, je vous invite à consulter la page “Configuration” sur le site de YOURLS.

Bon À Savoir

J’ai eu quelques surprises en mettant à jour vers la 1.4, et même hors mise à jour il y a de toute façon quelques petites choses à savoir pour vous éviter l’arrachage de cheveux.

.htaccess

Il n’est pas expliqué grand chose sur le .htaccess dans le site, si ce n’est que lors d’une mise à jour il faut l’enlever…

Or sur le site dédié à YOURLS chez Google Code, il y a une page du Wiki qui y est consacrée, et pour avoir testé sans (chez OVH), je peux témoigner qu’il vaut mieux l’utiliser (apparemment sur 1and1 et goDaddy aussi).

De plus, il vous sera utile pour activer le PHP 5 (par exemple chez OVH où il n’est pas activé par défaut mais reste disponible) ou autres options que vous pourriez vouloir utiliser (compression gzip, etc)

PHP 5 ou pas ?

A priori, tout fonctionne effectivement à partir de la 4.3, MAIS avant que je ne passe en 5, chez OVH donc, je ne pouvais pas utiliser l’onglet “Partager” de chaque URL, à cause de la fonction htmlspecialchars_decode qui ne fonctionne apparemment pas en 4.3…

Si vous ne voulez pas/ne pouvez pas activer le PHP 5 chez votre hébergeur, il vous faudra alors la redéfinir pour PHP 4 (mais attention aux mises à jour par la suite !).

Je m’excuse si l’explication est obscure ou inexacte, mais en gros c’est ce que j’ai compris de mes lectures et tests, n’hésitez donc pas à me corriger si besoin ! :)

Aller plus loin

Plugin WordPress

Il existe un plugin WordPress (aussi compatible avec bit.ly, tr.im, is.gd, et tinyurl.com) pour générer automatiquement (et publier sur twitter) les URLs raccourcies de vos billets (ou pages) lors de leur publication.

J’attends juste la même chose pour Dotclear 2… des intéressés ? :)

YOURLS et Tweetie 2

Vous le savez maintenant, je ne peux plus m’en cacher, je suis un peu accro à mon iPhone

Vous savez donc que je préconise d’utiliser Twittelator, qui est riche en fonctionnalités…

Cependant, les créateurs de la nouvelle version de Tweetie ont fait un excellent boulot, et ont eu une vraiment bonne idée lorsqu’ils ont pensé à proposer l’utilisation d’une API perso pour le raccourcissement des URLs… pis l’interface est super jolie et bien faite, au point que je suis passée sur Tweetie 2 pour l’instant, mais chuuuttt :)

Bref, pour utiliser votre toute nouvelle installation YOURLS avec Tweetie 2 (ou tout autre client Twitter pour iPhone qui vous permette d’utiliser votre propre API bien sûr, je serai d’ailleurs curieuse de savoir si il y en d’autres, vous en connaissez ?), il vous faudra utiliser une URL formatée de la manière suivante (remplacez les informations en majuscules par vos propres informations) :

http://VOTRESITE.COM/yourls-api.php?action=shorturl&url=%@&username=VOTRE-NOM-DUTILISATEUR&password=VOTRE-MOT-DE-PASSE&format=simple

En revanche, vous ne pourrez pas utiliser de mot clé personnalisé dans ce cas :'(

Merci à Eugene Gordin pour l’URL, que j’ai simplement traduite :)

Une interface publique sympa et un flux RSS

Malheureusement, pour toutes les qualités qu’il a, YOURLS ne propose pas par défaut de page publique autre qu’une page de formulaire permettant de raccourcir des URLs, ce qui n’est peut-être (probablement ?) pas du tout votre besoin/envie…

J’avais trouvé il y a quelques temps un tutoriel expliquant comment créer son propre fichier d’accueil public listant les URLs, et je m’en étais servie pour créer l’accueil d’unsl.im (j’ai été totalement incapable de retrouver l’article en question, c’est pourquoi je ne le cite pas…), puis je m’étais attaqué au flux RSS (une petite recherche sur google) et depuis, comme je le disais en introduction, on m’a demandé plusieurs fois ces fichiers, signe qu’il y a un réel besoin.

Plutôt que de continuer à les envoyer par mail, je me suis dit que j’allais les mettre à disposition ici car de cette manière je pourrai les versionner (en fonction de la version de YOURLS, on commencera donc par la v1.3), et vous pourrez aller les récupérer sans attendre que je répondre à vos mails :)

En plus, ça me permettra d’enfin utiliser la fonction de fichiers attachés de Dotclear 2 sur ce blog… ;)

Vous pourrez donc trouver une archive incluant un fichier index-sample.php (vierge de toute présentation, je vous laisse vous amuser avec les CSS, etc) et un fichier rss-sample.php qui génère un flux RSS simple.

Conclusion

Voilà, j’espère que tout ceci vous sera utile et vous permettra, à vous aussi, de vous affranchir des services externalisés et de gérer vous-mêmes vos URLs raccourcies !

Si vous avez des questions concernant cet article ou des informations intéressantes à ajouter (et notamment des réponses à mes questions), n’hésitez pas !
(mais encore une fois, je ne peux pas faire le “service après-vente technique”)

A bientôt pour d’autres articles et références ! :)

Commentaires