Catégories
Blog Open-source Planet-libre Web

Le blog de Nicolargo a son application IOS

Mon ami Nicolas Richasse vient de finaliser la première version de l’application du « Blog de Nicolargo » pour iPhone, iPod et iPad. Cette application est d’ores et déjà téléchargeable gratuitement sur l’Apple Store. (voir ici la page officielle de l’application pour plus d’informations).

Vous devez trouver plutôt causasse le fait que ce blog dispose d’une application pour iPhone (axe du mal propriétaire) plutôt que pour Android (les gentils libristes)…

La raison principale est assez simple. Nicolas Richasse m’a proposé de développer gratuitement cette application pour « se faire la main » sur le développement d’application sous IOS. Disposant d’un iPhone 4 à la maison, je n’ai donc pas hésité longtemps (si une âme généreuse veut faire la même chose sous Android je suis preneur :)).

Cependant notre « bon coté de la force » nous a poussé à réfléchir à un modèle plus en accord avec nos convictions. Après quelques discussions avec lui, nous avons donc décidé de proposer l’application sous licence GPL v2.

Elle sera disponible au téléchargement et librement « adaptable » à votre blog dans quelques temps (sur une forge qu’il nous reste à identifier). Nicolas souhaite juste avoir un peu de temps et de recul sur l’application pour proposer une code documenté et facile à forker pour d’autres blogs sous WordPress..

Il faut donc considérer l’application IOS du Blog de Nicolargo comme une démonstration de ce code open-source.

A télécharger, tester puis commenter sans modération !


Que pensez-vous de cette initiative ?

Etes-vous intéressé pour développer un « fork » de cette application pour votre blog ?

Souhaitez vous participer au développement de l’application « core » pour l’améliorer  ?

A vos commentaires…

PS: l’application est bien entendu gratuite. Si vous voulez soutenir Nicolas Richasse  dans son développement vous pouvez acheter son application iNumber qui reprend grosso modo la règle des chiffres de l’émission des chiffres et des lettres.

Catégories
Blog

Podium des billets de la semaine #44

Si vous étiez en vacance la semaine dernière, session de rattrapage avec ce petit billet qui donne le top 3 des billets de la semaine passée:

Médaille de bronze: 7 choses à faire après l’installation de Fedora

Médaille d’argent: 8 choses à faire après l’installation d’Ubuntu

Médaille d’or: Mon desktop 201011

Catégories
Blog Open-source Planet-libre Web

Bye bye Pino. Hello Hotot.

Dans la grande « mouvance » du Web 2.0, les systèmes de micro-blogging sont pour moi la réelle révolution pour diffuser et récolter des information.s Tout autant que mes flux RSS, mes comptes Twitter (@nicolargo) et Identi.ca forment une source constante d’informations.

A mes débuts sur Twitter (juillet 2007 :), putain 3 ans…), j’utilisais exclusivement l’interface Web Twitter, puis sont arrivés les clients de micro-blogging sous GNU/Linux avec en tête Gwibber (le client officiel sous Gnome). Après l’excitation de la nouveauté, je me suis vite rendu compte de la lourdeur et de ses bugs récurrents de ce logiciel (surtout si vous avez une version GNU/Linux non Anglaise…).

J’ai alors découvert Pino, un vrai bonheur ! Un client simple, léger, bien intégré à ma distribution Ubuntu. Je l’ai encore intégré à mon processus de publication interne. Malheureusement, début septembre 2010, Twitter décide de migrer son système d’authentification vers OAuth (un protocole ouvert). Et là patatra… A ce jour et malgré une bidouille pour permettre une authentification à Twitter par un site tiers, l’auteur de Pino n’a toujours pas fait évoluer son logiciel dans la fameuse version 0.3 sensée corriger le problème. De plus les premiers échos de cette nouvelle version ne sont pas très positifs (interface plus lourde notamment).

J’ai donc décidé d’utiliser un troisième client en lieu et place de Pino. Ce client s’appelle Hotot et il est développé par une équipe asiatique  très réactive. En plus du support de Twitter et d’Identi.ca (moyennant une petite configuration dans les menus), il promet une gestion multi-timelines (c’est à dire un mix de vos différents comptes) dans une prochaine version. Visuellement Hotot apporte son lot d’améliorations par un système de plugins (comme l’affichage des images en preview).

Update

Hotot vient juste d’être mis à jour (suite à la lecture de ce billet??? :)): support Identi.ca et multi-timelines !!!

