WordPress Mu à haute fréquentation ? Problèmes de pages blanches ?

23 août 2008 § 7

Les symptômes ?

  • Page blanche sur le tableau de bord et la page apparence
  • Page blanche lors de la publication d'un article et/ou d'un commentaire

Le problème intervient sur les installations WordPress Mu à haute fréquentation uniquement.

Cause possible ?

Créer un fichier info.php à la racine de votre blog, placez-y :

<?php phpinfo(); ?>

Enregistrez le fichier, consultez la page générée et partez à la recherche de l'extension eAccelerator pour PHP.

Si le module est présent; vous êtes simplement victime d'un bug avec les caches OPcode PHP et les fonctions de filtrage HTML Kses de WordPress. Cela provoque une erreur de segmentation PHP, et hop page blanche.

La solution ?

Désinstallez eAccelerator de votre serveur dédié. Installez à la place l'extension pour PHP, j'ai nommé Alternative PHP Cache (APC).

Et n'oubliez pas de filtrer le fichier kses.php de l'optimisation. Pour cela, ajoutez dans votre fichier de configuration de PHP la ligne suivante:

apc.filters = "(kses.php)"

Redémarrez votre serveur Web et hop problème résolu !

b2evolution et nginx : Comment résoudre le problème de redirection lors de la connexion à l’administration !

16 mars 2008 § 0

b2evo-logo-t Lorsqu'on utilise le logiciel de blog b2evolution, et le serveur HTTP Nginx, il se passe un petit bug lors de la connexion à l'administration.

En effet, une fois le login passé, le logiciel part dans une boucle infinie ! Et l'admin est inaccessible... Pas terrible pour blogger...

Pour résoudre ce petit bug, nous allons éditer le fichier admin.php se situant à la racine de b2evolution.

Et à la ligne 22, nous allons remplacer

if( ! empty( $_SERVER['PATH_INFO'] ) && $_SERVER['PATH_INFO'] != $_SERVER['PHP_SELF'] ) // the "!= PHP_SELF" check seems needed by IIS..

Par

if( ! empty( $_SERVER['PATH_INFO'] ) && $_SERVER['PATH_INFO'] != $_SERVER['PHP_SELF'] && 1 == 0 ) // the "!= PHP_SELF" check seems needed by IIS..

Avec cette petite modification, la condition n'est jamais remplie, l'administration fonctionne mais les anciennes url du type "/admin/plugins.php" ne seront plus rediriger vers "/admin.php".

Pour note, la variable PATH_INFO est différente de PHP_SELF, raison pour laquelle la condition est remplie et cela fait tout foirer :)

Mon diagnostic s'arrête la... faute de temps !

WordPress 2.3 et WordPress 2.5 : Quelques chiffres…

8 mars 2008 § 4

Les chiffres sont basés sur une installation propre de WordPress 2.3 et 2.5, le thème par défaut, aucun plugin actif, sans traduction, et sur le même serveur bien entendu !

Résultat sur la page d’accueil du blog

  WordPress 2.3 WordPress 2.5
Nombre de fichiers PHP lus 52 55
Nombre de lignes PHP lues 4691 4930
Nombres de requêtes SQL 23 22
Temps moyen de génération (en secondes) (moyenne sur 100 essais) 0.306 0.243
Variables globales 44 47
Consommation mémoire (en ko) 8762,064 9644.776

Pas grand chose à conclure au final…

WordPress, Memcached et PECL Memcache : La solution pour les blogs a gros trafic !

7 mars 2008 § 6

Votre blog WordPress rame sur votre gros serveur dédié? Voici quelques éléments de réponses…

En effet, j’ai eu l’occasion de tester différents caches (et "optimiseur") OPCode avec une grosse installation de WordPress :

Note: Les plugins permettent à WordPress d’utiliser les caches des utilitaires en lieu et place du système de fichiers (bien plus lent)

