Mot-clé - Dotclear

Fil des billets

dimanche 15 août 2021

Mise à jour vers la version 2.19

Une petite frayeur chez notre hébergeur, après avoir effectué la mise à jour vers la version 2.19. On avait uniquement une page blanche (que se soit la partie publique ou privée).

Comme on a un accès par SSH, je regarde les différentes versions de PHP, [1] on a :

  • php5.6 -> PHP 5.6.40-27+01.gbp02e670
  • php7.3 -> PHP 7.3.27-1~deb10u1
  • php lien symbolique vers la version ci-dessus

En parcourant la FAQ, je tombe sur une entrée, expliquant comment utiliser la version PHP7 [2]

Il faut rajouter cette ligne (à placer dans un fichier .htaccess)

AddType application/x-httpd-php7 .php

Le miracle ! Tout est revenu à la normale. Je trouve que le temps de chargement des pages est un peu plus long (c'est subjectif).

Notes

[1] Car d'après le ChangeLog, la version minimale est la 7.3

[2] Au départ, j'étais dubitatif, car l'utilitaire php pointe directement vers la version 7.

mercredi 15 août 2018

On vogue maintenant avec Dotclear 2.14

L'annonce a été publiée ce lundi 13 août. Je viens de faire la mise à jour, et tout fonctionne à merveille. Un grand merci à Franck pour sa ténacité toujours intacte au fil des ans [1].

Note

[1] Même si parfois il y a des hauts et des bas.

dimanche 21 janvier 2018

Explication sur comment mettre à jour Dotclear sur notre serveur

Je viens d'effectuer la mise à jour du moteur de blog, et je dois dire, que mes deux scripts fonctionnent à merveille.

Voici les étapes :

1. Exécution du fichier update.sh, après avoir modifié les deux variables LEGACY_VERSION et UPDATE_VERSION

sh update.sh

Le programme va créer deux fichiers temporaires : ~/tmp/deleted.txt (contenant le ou les fichier(s) à supprimer), et ~/tmp/updated.txt (contenant les fichiers à transférer). La liste des fichiers à mettre à jour peut être longue (surtout quand on doit parcourir plusieurs sous dossiers), il existe un second programme, qui va copier uniquement ces fichiers (tout en gardant l'arborescence).

2. Exécution du fichier copy-files.py (il s'agit d'un script Python3).

Ce programme nécessite de donner deux paramètres :

python3 copy-files.py -h
usage: copy-files.py [-h] dir listing

positional arguments:
  dir         directory (from tarball)
  listing     listing (updated.txt)

optional arguments:
  -h, --help  show this help message and exit
  • dir correspond à l'archive qui a été téléchargée avec le précédent programme
  • listing représente le fichier ~/tmp/updated.txt

Un nouveau dossier sera créé ~/tmp/dotclear/ contenant uniquement les fichiers à uploader sur le serveur.

La dernière étape copie les fichiers (situés dans ~/tmp/dotclear/) à l'aide de la commande scp.

cd ~/tmp
scp -r dotclear/* user@ssh.tuxfamily.org:/home/path/to/dotclear/

Il faut bien sur, ne pas oublier de supprimer les fichiers qui se trouvent dans ~/tmp/deleted.txt.

mercredi 25 octobre 2017

Pas d'admin sous Dotclear

Ces derniers temps l'accès à la partie "admin" de Dotclear semble inacessible. Cela vient du fait, que lorsque l'on se connecte il y a une requête qui est faite vers http://download.dotclear.org/versions.xml. Or en ce moment le serveur semble avoir des soucis. et par conséquent on ne peut plus se connecter [1], et faire la manipulation expliquée dans ce billet [2].

Je suis donc parti sur l'interface de phpMyAdmin chez TuxFamily pour régler ce problème.

Tout d'abord j'ai recherché tous les utilisateurs sur ce blog :

SELECT user_id, pref_value FROM `dc_pref` WHERE pref_id = "dcnews"

Ensuite j'ai changé la valeur, c'est un booléen (0 ou 1).

UPDATE `dc_pref` SET pref_value = 0 WHERE user_id = "USER" AND pref_id = "dcnews"

En remplaçant USER par votre identifiant. Normalement tout devrait refonctionner.

Notes

[1] Chez TuxFamily, on obtient une erreur 504 (Gateway Time-out), le temps d’attente de la réponse du serveur a écoulé.

[2] La manipulation dans le fichier inc/config.php ne résoud rien.

lundi 16 octobre 2017

Nouveau thème

Comme vous avez pu peut être le constater, j'ai mis en place un nouveau thème. Seul pour l'instant, le blog et notre portail ont une apparence unifié. Le wiki va venir plus tard (d'ici la fin de mes vacances ...). Il peut y avoir des choses qui passent mal, cela sera réglé au fur et à mesure.

L'ensemble de mes modifications sont disponibles sur le dépôt GitHub. [1]

Note

[1] Je sais, ce n'est pas libre, mais beaucoup de logiciels l'utilisent, et c'est plus facile pour y contribuer (pour des patchs par exemple).

mardi 5 septembre 2017

HTTPS partout

L'ensemble des sites (blog et wiki) sont désormais uniquement accessibles en HTTPS [1]. Merci à notre hébergeur TuxFamily pour cette initiative.

L'ajout d'un fichier .htaccess à la racine avec ce contenu permet de mettre en place cette fonctionnalité :

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]

Note

[1] Cela fait suite à une demande de plusieurs adhérents sur notre liste de diffusion.

dimanche 3 septembre 2017

Mise à jour réussie

Profitant d'un peu de temps libre en ce dimanche de septembre, j'en ai profité pour mettre à jour le gestionnaire de blog. Nous sommes passés d'une version 2.11.2 à une version 2.12.1.

Auparavant je passais par l'application d'un patch, mais les administrateurs de TuxFamily semblent avoir mis des limitations, cette procédure n'est plus réalisable. Je me suis donc fait un ensemble de programmes pour me simplifier la tâche.

Il ne nous reste plus qu'à trouver un joli thème (si possible compatible avec les tous les terminaux).

dimanche 14 août 2016

Mise à jour du blog, laborieuse, mais c'est fait

Je viens de mettre à jour le blog [1] nous utilisons désormais la dernière version en date, 2.10 (publiée pour les treize ans de ce formidable moteur de blog).

Dans le titre, j'ai mentionné le fait que le passage vers cette nouvelle version a été chaotique. La procédure habituelle n'a pas fonctionné comme je l'espérai, donc j'ai apporté les changements manuellement à l'aide le commande cp.

La commande patch me renvoyait sans cesse cette erreur :

patch failed to set the owner of file ... permission denied

Je me suis rendu compte après coup que tous les fichiers .php étaient exécutables par tous le monde (propriétaire all), l'erreur provenant peut-être de ces « mauvaises permissions ». J'ai remis tout ça en ordre avec cette commande :

find . -type f -name '*.php' | xargs chmod a-x

Maintenant, il falloir plancher sur un nouveau thème, celui-ci commence à se faire vieux :), et il n'est pas vraiment adapté aux résolutions des mobiles.

Note

[1] Il s'agit de Dotclear.

lundi 19 janvier 2015

Installation de Dotclear sous openSUSE (bis)

Il y a quelques années, j'avais écrit un billet sur l'installation de Dotclear en local.

Nous allons donc revoir la procédure de A à Z, en changeant cette fois-ci de serveur Web, et de système de base de données.

Les prérequis sont :

  • Un serveur HTTP
  • Une base de données
  • PHP >= 5.2

Lire la suite...

samedi 16 novembre 2013

Mise à jour réussie

Je viens de mettre à jour le « blog », la mise à jour s'est déroulée sans accroc.

La procédure par la méthode du patch est extrêmement efficace, et rapide.

La partie admin est un peu déroutante au début, mais on s'y fait.

jeudi 14 février 2013

Soirée DOTCLEAR - présentation et initiation

Ecrivez vos billets directement depuis LibreOffice

      Étaient présents ceux qui étaient là

lundi 21 mai 2012

Mise à jour

Dotclear logo

L'annonce date du 19 mai, j'ai profité d'avoir un peu de temps cette après-midi, pour mettre le site à jour.

La procédure est très simple :

  1. Connexion par SSH sur le serveur de TuxFamily
  2. Téléchargement du patch [1] à cette adresse
  3. Décompression du fichier, avec la commande gunzip
  4. Application du patch (Cf. la commande ci-dessous).
(~/avignuasso/avignu.tuxfamily.org-web/htdocs/news)
assoavignu@pastis $ patch -p1 < 2.4.2-2.4.3.diff 

Et voilà, en deux minutes, c'était fait.

Un dernière chose, j'ai remarqué, qu'avec le précédent billet, nous avons eu du spam dans les commentaires, donc les commentaires, ainsi que le rétroliens sont bloqués.

Note

[1] Il s'agit d'un fichier .diff « gzippé ».

lundi 26 décembre 2011

Mise à jour

Dotclear logo

Le blog vient d'être mis à jour, une annonce a été publié ce week-end. Cet upgrade « mineur » corrige une faille de sécurité, donc autant en profiter.

Ci-dessous, la procédure que j'ai utilisé.

1. J'ai téléchargé le patch, à cette adresse : http://download.dotclear.org/patches/

2. Connexion en SSH au serveur

olivier@bornem:~ $ ssh assoavignu@212.85.158.7
[...]

(~)
assoavignu@pastis $ 
(~)
assoavignu@pastis $ cd avignuasso/avignu.tuxfamily.org-web/htdocs/news/
(~/avignuasso/avignu.tuxfamily.org-web/htdocs/news)
assoavignu@pastis $ wget http://download.dotclear.org/patches/2.4.0-2.4.1.2.diff
(~/avignuasso/avignu.tuxfamily.org-web/htdocs/news)
assoavignu@pastis $ patch -p1 < 2.4.0-2.4.1.2.diff

J'ai eu un seul « warning » concernant le fichier CHANGELOG, je l'ai télécharger à partir du dépôt mercurial, https://hg.dotclear.org/dotclear/su.... Il faut choisir le bon changeset, dans notre cas, il correspond au numéro 5307412afe6d.

Et voilà :)

dimanche 20 novembre 2011

Mise à jour du blog

Dotclear logo

Je viens de mettre à jour le blog dans sa dernière version (2.4). [1]

J'en ai profité pour apporter quelques corrections au thème actuel.

Note

[1] Le ChangeLog

samedi 13 août 2011

Installation de Dotclear en local, sous openSUSE

logo openSUSE logo de Dotclear

Pour célébrer les huit ans de Dotclear, j'en profite donc pour présenter une méthode pour installer ce fabuleux système de blog sur son ordinateur en « local ».

Pré-requis

  • Un serveur Web, Lighttpd
  • PHP5 avec le module FastCGI (indispensable) ou PHP-FPM
  • SQLite [1] (installez bien le module PHP pour cette base de données)

Tous ces composants ont été installés via zypper (vous pouvez très bien passer par Yast2).

Régler le daemon

Comme il s'agit de mon ordinateur de bureau, je n'ai pas l'intention de le lancer à chaque démarrage, il sera utilisé ponctuellement.

# chkconfig --list | grep lighttpd
lighttpd                  0:off  1:off  2:off  3:on   4:off  5:on   6:off

On constate qu'il est activé lorsque le système est en mode multi-users (numéros 3 et 5).

Nous allons donc désactiver ce service

# chkconfig --del lighttpd
# chkconfig --list | grep lighttpd
lighttpd                  0:off  1:off  2:off  3:off   4:off  5:off   6:off

Désormais, on le lancera de cette manière :

# /etc/init.d/lighttpd start

Configuration du serveur

Dans cette partie, nous allons modifier (légèrement) le comportement par défaut de Lighttpd.

Le fichier principale s'appelle lighttpd.conf, il est situé dans /etc/lighttpd.

J'ai modifié la valeur des variables server_root , server.use-ipv6 et server.bind.

[...]
var.server_root = "/usr/www"

[...]
##
## Use IPv6?
##
server.use-ipv6 = "disable"

##
## bind to a specific IP
##
server.bind = "127.0.0.1"

[...]

Il reste à créer les répertoires /usr/www/htdocs :

# mkdir -p /usr/www/htdocs
# cd /usr/www ; chown -R lighttpd:lighttpd .

Ensuite, on va autoriser le listing des répertoires situés dans server_root, il faut modifier le fichier /etc/lighttpd/conf.d/dirlisting.conf

[...]
##
## Enabled Directory listing
##
dir-listing.activate      = "enable"
 
##
## Hide dot files from the listing?
## By default they are listed.
##
dir-listing.hide-dotfiles = "enable"

Pour une question de facilité, on va activer le module userdir, il faut décommenter la ligne correspondante dans le fichier /etc/lighttpd/modules.conf :

[...]

##
## mod_userdir
##
include "conf.d/userdir.conf"

[...]

Vous pouvez activer la variable userdir.exclude-user dans le fichier /etc/lighttpd/conf.d/userdir.conf

[...]
userdir.exclude-user = ( "root" )

[...]

Il nous reste plus qu'à créer le dossier public_html/ pour chaque utilisateur.

% mkdir ~/public_html

Vous pouvez maintenant tester le serveur.

PHP

Nous allons utilisé PHP avec le module FastCGI.

On va rechercher le nom exacte de ce binaire :

% ls /usr/bin/php* | grep cgi
/usr/bin/php-cgi   **
/usr/bin/php-cgi5

** : Il s'agit d'un lien symbolique vers /etc/alternatives/php-cgi, donc on l'oublie (vérifiez tout de même avec ls -l /usr/bin/php-cgi*).

On va rajouter ce module au démarrage du serveur, grâce au fichier /etc/lighttpd/modules.conf

[...]
##
## FastCGI (mod_fastcgi)
##
include "conf.d/fastcgi.conf"

[...]

Il ne nous reste plus qu'à rajouter une directive dans le fichier /etc/lighttpd/conf.d/fastcgi.conf :

[...]

fastcgi.server = ( ".php" =>
     ( "localhost" =>
         (
         "socket" => socket_dir + "/php-fastcgi-0.socket",
         "bin-path" => "/usr/bin/php-cgi5",
         "max-procs" => 1,
         "check-local" => "disable"
         )
     )
)

[...]

On peut relancer notre serveur.

Ici on utilise un socket UNIX, mais on peut très bien utiliser un socket utilisant la pile TCP/IP.

Installation de Dotclear

1. Téléchargez et installez le dans le dossier public_html/.

2. Il faut rendre accessible en écriture le répertoire cache/ :

% chmod a+w dotclear/cache

3. On va créer le « fichier » de la base de données (uniquement pour SQLite)

% touch db/database.db ; chmod a+w db/database.db
% chmod a+w db/

Vous pouvez donner un autre nom, ceci est un exemple.

4. On copie le fichier inc/config.php.in en inc/config.php et on l'édite. Les variables à modifier sont :

  • DC_DBDRIVER
  • DC_DBNAME (mettre le chemin complet depuis la racine du fichier du §3)
  • DC_MASTER_KEY

On termine l'installation en faisant pointer notre navigateur vers http://127.0.0.1/dotclear/admin/install/

Finaliser la configuration du serveur

On va empêcher le listing de la base de données, dans le fichier /etc/lighttpd/conf.d/dirlisting.conf on va rajouter une expression régulière à la variable dir-listing.exclude :

[...]

##
## list of regular expressions. Files that match any of the specified
## regular expressions will be excluded from directory listings.
##
dir-listing.exclude       = ( "~$", ".+\.db$" )

[...]

On va également interdir l'accès (depuis un navigateur) aux répertoires dotclear/db/ et dotclear/admin/install/. Pour cela il faut activer le module, mod_access (via le fichier /etc/lighttpd/modules.conf).

Dans le fichier /etc/lighttpd/lighttpd.conf on rajoute ces lignes :

[...]

##
## deny access to dotclear/db/ and dotclear/admin/install/
$HTTP["url"] =~ "(/db/|/install/)" {
     url.access-deny = ( "" )
}

On va empêcher le listing du répertoire public/, où sont stockés les médias tels que les images, les vidéos, etc. Dans le fichier /etc/lighttpd/conf.d/dirlisting.conf on rajoute ces lignes :

[...]

##
## Disable listin into public/ directory
$HTTP["url"] =~ "/public/" {
     dir-listing.activate = "disable"
}

[...]

Maintenant vous pouvez passer des heures à configurer votre blog.

Notes

[1] Je n'avais pas envie de passer du temps à configurer MySQL ou PostgreSQL.