A installer à partir des PPAs.

/Update

En attendant la suite, je choisi pour l’instant Hotot !

Et vous ?

Catégories
Blog Open-source Planet-libre Web

Booster votre site n’est pas qu’un truc de geek

Depuis la généralisation des accès hauts débits sur Internet, la rapidité de chargement d’un site est devenu un critère important à prendre en compte dès la phase de conception.

Les moteurs de recherche (Google, Yahoo, Bing…) incluent dans leurs algorithmes la vitesse d’affichage de votre site. Ainsi, Google considère qu’une page est lente si elle met plus de 4.97 secondes pour se charger. La rapidité de chargement aura donc un impact plus ou moins important (difficile d’avoir des chiffres précis) sur le référencement de votre site.

Une étude a montrée qu’un utilisateur venant sur votre site à partir d’un moteur de recherche aura une patience d’environ 4 secondes. Au delà de cette valeur le taux d’abandon devient important.

Bref, vous l’avez compris, le temps de chargement des pages est un paramètre tout aussi important que le design quand vous mettez un site en ligne.

Je me suis penché sur ce sujet lors de conception de la nouvelle version du blog de Nicolargo. Il en ressort quelques billets ciblés sur les problèmatiques de performances des blogs WordPress (basée sur des solutions libres bien sûr :)):

Au niveau des outils de tests, le Web fourmille de service en ligne. Attention lorsque vous faite vos tests de choisir des URL représentatives (pas seulement un test sur votre Home page qui ne représente que 1% de vos visiteurs…). Personnellement, j’utilise surtout:

  • GTMetrix qui permet d’automatiser le test de votre site en calculant automatiquement les valeurs Y-Slow, Page Speed.
  • WebWait: très utile pour tester les modifications que vous faites sur votre site et en mesurer l’impact en terme de vitesse de chargement.
  • Apache Benchmark (ab pour les intimes): un outil libre sous licence Apache permettant de tester la montée en charge de votre site (c’est à dire comment votre site va réagir quand beaucoup d’utilisateurs vont le consulter simultanément). Un exemple de ligne de commande que j’utilise en local sur mon serveur:

ab -t 30 -c 5 http://blog.nicolargo.com/2010/10/booster-votre-blog-wordpress-avec-varnish.html