Alors, non il n’y aura aucun bench à l’appui de mon discours, juste un retour d’expérience…

APC, XCache et eAccelerator possèdent tous les 3 un point commun. Ceux sont des extensions pour PHP. De ce fait, leur installation est très simple, une ligne en plus dans le fichier php.ini et tout fonctionne ! (ou presque)

A contrario, Memcached n’est pas spécifique à PHP, il peut être utilisé par n’importe quel type de langages… C’est une technologie de cache générique. De ce fait, il est nécessaire d’installer un service sur votre serveur, et une extension à PHP. Autre différence, Memcached n’optimise pas le traitement PHP, il ne fait que de la mise en cache.

Revenons à des choses plus générales…

A quoi sert à ces outils ? A réduire la charge serveur non ?

Donc pour réduire la charge serveur, il faut optimiser l’exécution de PHP pour que ce dernier passe moins de temps sur chaque traitement.

Chose que font a merveille APC, eAccelerator et Xcache avec leur optimisation et cache interne.

Cool ? Non pas vraiment…

Ces outils ont tendance à être plus gourmand en consommation processeur, du coup, le traitement est optimise, plus court probablement, mais la consommation CPU de votre serveur augmente… Donc votre serveur est plus lent…

L’effet recherché n’est pas la…

Que faire alors ?

Que faire alors ?

Et bah contrairement à nos 3 gugusses, Memcached ne gère que la mise en cache, et il le fait très bien, et il le fait surtout de manière économique pour le processeur… Du coup, l’utilisation de Memcached est bien plus efficace.

Alors maintenant, la charge du serveur a baissée… mais les pages mettent toujours 2 secondes pour s’afficher, vu que le code PHP de WordPress n’est pas optimisé…

Un casse tête ? Pas vraiment…

eAccelerator et Memcached fonctionne très bien à 2…

  • eAccelerator optimise le code PHP
  • Memcached met en cache les résultats et diverses variables PHP

Et voila le duo gagnant, vos page sont rapides, et la charge de votre serveur est correcte…

Quelques chiffres… sur une journée (24h):

  • eAccelerator seul :  0.8 (consommation CPU moyenne)
  • Memcached seul : 0.6
  • eAccelerator + Memcached  : 0.4

Le choix coule de source…

Maintenant quelques ressources

Un tutorial pour installer une version récente de Memcached sur une Debian Etch

Il existe un plugin WordPress pour memcache, mais ce dernier utilise une classe d’émulation à la place de l’extension PHP. Cela va s’en dire que les performances sont moindres… vu que le code PHP est plus lent que l’extension en C…

Je mets donc à disposition une classe de cache exploitant l’extension PECL:Memcache et Memcached pour WordPress !

Cette classe est théoriquement compatible avec WPmu, mais je n’ai pas encore testé.

Ryan, un des développeurs de WP, donne quelques infos sur sa version de memcache.

Et contrairement à lui, la méthodologie pour ajouter vos serveurs Memcached à mon plugin est la suivante:

$memcached_servers[] = array( ‘host’ => ’127.0.0.1′, ‘port’ => 11211, ‘persistant’ => true );

C’est un point que je n’aborde pas, mais Memcached peut être répandu sur des clusters de serveurs… c’est la méthode WordPress.com !

Dernier point

Je base cet article sur mon expérience de différents serveurs, 3 différents. Le raisonnement est vérifié sur ces 3 serveurs.

Si vous avez d’autres techniques… je suis preneur :)

Techdays 2008 – Jour 2

13 février 2008 § 4

