Julien Syx
My_blog();
My_blog();
21/01/11
Pour commencer, créons notre répertoire php avec lequel nous allons travailler :
mkdir php cd php
Récupérons ensuite les paquets qui vont nous servir pour compiler les sources :
apt-get install php5-dev dpkg-devPour compiler le module, nous avons besoin de récupérer les sources de php patchées par debian :
apt-get source php5Plaçons nous maintenant dans le répertoire du module :
cd php5-5.2.6.dfsg.1/ext/pcntl
On le prépare à être compilé :
~/php/php5-5.2.6.dfsg.1/ext/pcntl# phpize Configuring for: PHP Api Version: 20041225 Zend Module Api No: 20060613 Zend Extension Api No: 220060519
On le configure, puis on le compile :
~/php/php5-5.2.6.dfsg.1./ext/pcntl# ./configure
makeSans doute qu’un « make install » fonctionnerait, mais dans le doute, je préfère le faire à la main : (Nb : le repertoire /lib/php5/XXXX peut changer … il dépend de la date de compilation de php … par exemple, sur ubuntu, la date est plus récente)
cp modules/pcntl.so /usr/lib/php5/20060613+lfs/
Pour finir, on charge l’extension (pour apache) :
echo "extension=pcntl.so" > /etc/php5/apache2/conf.d/pcntl.ini
2/01/11
J’ai rencontré le problème il y a quelques mois sur un serveur qui contenait un eZPublish, qui stockait ses sessions sur MySQL. On s’est aperçu lors d’un dump que la table de sessions faisait plus de 2Go.
Après quelques recherches, on s’est rendu compte que le serveur ne vidait pas ses sessions.
Ce matin, j’ai rencontré le même problème sur le serveur d’un ami. Voici les paramètres qui influent sur les sessions :
session.gc_probability entierSpécifie la probabilité, exprimée en pourcentage, en conjonction de session.gc_divisor, que la routine gc (garbage collector) soit démarrée à chaque requête. La valeur par défaut est 1. (Nb: il semblerait que sur php4 (package debian) la valeur par défaut est 0)session.gc_divisor entiersession.gc_divisor en conjonction avec session.gc_probability définit la probabilité que la routine gc (garbage collector) soit démarrée à chaque début de session. La probabilité est calculée en utilisant gc_probability/gc_divisor, par exemple 1/100 signifie qu'il y a 1 % de chance pour que la routine gc démarre à chaque requête. La valeur par défaut est 100.session.gc_maxlifetime entierSpécifie la durée de vie des données sur le serveur, en nombre de secondes. Après cette durée, les données seront considérées comme obsolètes, et supprimées. Les données deviennent obsolètes lors du démarrage de la session.
Voici un extrait du phpinfo(); sur le serveur (package php4 debian non modifié) :
|
session.gc_divisor |
100 |
100 |
|
session.gc_maxlifetime |
1440 |
1440 |
|
session.gc_probability |
0 |
0 |
Ici, le gc.probability est à 0, ce qui donne donc 0/100 de chances que les sessions se vident. Il faut donc dé-commenter cette option dans le php.ini et lui donner la valeur de 1 (afin que chaque requête aie 1% de chance d’exécuter la routine permettant de nettoyer les sessions).
Si vous souhaitez forcer la suppression de sessions tout de suite, vous pouvez executer (en cli) un petit script php :
<?php ini_set( 'session.gc_probability', ( int )100 ); ini_set( 'session.gc_divisor', ( int )100 ); session_start(); session_destroy(); ?>
Ceci a pour but de forcer pour ce script uniquement, la valeur de gc_probability et gc_divisor, puis une session est créée afin de faire tourner le garbage collector de php.
18/12/10
Bonjour et bienvenue sur mon espace personnel.
Je vais tenter de le tenir régulièrement à jour avec du contenu utile pour les administrateurs systèmes.
J’y mettrai mes découvertes, voir même des tutoriaux, en espérant qu’ils servent à la communauté.