Le blog de llaumgui

Linux en général, Fedora / CentOS en particulier...

Aller au contenu | Aller au menu | Aller à la recherche

jeudi 13 septembre 2007

Connexion apache sécurisée par SSL en place sur spb-box (https)

Après pas mal de galères et de tâtonnements, j'ai enfin réussi à installer des certificats SSL sur la spb-box. Je tiens d'ailleurs à remercier l'ami Remi qui m'a un peu blasé en trouvant le problème en 5 minutes. Dorénavant mon serveur SVN n'est plus sur http://svn.llaumgui.com mais sur https://svn.llaumgui.com.

J'en ai aussi profité pour mettre phpMyAdmin derrière une connexion SSL ce qui est plus prudent.

dimanche 9 septembre 2007

ezipb-shoutbox, une shoutbox pour ezipb

Je viens d'importer, sur mon serveur Subversion, la première version d'ezipb-shoutbox : la shoutbox AJAX pour l'extension ezipb permettant de coupler eZ publish et IPB.

J'en ai aussi profité pour mettre à jour la documentation sur mon wiki, ainsi que le roadmap.

dimanche 2 septembre 2007

Trac et Subversion, c'est bon, mangez en !

Pour porter mes différents projets de développement perso, j'ai mis en place un serveur Subversion (SVN pour les intimes) interfacé par un Trac. Je dois avouer que si pour du travail collaboratif le versioning et la gestion de tickets est indispensable, pour du travail perso, c'est aussi fort pratique et appréciable !

En effet, outre le fait de mettre mes codes sources à disposition, Trac me permet de jeter mes idées dans des tickets. L'avantage est que lorsque je reprend un dev' plusieurs jour après, je sais ce que je dois faire grâce à la liste des tickets ouvert !

Lire la suite...

eZipb : eZ publish et IPB réunis

eLors d'un précédent billet, j'avais parlé de la refonte de SPB et de mon projet d'extension ezipb pour permettre à eZ Publish et IPB de communiquer. J'ai bien avancé, voila ce que fait mon extension pour le moment :

  • Initialise les classes d'IPB strictement nécessaires (j'ai pompé et allégé l'index.php d'IPB).
  • Initialise des drivers MySQL modifiés à la place des drivers d'IPB.
    Ces derniers utilisent la connections ouverte par eZ. Comme eZ est orienté php4, mon extension force MySQL à la place de MySQLi qui est normalement automatiquement déclenché par la présence de php5. Cette fonctionnalité est désactivable si vous n'avez pas vos données eZ et IPB sur la même base.
  • Divers opérateurs eZ publish afin de récupérer les informations sur les membres.
  • Divers templates (1 pour le moment) afin d'avoir les éléments principaux d'IPB dans eZ publish.

Première version d'ezipb

Bref actuellement, le cout de mon extension est de 3 requêtes et j'ai pas encore entamé la chasse aux requêtes inutiles !

Comme je veux proposer cette extension ainsi que le portage vers IPB 2.3.x de la plupart de mes mods et task IPB, j'ai monté un Trac et un SVN afin d'assurer le support et de proposer un téléchargement via Subversion... IPB, je suis de retours !

Plus d'infos, documentation et téléchargment sur le Trac.

Remarque : J'utilise la version 3.9 communautaire compatible php5 d'eZ publish. Mon extension est donc en php5. Elle est donc incompatible avec la plupart des versions d'eZ publish... C'est ballot :-).

vendredi 31 août 2007

Mise à jour automatique de Dotclear 2.0 et de ses plugins, à partir du SVN (update)