Requests per second:    578.10 [#/sec] (mean)

Time per request:       8.649 [ms] (mean)

Time per request:       1.730 [ms] (mean, across all concurrent requests)

Transfer rate:          329.82 [Kbytes/sec] received

Et vous blogueurs, webmasters, comment prenez-vous en compte la problématique de rapidité d’affichage de vos pages ?

Catégories
Blog Open-source Planet-libre

Architecture pour un blog optimisé

Hier, j’ai passé une grande partie de ma journée dans les aéroports, j’en ai profité pour résumer dans un schéma quelques techniques d’optimisations que l’on peut actuellement mettre en place pour booster son blog.

Depuis que Saint Google prend en compte le temps de chargement des pages dans ses algorithmes, le sujet est devenu très à la mode. AntoineJérôme et moi même avont abordé récemment  le sujet dans nos blogs respectifs.

J’aimerai que l’on échange sur cette architecture afin que je puisse faire évoluer ce schéma.

Vous pouvez également récupérer le schéma au format Dia.

Catégories
Blog Nagios Open-source Planet-libre

Le forum de Nicolargo n’est plus. Mais…

En janvier 2009, j’avais lancé le forum de Nicolargo. Un forum pour les lecteurs de ce blog, un lieu virtuel pour continuer les discussions engagées dans les commentaires. Suite au hack de mon serveur, je me suis posé la question de l’avenir de ce site.

Au fil du temps ce forum est devenu un lieu d’échange vivant et actif, notamment grâce à la contribution de certains lecteurs (ils se reconnaîtront). Cependant, les discussions se sont trop focalisées, à mon gout, sur le petit monde de la supervision système et réseau. Or le Blog de Nicolargo n’est pas un blog sur Nagios. Je publie d’ailleurs de moins en moins de billet sur ce sujet.

A partir de ces constatations, j’ai décidé de fermer le forum (c’est à dire de ne pas le ré-ouvrir).

Cependant tout n’est pas perdu, je suis en entré en contact avec Romuald, administrateur du forum Monitoring-Fr. Dès son retour de congés (octobre 2010), il s’occupera d’importer dans ce forum tout les utilisateurs et discussions du forum de Nicolargo. Ainsi rien de vos discussions ne sera perdu !

De mon coté, je vais me focaliser sur le blog qui me prend déjà beaucoup (trop ?) de temps.

Catégories
Blog Open-source Planet-libre Web

Analyser les logs de votre serveur Web avec AWStats

L’analyse des logs des sites Web est de plus en plus externalisé sur des services en ligne dans la veine de Google Analytics. Bien que ces services soient très bien fait, il peut être utile, pour des raisons techniques ou de confidentialité, de faire cette analyse directement sur vos serveurs. Nous allons donc dans ce billet mettre en place le logiciel AWStats pour qu’il analyse les logs générés par un serveur Apache.

La procédure est faire sur une distribution Ubuntu Server 9.04 mais pourra très bien être adapté sur d’autre versions/distributions.

Installation de AWStats

AWStats existe sous la forme de package Debian like (sinon vous pouvez toujours télécharger et compiler à partir des sources):

sudo aptitude install awstats

Les fichiers de configuration se trouvent dans le répertoire /etc/awstats. On va partir du template awstats.conf pour générer le fichier de configuration pour notre serveur (monbeaudomaine.com).

sudo cp /etc/awstats/awstats.conf /etc/awstats/awstats.monbeaudomaine.com.conf

Puis on édite ce fichier, notamment les lignes suivantes:

LogFile= »/var/log/apache2/monbeaudomaine-access.log »

LogFormat=1

SiteDomain= »monbeaudomaine.com »

On finalise l’installation en générant la base de données (stockée dans le répertoire /var/lib/awstats):

sudo /usr/lib/cgi-bin/awstats.pl -config=monbeaudomaine.com -update

Attention: cette étape peut prendre un certain temps selon la taille du fichier de log.

Puis on automatise la mise à jour (toutes les 10 minutes) de cette base en éditant le fichier crontab /etc/cron.d/awstats (il faut adapter la ligne de commande à votre nom de domaine):

0,10,20,30,40,50 * * * * www-data [ -x /usr/lib/cgi-bin/awstats.pl -a -f /etc/awstats/awstats.monbeaudomaine.com.conf -a -r /var/log/apache2/monbeaudomaine-access.log ] && /usr/lib/cgi-bin/awstats.pl -config=monbeaudomaine.com -update >/dev/null

Il faut bien vérifier que www-data a les droits:

  • en exécution sur le script /usr/lib/cgi-bin/awstats.pl
  • en lecture sur le fichier /etc/awstats/awstats.monbeaudomaine.com.conf
  • en lecture sur le fichier /var/log/apache2/monbeaudomaine-access.log

Les nouveaux fichiers de log (générés par logrotate) ne seront pas créés avec les bons droits, il faut donc modifier le fichier /etc/logrotate.d/apache2:

create 640 root www-data

Et vérifier que les répertoire et fichiers existant on les bons droits:

chmod 2755 /var/log/apache2/

chgrp -R www-data /var/log/apache2/

Avant d’accéder à l’interface Web de vos stats, il faut ajouter le fichier de configuration /etc/apache2/conf.d/awstats.conf à Apache:

Alias /awstatsclasses « /usr/share/awstats/lib/ »

Alias /awstats-icon/ « /usr/share/awstats/icon/ »

Alias /awstatscss « /usr/share/doc/awstats/examples/css »

ScriptAlias /awstats/ /usr/lib/cgi-bin/

<Directory « /usr/lib/cgi-bin/ »>

Options ExecCGI

AllowOverride None

AuthName « AWStats Access »

AuthType Basic

AuthUserFile /etc/awstats/htpasswd.users

Require valid-user

</Directory>

Puis on relance le serveur:

sudo /etc/init.d/apache2 restart

Utilisation de AWStats

Si l’installation c’est bien passé, une navigation vers la page http://localhost/awstats/awstats.pl?config=monbeaudomaine.com devrait afficher vos statistiques.

Si vous avez le message d’erreur suivant:

Error: SiteDomain parameter not defined in your config/domain file. You must edit it for using this version of AWStats.

Setup (‘/etc/awstats/awstats.conf’ file, web server or permissions) may be wrong.

Check config file, permissions and AWStats documentation (in ‘docs’ directory).

C’est que vous avez surement mal saisi l’URL http://localhost/awstats/awstats.pl?config=monbeaudomaine.com. Il faut bien vérifier que monbeaudomaine.com correspond au fichier de configuration /etc/awstats/awstats.monbeaudomaine.com.conf.

Sources:

Catégories
Blog Open-source Systeme

TweetDeck sous Ubuntu avec Twitter et Identi.ca

Depuis que Twitter a basculer son système d’authentification sur OAuth, le client de micro-blogging Pino que j’utilisais sur mon PC Ubuntu ne fonctionne plus (à ce sujet je viens de lire ce billet de Web8 qui propose une bidouille pour refaire marcher Pino 0.2 avec Twitter)…

A la recherche d’un nouveau client de micro-blogging, je me suis dans un premier temps retourné vers Gwibber (le client standard sous Ubuntu 10.04). Mais j’ai beau faire des efforts, je n’arrive pas à trouver ce logiciel plaisant à utiliser. Le le trouve lourd, peu lisible… bref je n’accroche pas.

Lors d’une discussion avec un lecteur, je suis tombé sur TweetDeck: un client de micro-blogging complet mais non-libre et utilisant Adobe Air (il partait pas super bien dans mon échelle de valeurs…).

Après quelques jours d’utilisations, je pense cependant l’adopter en attendant de trouver (enfin) une solution libre alternative (peut être Pino 0.3…).

Installation de TweetDeck sous Ubuntu

On doit commencer par installer Adobe Air avec la commande suivante:

sudo aptitude install adobeair

Après un redémarrage de votre navigateur Web, il suffit de ce rendre sur la page suivante et de cliquer sur le bouton « Download now, it’s free ».

Puis de suivre l’installation graphique…

Configuration de TweetDeck pour votre compte Twitter

TweetDeck permet de configurer des comptes Twitter, Facebook, LinkedIn, Foursquare, Buzz et Myspace.

La configuration de votre compte Twitter est des plus simple, il faut aller dans le menu Setting > Accounts, puis cliquer sur le bouton Add new account > Twitter et enfin renseigner les informations sur votre compte:

Configuration de TweetDeck pour votre compte Identi.ca

TweetDeck ne supporte pas Identi.ca par défaut. Heureusement, Identi.ca utilise une interface standard de communication. Il est donc possible d’ajouter un compte Identi.ca.

il faut aller dans le menu Setting > Accounts, puis cliquer sur le bouton Add new account > Twitter (oui oui il faut bien cliquer sur le bouton Twitter) et enfin renseigner les informations sur votre compte. Avant de cliquer sur le bouton Verify details, il faut cliquer sur le lien Advanced Options (Alpha) puis saisir l’URL: http://identi.ca/index.php/api/

Et voilà, une solution non-libre en attendant Pino 0.3 !

Vous utilisez quoi comme client de micro-blogging ?

Catégories
Blog Open-source Systeme Web

12 étapes pour optimiser les performances de son blog WordPress

Lorsque l’on choisi d’héberger son blog WordPress (sur un serveur dédié ou virtuel), la problématique des performances vient assez vite sur le tapis. En effet, l’optimisation du blog permet non seulement de réduire le temps de chargement des pages (et donc d’être bien vu par seigneur gOOgle) mais également de dimensionner au plus juste son serveur: gain de temps d’un coté, gain d’argent de l’autre.

Nous allons donc dans ce billet parcourir une liste non exhaustive de techniques d’optimisations:

  • ETAPE 1: Hardware
  • ETAPE 2: Noyau Linux
  • ETAPE 3: Mise à jour du système d’exploitation
  • ETAPE 4: MemCached
  • ETAPE 5: Les modules Apache
  • ETAPE 6: Configuration d’Apache
  • ETAPE 7: XCache (PHP)
  • ETAPE 8: MySQL
  • ETAPE 9: WP-DBManager
  • ETAPE 10: W3 Total Cache
  • ETAPE 11: Thème WordPress
  • ETAPE 12: Tester/Surveiller

Les commentaires seront bien sur là pour nous faire partager vos solutions !

Le hardware

ETAPE 1) C’est un peu le serpent qui se mort la queue… En effet il est assez difficile de dimensionner le hardware d’un serveur sans avoir fait les optimisations est sans connaitre précisément le trafic du blog (surtout vrai pour les nouveaux blog).

