Path et URL sont dans un bateau nommé Dotclear

S’il y a un aspect de Dotclear qui m’a toujours posé problème ce sont bien les réglages des paramètres public_path et public_url (ainsi que leurs pendants themes_path et themes_url). Réglages nécessaires à partir du moment ou vous choisissez de séparer ou de déplacer le répertoire des médias du ou des blogs que vous gérez sur votre installation.

Si par contre vous n’avez aucune intention de déplacer quoi que ce soit (ni répertoire de médias ou de thèmes) et si vous souhaitez partager avec tous les blogs de l’installation ces deux répertoires, alors vous avez fini la lecture de ce billet.

Pour les autres, voilà en détail et de manière illustrée comment configurer ces paramètres. Deux précisions :

  • Ce que je vais expliquer ci-dessous pour le répertoire des médias (communément nommé public) est également valable pour le répertoire des thèmes.
  • Nous conviendrons que le répertoire des médias sera toujours sur le même serveur physique que l’installation Dotclear[1].

La documentation officielle

Voyons ce que nous dit la documentation officielle au sujet des deux paramètres public_path et public_url :

public_path
Emplacement du répertoire des médias depuis le fichier index.php du répertoire où est installée l’application Dotclear. Le slash final n’est pas nécessaire.
public_url
URL du répertoire des médias. Le slash final n’est pas nécessaire.
Astuce : Vous pouvez utiliser une URL absolue commençant par http://, pour servir les médias depuis un sous-domaine par exemple.

Utilisation

Ces deux paramètres ont un usage différent. Le premier, public_path est utilisé en interne par l’application Dotclear et par ses extensions. Le second, public_url est utilisé lorsqu’il faut indiquer sur une page web l’URL d’un média, par exemple celui que vous venez d’insérer dans votre premier billet.

Voyons maintenant comment cela s’illustre sur une installation standard, sachant que le script d’installation règle automatiquement ces paramètres en fonction des éléments fournis pendant l’installation. Imaginons que j’installe Dotclear sur un serveur web. Ce serveur web possède une arborescence de dossier dont un en particulier qui sert de racine au serveur web :

  • Dossier FTP correspondant à la racine de mon hébergement : /var/www/mon-domaine.com/www/
  • URL de mon hébergement : http://mon-domaine.com (qui pointe en fait sur le répertoire de la ligne ci-dessus)