Pour cette deuxième journée, et dernière pour moi, j’ai eu l’occasion d’assister 2 sessions.  Que 2 sessions sur 6 possibles ? Eh oui, que 2 sessions ! Pour plusieurs raisons…

  1. Je n’ai pas fait la plénière de ce mardi (véritable perte de temps pour les personnes connaissant un peu leur sujet)
  2. Le temps où je suivai le maximum de session est révolu. Si c’est pour avoir oublié de quoi parler la première session de la journée à 18 heures, je ne vois pas trop l’intérêt…
  3. Mes critères de choix de session sont assez draconiens. (les sessions level 100 et découverte sans moi… bye bye également les sessions PHP, VB et C#. Sans oublier les retours d’entreprise, les sessions pour décideur, et CRM/ERM, etc.)

Bref, les 2 élues sont :

  1. Windows Server 2008 : nouveautés de sécurité
  2. [Recherche] Singularity: un Operating System révolutionnaire

Rentrons dès maintenant dans le vif du sujet !

1. Windows Server 2008 : nouveautés de sécurité

microsoft Boxe_0201407 013 Cette session consacrée a la sécurité dans Windows Server 2008, était animée par 2 excellents speakers Stanislas Quastana et Cyril Voisin. Ces 2 messieurs ont découpé la session en 4 points importants:

  • La sécurité du système lors de la conception du système
    • Le nouveau cycle de développement de MS, mise en place la première fois dans Windows Vista et dont Windows Server 2008 utilise et améliore. (Vista SP1 et Server 2008 partagent le même noyau)
  • La sécurité système
    • Nouvelles techniques de cryptage (composant enfichable)
    • Plusieurs stratégies de sécurité sur un même domaine
    • Windows Server Core 2008 (je vais en reparler)
  • La sécurité du réseau
  • La sécurité des données

La révélation de ce nouveau système est sans aucun doute, Core Server, qui donne la possibilité d’installer un système minimal (sans explorateur Windows, sans ie, sans bureau). Juste un Shell Windows !

Intérêt ?

  1. Consommation mémoire réduite
  2. Surface d’exposition moindre (moins de possibilités de failles)
  3. Geeks heureux…

Tout en sachant qu’il est tout à fait possible d’administrer le serveur à distance. Bientôt le retour de Windows Server 2008 dans le coeur des administrateurs Linux ?

Première réflexion de Seb une fois le chapitre sur Core Server, y’a un APT GET ? :D ! Comprendra qui pourra….

2. [Recherche] Singularity: un Operating System révolutionnaire

Cette session, un peu particulière, vue qu’elle traite d’un projet de Microsoft Research, et non un produit de Microsoft Corp. Elle a été présente par Bernard Ourghanlian, CTSO France de Microsoft. (Chief Technical and Security Officer) Du costaud autrement dit !

C’est quoi Singularity ?

Bonne question… Singularity est un système d’exploitation révolutionnaire ! Enfin pas vraiment, ce projet n’a pas pour but de réinventer la roue, son objectif n’est pas non plus d’améliorer les performances.

Son objectif est toute autre… Son objectif est de développer un système d’exploitation prenant compte de l’environnement matériel d’aujourd’hui.

Peut être que vous ne le savez pas, mais Windows XP, Mac OS X, Linux sont développés sur des concepts élaborés selon les ressources matérielles des années 75/80.

Des années lumières par rapport aux configurations de nos jours… (Pour l’anecdote j’ai commencé avec un Pentium 75 disposants de 32 Mo de RAM et d’un disque dur de 800 Mo ! Un téléphone de nos jours peut disposer de bien plus de puissance…)

Singularity est là pour changer la donne, et permettre d’exploiter à 100% le matériel de notre époque, tout en profitant des langages de développement moderne, tels que le C#.

Pour cela il porte de grandes modifications dans l’utilisation de la mémoire, la gestion des processus, etc.

Je ne vais pas m’attarder plus sur le sujet pour le moment. Je vous conseille de lire les ressources suivantes, tout en sachant que je vais peut-être m’amuser à tester le projet à l’état actuel, et probablement écrire (ou co écrire avec Sebastien) un article sur la chose…

Pour aller plus loin:

Quelques photos des slides de la presentation:

S7300172 S7300173 S7300174 S7300175 S7300176 S7300177 S7300178 S7300179 S7300149 S7300150 S7300151 S7300152 S7300153 S7300154 S7300155 S7300156 S7300157 S7300158 S7300159 S7300160 S7300161 S7300162 S7300163 S7300164 S7300165 S7300166 S7300167 S7300168 S7300169 S7300170 S7300171

TechDays 2008 – Jour 1

12 février 2008 § 2

Et me revoilà replongé dans l’univers impitoyable des technologies Microsoft ! En effet, comme tous les ans, j’ai l’occasion d’aller au salon Microsoft Techdays a Paris.

C’est l’occasion de re-découvrir les technos d’aujourd’hui, mais aussi, et surtout de découvrir celle de demain !

Au menu de cette première journée :

  1. La session plénière
  2. IIS7 pour les développeurs
  3. Introduction a F#
  4. LINQ : Session avancée

Première journée orientée développement comme vous pouvez le constater… (ou pas)

1. La session plénière du lundi

Tradition oblige, chaque journée des Techdays commence par la traditionnelle session plénière dans l’amphithéâtre de 3723 places.

Cette session a comme objectif de faire le tour d’ensemble des nouvelles technologies de Microsoft en 2008, et en très très gros, comment ça marche, qu’est-ce que c’est… c’est surtout pour donner un aperçu, tout en sachant que des sessions plus techniques (et plus intéressantes) suivent le reste des 3 jours.

Nous avons également eu droit à un petit message vidéo du retraité le plus riche de la planète (Bill Gates), nous racontons comme d’habitude des choses incroyablement passionnantes. (Son nouveau téléphone est plus puissant que son premier PC, scoop non ?)

Bref, Bill a dit qu’on était en 2008 (c’est toujours bon a savoir), et que Microsoft nous fournissait des logiciels de notre époque, productivité, travail collaboratif, tout ça…

2. IIS7 pour les développeurs

Première vraie session de mes TechDays 2008, une session sur le serveur HTTP de chez Microsoft, IIS7 ! Cette session était un peu particulière pour moi, vu qu’elle était présentée par mon camarade SUPINFO et ami Sebastien Warin (sa toute première fois :D). Pour cette conférence, il était accompagné de Sebastien Bovo de chez Microsoft France.

Autrement dit, je connaissais déjà un peu le sujet avant de venir à cette session. J’ai donc joué au photographe avec des appareils photos compacts… et mon dieu… qu’est-ce que j’aime mon reflex… a quand le reflex qui rentre dans une poche de chemise…

Le voilà en image (une des rares photos pas flous), Sebastien Warin, Speaker Techdays 2008.

S7300139

Il est précisément en train de se demander pourquoi sa démo ne marche pas :) (ou ptete qu’il découvrait les slides :D)