C’est en partie pour ces raisons qui j’ai choisi un serveur VPS de chez Gandi. En effet il est possible d’augmenter ou de diminuer les « parts » affectées à son serveur de manière dynamique (une « part » correspond à une ressource CPU, mémoire et disque).

J’ai actuellement « 3 parts » sur le serveur du Blog de Nicolargo mais je m’en sers également pour d’autres besoins (je pense que pour ce blog, un serveur avec « 2 parts » suffirait largement). Pour une première expérience dans le monde du blogging, un serveur « 1 part » devrait convenir (environ 12€ HT par mois).

Je n’entrerai pas dans les discussions sur le coups relativement élevé de cette solution par rapport à un serveur dédié comme l’offre Dedibox de Online.net.

Le système d’exploitation

L’optimisation du système d’exploitation dépend bien sûr de la distribution Linux utilisée. Lors de la création de mon serveur j’ai choisi d’utiliser Ubuntu Server 8.04 que j’ai fait évolué en 9.04. Pourquoi cette distribution GNU/Linux ? Tout simplement car c’est celle que je connais le plus…

ETAPE 2 ) On commence par optimiser le noyau Linux . Je passe rapidement sur les explications. Il existe de nombreux article sur le net détaillant ces configurations. La configuration donnée est celle de mon serveur VPS (3 parts, 1 Go de RAM), elle doit être adaptée à votre configuration hardware.