Imaginons maintenant que j’installe Dotclear dans un répertoire dotclear (le nom importe peu mais c’est plus pratique pour retrouver ses petits ensuite), je vais avoir quelque chose qui va ressembler à ça question arborescence :

  • /var/www/mon-domaine.com/www/ (http://mon-domaine.com)
    • dotclear
      • admin
      • cache
      • db
      • inc
      • locales
      • plugins
      • public
      • themes

Vous constatez que le répertoire dotclear contient le répertoire des médias nommé public. Les paramètres mis en place pendant l’installation seront :

  • public_path : public
  • public_url : /dotclear/public

public_path indique comment se déplacer du répertoire dotclear vers le répertoire public. Ici, public étant dans le répertoire dotclear, il suffit de rajouter public au chemin pour se retrouver dans le répertoire des médias. C’est le cas le plus simple :

public_path standard

public_url indique comment accéder depuis internet (avec un navigateur web) au répertoire des médias. Mon hébergement http://mon-domaine.com pointe sur le répertoire /var/www/mon-domaine.com/www/. Pour accéder au contenu du répertoire des médias qui se trouve dans le répertoire public lui même contenu dans le répertoire dotclear il faut alors rajouter /dotclear/public/ à l’URL de mon domaine, ce qui donnera finalement l’URL complète http://mon-domaine.com/dotclear/public/ :

public_url standard

Précisions

public_path est habituellement un chemin relatif mais peut tout à faire être un chemin absolu. Dans ce cas il faudra retrouver le chemin complet du genre /var/www/mon-domaine.com/www/dotclear/public pour le configurer de cette manière. Le / qui débute ce paramètre indique que c’est un chemin absolu. Dans les autres cas, ce chemin sera ajouté au chemin correspondant au répertoire dotclear (si c’est le nom utilisé pour votre installation).

public_url commence toujours par un / sauf s’il s’agit d’un autre domaine (ou sous-domaine). Nous verrons cela plus loin.

Ne mettez jamais de / final à ces deux paramètres.

Oui mais…

Nous arrivons maintenant aux cas de figure qui sortent de la configuration standard, cas de figure pour lesquels vous avez patiemment attendu d’arriver ici pour enfin savoir comment renseigner ces paramètres en fonction de votre propre configuration.

Personnellement je comprends bien mieux avec des schémas et des exemples, donc je vous propose 5 configurations avec les paramètres idoines pour public_path et public_url. Avec ça nous devrions couvrir tous les cas de figures ou tout au moins avoir de quoi les déduire.

Répertoire public à la racine de l’hébergement

Imaginons que je souhaite utiliser un répertoire des médias placé à la racine et indépendant du répertoire d’installation de Dotclear :

Répertoire des médias à la racine

Les paramètres seront alors :

  • public_path : ../public
  • public_url : /public

Pour public_path les deux points initiaux permettent de remonter d’un niveau dans l’arborescence du disque, donc à la racine de l’hébergement (/var/www/mon-domaine.com/www/).

Répertoire public dans un autre répertoire indépendant

Maintenant imaginons que je souhaite placer ce répertoire dans un autre répertoire blogs placé à la racine et donc toujours indépendant de l’installation Dotclear :

Répertoire des médias dans un répertoire blogs

Les paramètres seront alors :

  • public_path : ../blogs/public
  • public_url : /blogs/public

Vous remarquerez la seule différence du répertoire blogs avec le cas précédent.

Je pense qu’avec ces 3 configurations (standard, à la racine, dans un répertoire indépendant) vous pouvez déduire toutes les autres possibilités du moment que vous vous cantonnez au même domaine. Voyons maintenant le cas où le répertoire des médias se trouve servi via un autre domaine (ou sous-domaine). Je précise que nous restons tout de même physiquement sur le même serveur.

Répertoire public dans un autre domaine

Imaginons que vous ayez un domaine particulier pour gérer les médias. Ce domaine, http://mes-medias.com/, pointant vers le dossier /var/www/mes-medias.com/www/ :

Répertoire des médias dans un autre domaine

Les paramètres seront alors :

  • public_path : /var/www/mes-medias.com/www/public
  • public_url : http://mes-medias.com/public

Vous constatez que le public_path est un chemin absolu et que public_url est une URL complète. Cela dit j’aurais tout aussi bien utiliser une chemin relatif pour public_path en indiquant ../../../mes-medias.com/www/public.

Répertoire public dans un autre répertoire d’un autre domaine

Compliquons encore en plaçant ce répertoire des médias dans un autre répertoire nommé blogs :

Répertoire des médias dans un autre répertoire d'un autre domaine

Les paramètres seront alors :

  • public_path : /var/www/mes-medias.com/www/blogs/public
  • public_url : http://mes-medias.com/blogs/public

Mettre les médias directement à la racine d’un autre domaine

Simplifions maintenant en plaçant directement les médias à la racine du domaine http://mes-medias.com/ :

Les médias sont placés à la racine d'un autre domaine

Les paramètres seront alors :

  • public_path : /var/www/mes-medias.com/www
  • public_url : http://mes-medias.com

Tout simplement.

Conclusion

Vous devriez maintenant avoir toutes les billes pour adapter ces cas à vos propres configurations et en déduire les paramètres nécessaires. Cependant si vous aviez une configuration remarquable — dans le sens non déductible facilement des cas présentés ici — alors n’hésitez-pas à m’en faire part, je me ferai un plaisir de l’inclure dans ce billet.

Note

[1] Il y a moyen de placer ce répertoire sur un autre serveur mais cela impliquera alors d’installer sur celui-ci une autre installation Dotclear afin de gérer les médias qui s’y trouveront. D’autre part certaines extensions ou thèmes pourront être perturbés dans ce contexte.

Ajouter un commentaire

Les champs suivis d'un * sont obligatoires

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown Extra.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/7188

Haut de page