Trêve de plaisanterie, les 2 Sébastien nous ont montrés en démo, les nouveautés apportées par IIS7, qui sont en gros:

  • Modularité a 100%
  • Configuration via XML a 100%
  • Intégration a la plateforme .NET à 100%
  • Gain « probable » de performances grâce à la modularité par exemple :)

Pour le résumé de la session, c’est par ici: IIS7 pour les développeurs

Pour allez plus loin (en attendant les Webcasts) :

3. Introduction a F#

Pour cette seconde session, j’ai assisté à une présentation, en anglais, du langage F#, animé par Don Syme, qui n’est qu’autre que son concepteur.

Pour résumé, le F# est:

un langage dérivé de Caml et conçu spécifiquement pour la plateforme .NET. C’est un langage fonctionnel (et incitant ce mode de programmation), entièrement orienté objet (même les entiers sont des objets et peuvent avoir des méthodes) et supportant la programmation impérative.

Source: Présentation de F#

C’est très intéressant, très complexe, très différent aux habitudes de développement habituelles. Je m’explique…

De nos jours, un scientifique met au point un algorithme très complexe. Super, mais comme vérifier et exploiter les résultats ?

Et bah il faut faire appel a des développeurs qui vont interprète l’algorithme pour le passer en langage « machine », comprendre en python, en C#, en Java, etc.