Il faut éditer/modifier le fichier /etc/sysctl.conf (disponible sur GitHub):


Puis on applique:

sudo sysctl -p

Sources:

ETAPE 3) La première chose à faire quand on administre un serveur est bien entendu de le maintenir à jour au niveau des logiciels systèmes et applicatifs. Pour cela je m’aide d’un petit logiciel nommé cron-apt. Ce dernier permet de m’avertir par mail quand une mise à jour est disponible (par exemple une nouvelle version d’Apache ou une librairie PHP). En plus de corriger des failles de sécurités, les mises à jours permettent souvent d’obtenir de meilleures performances (que ce soit en rapidité ou en consommation de ressources).

L’installation est des plus simple:

sudo aptitude install cron-apt

Configuration en éditant le fichier /etc/cron-apt/config, notamment les lignes suivantes:

MAILTO= »nom@domaine.com »

MAILON= »always »

Un mail sera automatiquement envoyé à l’adresse nom@domaine.com, tout les matins à 4:00. Voici un exemple:

On peut voir qu’une mise à jour est disponible. Il ne reste plus qu’a se connecter en SSH sur le serveur et faire un:

sudo aptitude safe-upgrade

Il est possible de faire automatiquement les mises à jour mais je pense cela risqué si quelque chose se passe mal…

On critique souvent les serveurs VPS pour leurs faibles performances disque. Bien que je trouve celle des VPS Gandi plutôt acceptable (environ 6 Mo/s pour l’écriture et 24 Mo/s pour la lecture de petits fichiers type script PHP), il est intéressant de mettre en place un cache mémoire sur notre serveur. Ainsi, les applications compatibles pourront lire et écrire les données en RAM et non plus sur disque.

ETAPE 4) Nous allons donc installer MemCached, un cache mémoire libre.  On commence par installer le cache ainsi que la librairie Perl associée (qui sera utilisée par WordPress):

sudo aptitude install libcache-memcached-perl php5-memcache memcached

Par défaut, le cache écoute sur l’adresse 127.0.0.1 et sur le port TCP/11211. La taille du cache mémoire est de 64 Mo. J’ai gardé ces paramètres pour mon utilisation.

On peut obtenir des statistiques sur l’utilisation de MemCached en utilisant la commande:

# echo « stats » | nc localhost 11211

STAT pid 2806

STAT uptime 698465

STAT time 1283351366

STAT version 1.2.2

STAT pointer_size 32

STAT rusage_user 31.829989

STAT rusage_system 123.891742

STAT curr_items 12834

STAT total_items 1394993

STAT bytes 48830599

STAT curr_connections 11

STAT total_connections 16845

STAT connection_structures 31

STAT cmd_get 4012823

STAT cmd_set 1394993

STAT get_hits 2547543

STAT get_misses 1465280

STAT evictions 5694

STAT bytes_read 10561103955

STAT bytes_written 37908972470

STAT limit_maxbytes 67108864

STAT threads 1

END

Apache & PHP

On continue ensuite avec l’optimisation du serveur Apache (version 2.xx au moment de l’écriture de ce billet).

