Archives de catégorie : Informatique

Mise à jour en 2.9

Attention la mise à jour s’est terminée en cours de mise à niveau de la base de données donc il se peut que celle-ci connaisse des pbs

Complément en passant par outil mettre à jour une deuxième mis à jour semble avoir corrigé le problème cette fopis ça va au bout.

Changement disque Acer sous Vista

Après m’être beaucoup documenté j’ai procédé au changement de disque d’un portable ACER. Pour faire cette opération j’ai décidé d’utilisé un livecd de gparted un disque dur et un boitier externe achetés sur topachat.
Visiblement il y avait deux obstacle possible le fonctionnement de la partition de restauration et la possibilité de redémarrer. J’ai aussi vu qu’il fallait éviter de démarrer avec deux disques avec des partitions windows.
Pour ce point certains sites signalait des problèmes en cas de redimensionnement de la partition. Donc j’ai compris le message …. on duplique avec gparted et on étend avec Vista.

la démarche :
d’abord booter avec gparted
un fois gparted lancé brancher le disque dur préalablement installé dans le boitier externe. Lancer la console …
Dupliquer la MBR et la table de partition en utilisant dd dans mon cas dd if=/dev/sda of=/dev/sdb bs=512 count=1
on se retrouve donc sur le disque externe avec trois partition la première étant la partition cachée de restauration. Pour éviter des erreurs ultérieur on n’y touche surtout pas …. et on fait une copie bit à bit de la première partition du disque d’origine.
dd if=/dev/sda1 of=/dev/sdb1;sync;sync et on peut aller chercher le courrier et payer une facture.
A ce stade on s’est donc occupé de la partition de restauration …
Dans la fenêtre de Gparted on fait reconnaître les périphériques, on pointe sur le disque /dev/sdb.
Les partitions 2 et 3 sont actuellement vide et inutile on peut donc les supprimer.
Toujours avec Gparted on peut donc faire un copier coller des partition /dev/sda2 et /dev/sda3 sur /dev/sdb bien faire attention de ne pas accoler la troisième partition si on veut plus tard pouvoir étendre la place réservée au système (par tranquilité je lui ai laissé 80Go). On applique les modifications et on peut aller manger. Quelques temps plus tard le clonage des partitions est terminé il faut rendre la partition système bootable et ça se fait par un simple clique droit sur /dev/sdb2 et on bascule le drapeau.
Il ne reste plus qu’à arrêter la machine, démonter le disque dur, et remettre celui qui était dans le boitier externe. On redémarre et tada !!! ça marche. Vista est lancé.
IL faut maintenant profiter de la place en étendant les partitions. Démarrer/ordinateur clic droit Gérer et dans l’outil aller dans la gestion des stockages l’extension des partitions ne prend que 5 minutes.

(par sécurité j’ai basculé sur en caché la partition système de l’ancien disque dur une erreur et si vite arrivée).

Un autre multiblog wordpress

Ceci est la reprise d’un fil initialement déposé sur wordpress-fr.net.

En plus de ce blog avec pdosqlite je gère aussi un groupe de blogs avec un installation classique … enfin presque.

L’objectif est d’avoir une seule installation de wordpress pour plusieurs blog, tous dans le même domaine mais éventuellement des sous domaine différents. Ces blogs sont hébergés sur le même serveur. Chaque blog a ses propres thèmes plugin.
par exemple le premier blog est adressé par
http://machin.domaine.tld/
le second par
http://truc.domaine.tld/blog/
et wordpress http://domaine.tld/wordpress
chaque blog doit ponter sur un répertoire contenant :
un répertoire wp-content, un .htaccess, un index.hp et bien sur le wp-config.php
le .htaccess contient simplement

# BEGIN WordPress
 
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
 
# END WordPress

index.php doit juste sauvegarder le chemin du wp-config et passer la main au wordpress installé. pour cela il utilise une constante et un variable de session.

le wp-config.php est à régler « as usual » avec comme rajout après la définition de WP-LANG

define ('WPLANG', 'fr_FR'); define('WP_CONTENT_DIR',dirname(__FILE__).'/wp-content'); define('WP_CONTENT_URL','http://personne.domaine.tld/blog/wp-content'); define('WP_URL','http://domaine.tld/wordpress'); define('COOKIE_DOMAIN','.domain.tld'); /* le point devant le domaine est important */
 
/* C'est tout, ne touchez pas au reste ! Bloguez bien ! */
if ( !defined('ABSPATH') )
  //define('ABSPATH', dirname(__FILE__) . '/');   define('ABSPATH', 'path_to_wordpress/'); /*modifier pour pointer sur wordpress*/

attention pour que WP_CONTENT_DIR soit pris en compte pour les téléchargements il faut que celui-ci ne soit pas renseigné dans l’écran Réglage/Divers

dans le wordpress installé il faut récupérer les information sur le wp-config à utiliser. Il faut donc modifier wp-load.php