Le F# tend vers l’élimination de cet intermédiaire. En proposant des langages de développement plus fonctionnel, et donc plus accessibles à des scientifiques… à des experts financiers, etc.

Rien d’innovant, sauf que F# conserve toute l’intégration de la plateforme .NET… Les librairies .NET, la programmation-objet, et tous les outils de développements Microsoft. D’où l’intérêt…

C’est un sujet très intéressant, je vous conseille vivement de consulter le site de Laurent Le Brun’s qui propose des cours de F#.

Il y a plein de choses à découvrir…

4. LINQ : Session avancée

Pour finir cette journée, j’ai assisté à une session de Mitsu. Il nous a parlé de choses un peu complexes avec la technologie de requetage Linq.

C’est quoi Linq ? Linq c’est une nouveauté apportée par le C# v3. Cela permet d’exécuter des requêtes « SQL », dans différentes sources de données, jusque-là rien de nouveau ! Mais là où Microsoft fait fort, c’est qu’on peut faire du Linq depuis du XML, des bases SQL serveur, mais aussi depuis des collections d’objets !

C’est trop le genre de truc à implémenter en PHP :P

Je ne m’attarde pas plus sur Linq, vu que le produit été déjà présenté au TechDays 2007 ! (c’est tout sauf une découverte).

Le mot de la fin

2 photos faites depuis une terrasse sur le toit du palais des congrès (ou apparemment Seb est plus dans son élément…). Il fait beau, pas trop froid, y’a une belle vue… Que demander de plus pour décompresser du rush permanent de ce salon ;)

S7300143 S7300146

Technorati: techdays 2008

La tabulation lors d’une copie avec l’éditeur de texte VIM ! Solution…

24 janvier 2008 § 2

200px-Vim-(logiciel)-Logo Vous avez déjà essayé de copier un code indenté via l’éditeur VIM ? (par le biais de Putty par exemple)

C’est l’enfer non ?

Pour ceux qui n’ont jamais expérimenté, Vim a tout simplement l’habitude de rajouter des espaces aléatoires sur chaque ligne du texte copiés, bref c’est illisible…

J’ai donc effectué quelque recherche sur le Web et j’ai trouvé la modification à effectuer sur la configuration de VIM.

Pour cela, il vous faut éditer le fichier: (pour Debian Etch)

vim /etc/vim/vimrc

Pour ajouter à la fin du fichier le code suivant:

set paste

C’est déjà terminé ! Vous également décommenter la ligne:

syntax on

Pour profiter de la coloration syntaxique dans VIM ;)

Et les copier/coller redeviennent un jeu d’enfant ;)

Here With Me sur son nouveau serveur !

2 décembre 2007 § 2

debian-logo-portrait Si vous lisez ce message, c’est que vous consultez mon blog depuis le nouveau serveur !

Parlons un peu du nouveau serveur…

C’est un dédié OVH dont voici quelques caractéristiques techniques:

  • Intel Core2Duo E6550
  • 64 bits
  • 2 Go DDR2
  • 2x 250 Go SATA2 RAID 0/1
  • 100 Mbps

Logiciellement parlant… nous avons fait une configuration exotique:

  • Debian Etch 64 bits
  • MySQL 5
  • PHP5 via FastCGI
  • Bind 9
  • Serveur HTTP Nginx
  • Ruby 1.8
  • Mongrel
  • Python 2.4
  • Postfix
  • Courier (POP, IMAP)
  • Spamassassin
  • Amavis
  • Pure FTPD

Voilà pour le gros des logiciels.

Ci-dessous les guides utilisés pour arriver à nos fins:

Si vous avez des suggestions ou des questions… ;)

Where Am I?

You are currently browsing entries tagged with Serveur at Here With Me.