ETAPE 5) Apache se base sur un système de modules pour ajouter de nouvelles fonctions à votre serveur Web. Sous Ubuntu Server, la liste des modules actifs se trouvent dans le répertoire /etc/apache2/mods-enabled. Un petit ls dans ce répertoire vous donne donc la liste. L’optimisation consiste à supprimer les modules non utilisés. Je vous conseille la lecture de ce billet qui donne la liste des modules nécessaires au fonctionnement de WordPress. Attention, si votre serveur héberge d’autres sites Web que votre blog, il faut vérifier de ne pas supprimer un module utile…

Voici la liste de mes modules sur mon serveur:

alias.conf autoindex.conf dir.conf negotiation.load

alias.load autoindex.load dir.load php5.conf

auth_basic.load cgi.load env.load php5.load

authn_file.load dav.load expires.load rewrite.load

authz_default.load dav_svn.conf headers.load setenvif.conf

authz_groupfile.load dav_svn.load mime.conf setenvif.load

authz_host.load deflate.conf mime.load status.conf

authz_user.load deflate.load negotiation.conf status.load

ETAPE 6) On configure ensuite la manière dont les processus Apache sont lancés et gérés en mémoire et d’autres paramètres. Il faut éditer la section suivante dans le fichier /etc/apache2/apache2.conf (ou httpd.conf sur d’autre distribution GNU/Linux). Pour une description des paramètres, merci de lire le billet suivant:

<IfModule mpm_prefork_module>

StartServers 5

MinSpareServers 5

MaxSpareServers 10

MaxClients 40

MaxRequestsPerChild 2000

</IfModule>

# KeepAlive: Whether or not to allow persistent connections

KeepAlive On

# MaxKeepAliveRequests: The maximum number of requests to allow

MaxKeepAliveRequests 200

# KeepAliveTimeout: Number of seconds to wait for the next request

KeepAliveTimeout 5

# Timeout: The number of seconds before receives and sends time out.

Timeout 50

J’ai également modifier le fichier /etc/apache2/conf.d/optimization pour gagner quelques précieux  points aux tests Yslow et Page Speed:

Header unset ETag

FileETag None

On applique la configuration en relançant Apche:

sudo /etc/init.d/apache2 restart

Sources:

ETAPE 7) WordPress se base sur le langage PHP qui est connu pour être flexible mais pas très performant. C’est pour cela qu’il est nécessaire d’installer un cache PHP sur votre serveur Web WordPress. En gros, il permet de mettre en cache le code PHP déjà compilé. J’utilise personnellement XCache.

L’installation est simple:

sudo aptitude install php5-xcache

On configure ensuite le fichier/etc/php5/conf.d/xcache.ini (à adapter à votre configuration):

xcache.size = 64M

On relance le serveur Web:

sudo /etc/init.d/apache2 restart

Source:

MySQL

Souvent décriée, MySQL reste à l’heure actuelle la base de donnée officielle supportée par le moteur de blogging WordPress. Nous allons donc étudier quelques techniques d’optimisation.

ETAPE 8) On commence par éditer le fichier de configuration /etc/mysql/my.cnf pour ajuster la taille des caches (encore une fois les valeurs sont à adapter en fonction de votre audience/configuration):

query_cache_type = 1

query_cache_limit = 2M

query_cache_size = 32M

ETAPE 9) On installe ensuite le plugin WordPress WP-DBManager. Ce dernier permet de maintenir une base de données optimisée à travers le temps. En plus des fonctions de sauvegarde (manuelle ou automatique) et de restauration de votre base de données WordPress, ce plugin permet de d’optimiser et réparer cette même base.

Source:

WordPress

ETAPE 10) L’installation standard de WordPress (la fameuse installation en 5 minutes) ne tient pas en compte de l’optimisation. Nous allons voir comment configurer l’utilisation parallèle de XCache et Memcached (préalablement installé dans les étapes n°3 et n°5). Pour cela nous allons utiliser l’indispensable plugin W3 Total Cache.

Après l’installation du plugin, il faut se rendre dans le menu Performance > General setting de la page d’administration de WordPress puis cliquer sur le bouton Compatibility check pour vérifier que XCache et Memcached sont bien détectés:

Opcode cache: XCache

Memcache extension: OK

Ensuite on configure WordPress pour utiliser Memcached en activant toutes le fonctions de cache (CDN mis à part) et en utilisant le démon Memcached. Exemple de configuration pour les pages:

Dans le menu Page cache settings j’active toutes les fonctions sauf pour les pages 404:

Dans le menu suivant (Minify settings), j’active toutes les fonctions. Cela à pour but d’optimiser les pages, css et js avant d’être envoyés vers les lecteurs (attention, certains JS n’aiment pas beaucoup ces optimisations, à tester donc…).

Enfin, dans le menu Browser Cache setting, j’active toutes les fonctions et les expires header lifetime à:

  • 3600 secondes pour JS / CSS
  • 3600 secondes pour le HTML
  • 2592000 secondes pour les autres fichiers

A l’heure actuelle, le trafic généré par mon blog ne nécessite pas l’utilisation de caches réseau répartis (CDN). Mais c’est une optimisation à prendre en compte pour les « gros » sites.

Sources:

ETAPE 11) Rien ne sert d’avoir un kernel Linux, un serveur Web, un moteur PHP et un WordPress optimisés si le thème de votre blog est mal développé. Il est important de tester ce thème et notamment les plugins utilisées. Ces derniers utilisent souvent des JavaScripts qui peuvent pénaliser fortement le temps de chargement de vos pages. Rien de tel que des mesures de type YSlow et Page Speed pour mettre en évidence ce qui ne va pas.

Sources:

Tester/surveiller son serveur

ETAPE 12) Pour tester les optimisations mise en place, j’utilise l’outil  GTMetrix qui donne les valeurs YSlow et Page Speed (avec un archivage vous permettant de voir l’évolution des performances de votre blog à travers le temps).

De manière locale et surtout pour valider la configuration de votre serveur Web (Apache dans ce document), vous pouvez utiliser la commande suivante:

ab -t30 -c5 http://blog.mondomaine.com/

La ligne intéressante donnant le nombre maximal de requête par seconde que votre blog peut supporter est la suivante:

Requests per second: 158.19 [#/sec] (mean)

A un niveau plus bas, la commande Linux netstat permet de donner pas mal d’informations sur l’état des sockets:

netstat -tan | grep ‘:80 ‘ | awk ‘{print $6}’ | sort | uniq -c

Enfin, pour surveiller l’activité de MySQL, j’utilise la commande MySqlReport.

Autres optimisations possibles

D’autres optimisations sont possibles, pour vous donner un exemple, je suis tombé l’autre jour sur le première article d’une série en cours sur le blog d’Antoine Benkemoun qui propose d’utiliser Squid pour booster les performances de votre site. C’est une technique très intéressante mais qui nécessite, pour être vraiment efficace, l’utilisation deux deux machines différentes. Une servant de reverse proxy-cache et une autre hébergeant votre blog.

Il est aussi possible de se passer du serveur Web Apache (il est vrai un peu lourd à administrer) pour se pencher vers des serveurs plus légers comme NGinx ou Cherookee. Update: Ou bien d’utiliser NGinx comme serveur Web pour les pages statiques et Apache pour les pages dynamiques (voir exemple de configuration ici). L’avantage d’une telle configuration est un gain non négligeable en terme de consommation mémoire.

Il existe un nombre incalculable d’optimisations possibles, j’espère d’ailleurs en découvrir de nouvelles dans vos commentaires…

Catégories
Blog Open-source

Le bug de rafraîchissement de Gwibber résolu

J’avais laissé tombé il y a quelque temps le client de micro blogging Gwibber pour passer à Pino car je rencontrais de manière récurrente un bug de mise à jour de la time-line Twitter.

Ce bug (#533017), clairement identifié par les développeurs, vient d’être corrigé dans la dernière version de dev (2.31.91).

Pour tester sur votre configuration Ubuntu:

On quitte Gwibber.

Puis on installe les dépôts de la dernière version:

sudo add-apt-repository ppa:gwibber-daily/ppa

sudo apt-get update

sudo apt-get upgrade

Puis on tue les processus *couch*:

killall -r couch

On relance ensuite Gwibber (Applications > Internet > Client de microblogage Gwibber).

Attention: dans mon cas, le compte Twitter n’existait plus quand j’ai relancé Gwibber (alors que le compte Identica oui…). J’ai donc du le reconfigurer. Update: ceci est du à une nouvelle méthode d’authentification pour accéder à Twitter.

Je pense donc donner une chance a ce logiciel vu que Pino n’a toujours pas intégré une fonction de mixage des time-line (par exemple Twitter + Identica).

Et vous quel est votre client de micro blogging favori sous GNU/Linux ?