Je mets très souvent mon blog à jour à partir de la dernière version SVN de Dotclear 2.0. Jusqu'à présent, je faisais un svn co sur ma machine locale, puis je virais les répertoires inutiles (rm -rf `find ./ -name .svn`) et enfin j'envoyais le tout sur mon ftp. On obtient alors une version de Dotclear à jour et sans fichiers .svn. Le revers de la médaille étant le temps passé à faire la manip'. Je me suis donc fais un petit script pour automatiser tout ça :

  1. Mise à jours des sources de Dotclear à partir du SVN.
  2. Mise à jour et téléchargement de nouveaux plugins à partir du SVN de Dotclear.
  3. Mise à jour de la base de données (visite de la page d'admin).
  4. Vidage le cache.

Comme je suis un Geek très flémard et qui n'a peur de rien : j'ai mis le tout en tâche cron.

#!/bin/bash
###############################################################################
#
# dc-svn-co :
# Mise à jour d'une installation Dotclear 2.0 à partir des sources du SVN.
#
# Dépendances requises :
#       - subversion
#       - curl
#
# Attention : L'utilisation de ce script permet de mettre à jour votre instance
# de Dotclear à partir d'une version dite instable !
# Utiliser à vos risques et périls !
#
# Licence Dotclear : http://www.dotclear.net/license.html
#
# by Guillaume Kulakowski a.k.a LLaumgui <guillaume at llaumgui dot com>
# Version 2.0
#
###############################################################################
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not,
#  - write to the Free Software
#       Foundation, Inc., 51 Franklin Street, Fifth Floor,
#       Boston, MA  02110-1301, USA.
#   - See http://www.gnu.org/licenses/gpl.html
###############################################################################


######################################
# Variables :

# Chemin vers l'installation de Dotclear :
DC_CORE_PATH="/home/www.xxx.com/www"

# Chemin vers les plugins de Dotclear :
DC_PLUGIN_PATH="$DC_CORE_PATH/plugins"

# Chemin vers le cache :
DC_CACHE_PATH="$DC_CORE_PATH/cache"

# Liste des plugins à récupérer à partir du svn :
DC_PLUGIN_LIST="antiflood commentsWikibar dayMode emailNotification gallery related sitemaps spamplemousse2"

# Chemin vers votre administration (pour la requête de mise à jour) :
DC_URL="http://www.xxx.com/admin/"


SVN_DC_URL="https://svn.dotclear.net/2.0/trunk"
SVN_DC_PLUGIN_URL="https://svn.dotclear.net/2.0/plugins"





######################################
# # #                            # # #
# # #   /!\ On touche plus /!\   # # #
# # #                            # # #
######################################

###
# Mise à jour à partir du SVN :
function svnCo() {

    cd "$1"
    svn co "$2" ./
}



###
# Mise à jour de la liste des plugins à partir du svn :
function svnPlugin () {

        for plugin in $DC_PLUGIN_LIST; do
                echo -e "\n\n###############  $plugin   ###############"
               
                # Création du répertoire pour les nouveaux plugins :
                if [ ! -d $DC_PLUGIN_PATH/$plugin ]; then
                        echo "Le répertoire $plugin n'existe pas !"
                        echo "Création du répertoire $plugin."
                        mkdir "$DC_PLUGIN_PATH/$plugin"
                fi;
               
                svnCo "$DC_PLUGIN_PATH/$plugin" "$SVN_DC_PLUGIN_URL/$plugin"
        done;
}



###
# Mise à jour de la base par appel de l'url de l'admin :
function updateDB() {

        curl $DC_URL
}



###
# On vide le cache
function cleanCache() {
       
        rm -rf "$DC_CACHE_PATH/cbfeed"
        rm -rf "$DC_CACHE_PATH/cbtpl"
}





echo "################################################################################"
echo "#                                                                              #"
echo "#               Mise à jour de Dotclear à partir des sources SVN               #"
echo "#                                                                              #"
echo "################################################################################"
svnCo "$DC_CORE_PATH" "$SVN_DC_URL"

echo -e "\n\n\n\n\n\n################################################################################"
echo "#                                                                              #"
echo "#                      Mise à jour de la liste des plugins                     #"
echo "#                                                                              #"
echo "################################################################################"
svnPlugin

echo -e "\n\n\n\n\n\n################################################################################"
echo "#                                                                              #"
echo "#                           Opérations de mise à jours                         #"
echo "#                                                                              #"
echo "################################################################################"
echo ""
echo -e "\n### Mise à jour de la base de données ###"
updateDB

echo -e "\n\n###          Vidage du cache          ###"
cleanCache

Je mets à disposition mon script (sous licence GPL) tout en précisant que son utilisation réfléchie ne pose pas de problème (pas plus qu'un checkout) mais qu'une mise à jour automatisée au moment où la révision Subversion plante (ça peut arriver), fait buger le site jusqu'à la mise à jour suivante...

Mise à jour : Métro-sexualisation du code pour un rapport par mail (crontab) plus lisible.