<?php
/**
 * Bootstrap file for setting the ABSPATH constant
 * and loading the wp-config.php file. The wp-config.php
 * file will then load the wp-settings.php file, which
 * will then set up the WordPress environment.
 *
 * If the wp-config.php file is not found then an error
 * will be displayed asking the visitor to set up the
 * wp-config.php file.
 *
 * Will also search for wp-config.php in WordPress' parent
 * directory to allow the WordPress directory to remain
 * untouched.
 *
 * @package WordPress
 */
 
/** Define ABSPATH as this files directory */
define( 'ABSPATH', dirname(__FILE__) . '/' ); 
error_reporting(E_ALL ^ E_NOTICE ^ E_USER_NOTICE); session_start(); if(isset($_SESSION['config.php']))
    require_once($_SESSION['config.php']); elseif ( file_exists( ABSPATH . 'wp-config.php') ) {
 
	/** The config file resides in ABSPATH */
	require_once( ABSPATH . 'wp-config.php' ); 
} elseif ( file_exists( dirname(ABSPATH) . '/wp-config.php' ) && ! file_exists( dirname(ABSPATH) . '/wp-load.php' ) ) {
 
	/** The config file resides one level below ABSPATH */
	require_once( dirname(ABSPATH) . '/wp-config.php' ); 
} else {
 
	// A config file doesn't exist
 
	// Set a path for the link to the installer
	if (strpos($_SERVER['PHP_SELF'], 'wp-admin') !== false) $path = ''; 	else $path = 'wp-admin/'; 
	// Die with an error message
	require_once( ABSPATH . '/wp-includes/classes.php' ); 	require_once( ABSPATH . '/wp-includes/functions.php' ); 	require_once( ABSPATH . '/wp-includes/plugin.php' ); 	wp_die(sprintf(/*WP_I18N_NO_CONFIG*/'Je ne trouve pas votre fichier <code>wp-config.php</code>. J&rsquo;en ai besoin avant de lancer l&rsquo;installation.<br />Besoin d&rsquo;aide ? <a href='http://codex.wordpress.org/fr:Installer_WordPress'>En voici</a>.</p><p>Vous pouvez créer un fichier <code>wp-config.php</code> à l&rsquo;aide de notre interface Web, mais ça ne marche pas pour toutes les configurations de serveur. La méthode la plus sûre reste de créer le fichier à la main.</p><p><a href='%ssetup-config.php' class='button'>Créer le fichier de configuration</a>'/*/WP_I18N_NO_CONFIG*/, $path), /*WP_I18N_ERROR_TITLE*/'WordPress &raquo; Erreur'/*/WP_I18N_ERROR_TITLE*/);

Comme le point d’entrée pour récupérer le bon wp-config est bien l’adresse du blog et non pas celle de wordpress il est aussi nécessaire de modifier wp-includes/cron.php et remplacer get_option(‘siteurl’) par get_option(‘home’). Il se peut que cette manip soit à répéter dans d’autres fichiers mais pour l’instant elle semble suffire. Attention à ce point certaine extensions peuvent avoir un comportement …. bizarre dans ce contexte (exemple nextgen gallery) et donc nécessiter des adaptation

//origignal :	$cron_url = get_option( 'siteurl' ) . '/wp-cron.php'; 	$cron_url = get_option( 'home' ) . '/wp-cron.php';

accédez au blog pour le créer ne pas se tromper sur l’adresse de wordpress et du blog et c’est terminé … enjoy.

ce qu’il faut retenir :
Il est assez simple de faire du multiblog avec wordpress il suffit de définir comment wp-load récupère les informations du bon wp-config. On pourrait imaginer une solution avec une seule installation de wordpress mais autant de wp-config que de blogs et une utilsation du mod rewrite.

A vous de jouer et d’inventer d’autres mode de multiblog

(pour les utilisateurs de pdo sqlite j’ai été obligé d’utiliser la version 2.6.1 avant de pouvoir sauvegarder cet article)

Nouvelle version du thème

Je viens de changer la version du thème Paalam, donc c’est la version 2.0. Ce thème était hélas pas intertionalisé. J’avais déjà fais la manip sur la version 1.2 mais visiblement l’auteur n’avait pas repris les modification dans son svn.
Pour ceux qui le désire Le thème paalam i18n plus la version française.
Si par hasard vous voyez une coquille un bug ou une traduction approximative merci de me poster un commentaire sur ce billet.

Le General Purposes Plugin (JeePP)

Pour donner un coup de main à un utilsateur de wordpress français, j’ai bricolé un petit plugin que j’ai nommé pour le fun JeePP. Comme a priori il semble être utile pour plusieurs utilisateurs de wordpress, je vais lui accorder un article.
Un des utilisateurs m’a demandé si je pouvais en faire un widget et ma foi je trouve l’idée intéressante mais j’attendrai la prochaine version de wordpress qui doit simplifier l’API.le principe
ce plugin ne fait que permettre l’utilisation de la balise object dans les articles. Ce qui permet dans un article soit d’intégrer une applet, une animation flash soit une vue sur un site tiers (essayez vous devez pouvoir appeler la page d’accueil de google).

<?php
      /*
      Plugin Name: JeePP
      Description: General Purpose Plugin permet l'utilisation de la balise object dans les articles
      Plugin URI: http://bertrand.belguise.net/
      Author: Bertrand Belguise
      Version: 0.0.1
      Author URI: http://bertrand.belguise.net/blog/
      */
 
      #
      #  Copyright (c) 2008 Bertrand Belguise
      #
      #  JeePP 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.
      #
      #  JeePP 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 JeePP; if not, write to the Free Software Foundation, Inc., 59
      #  Temple Place, Suite 330, Boston, MA 02111-1307 USA
      #
      if (!CUSTOM_TAGS) {
        $allowedposttags['object'] = array(
          'data' => array(),
          'type' => array(),
          'classid' => array(),
          'height' => array(),
          'style' => array(),
          'width' => array()
        );         $allowedposttags['param'] = array(
           'name' => array(),
           'value' => array()
        );       };

en référence un article sur la balise object et la discussion originale sur wordpress français

ACER E261 2x2Go et Dual Channel

Je suis triste 😉 je me suis payé un kit dual channel 2x2go pour mon bel acer toutneuf …et il ne passe pas en mode dual channel.
Cela dit j’ai quand même une accélération notable des temps de réponse surtout dans les changements d’utilisateur qui deviennent enfin confortable. Je viens d’envoyer un petit mot au soutien ACER le problème semble être au niveau du bios puisqu’il ne me détecte (et donc teste) que 3Go.
Après quleque temps une réponse qui vaut son pesant de cacahouètes le chipset ne supporte que 3Go. C’est con mais dans les spécif de la machine Acer parlait de 4Go et ASUS visblement avec le même chipset (SIS672) annonce aussi 4Go.
Je crois que je n’aurais pas du l’acheter l’Acer.
A suivre ….

Gentoo linux sur Extensa E261 et carte SIS 671

Toujours dans le cadre de l’installation de ma nouvelle machine en double boot, j’ai constaté un non fonctionnement du driver sis de xorg.
Après un peu de recherche et quelques essais infructueux j’ai trouvé une réponse sur linux consulting.
En fait je n’ai eu besoin que de reprendre la troisième partie du patch du noyau celle qui concerne pciids.h.
Par contre il convient de recompiler le driver à partir des sources.
Un peu pénible .. mais ça marche et pour la première fois j’ai vu s’afficher une fenêtre X avec un serveur lancé sans paramètre !!! donc ça marche ++

Mod_rewrite ou l’art rachage de cheveux

Sous ce titre un peu funny un petit billet d’éclaircissement de la doc apache.
Après moult tâtonnements je suis arrivé à comprendre à quoi coreespondait le flag [C] de RewriteRule, en fait en cas de non réussite d’une condition tout les lignes RewriteRule ayant le même motif de recherche (le premier paramètre de la rewiterule) sont sautées. Et ben on ne peut pas dire que la doc était bien clair.

Petit plus je devais faire un aiguillage sur un site suivante l’hôte et tester que le premier champs de l’URL passée ne contenait pas le nom de l’hôte, pas mal de tentatives et quelques nuits passées ça me donne ça.

#Redirection des domaines
RewriteCond %{HTTP_HOST} ^(www.)?([^.]+).([^.]+)$ [NC]
RewriteCond %2%{REQUEST_URI} !^([^/]*)/1
RewriteRule ^(.*)$ /%2/$1

Comment ça c’est abscond ? avec cette règle chaque http://www.domaine.tld/url ou http://domaine.tld/url donne accès à /domaine/url sur le serveur concerné.
j’ai établi cette règle pour un site en construction sur les jeux

Je doit être un peu délirant

Actuellement j’utilise mg2 comme galerie, c’est en fait une qui se marie bien avec les hébergements Demo1G d’OVH. Globalement j’en suis satisfait mais intellectuellement ça me dérange que les galeries et sous galeries se partagent le même répertoire et que l’on puisse accéder directement aux images.
Lors des importations par paquet la génération des vignettes fait aussi souvent claquer le time out avec parfois des vignettes défectueuses.
Pour cela je pense soit reprendre MG2 soit réécrire une galerie à mon goût, avec la possibilité de mettre les photos hors vision du web et appelable uniquement à travers un script php. De plus la génération des vignettes se fera à la volée, ça donnera un peu plus de charge sur le serveur, et en cas de problème j’installerai un mécanisme de cache.
Pour l’instant j’ai créé une classe PHP générant les vignettes et gérant le watermark. Je pense compléter celle ci par un mécanisme pouvant générer des coins ronds ou des marques supplémentaires.
J’espère que ce projet ne va pas tomber aussi dans le cimetière des trucs abandonnés en chemin 😉

PS : autant je trouve MG2 sympa autant je trouve ardue son style d’écriture et son manque de documentation. C’est pourquoi j’envisage carrément une réécriture.