Suivez-moi

Julien Syx

My_blog();

Follow me on TwitterFlux RSS

  • Accueil
  • CV
  • Contact
    • Commentaires récents
    • Articles populaires
    • Archives
    • Tags
    • Catégories
    • Informatique (3)
      • Administration (2)
    administration apache blog debian pcntl php sessions systeme
    • janvier 2011 (2)
    • décembre 2010 (1)
    • Sessions qui continuent d’augmenter (1)
    • Lancement de mon espace personnel ! (0)
    • Installer PCNTL sans recompiler php sous Debian (0)
    • scholarships for women: Terrific work! This is the type of information that should be shared around the web. Shame on the...
  • Login utilisateur






    • Mot de passe perdu?
  • Liens

    • Scops

Installer PCNTL sans recompiler php sous Debian

21/01/11

Posté par Julien Syx dans Administration

Aucun commentaire

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-dev

Pour compiler le module, nous avons besoin de récupérer les sources de php patchées par debian :

apt-get source php5

Plaç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
make

Sans 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
apache, debian, pcntl, php

Sessions qui continuent d’augmenter

2/01/11

Posté par Julien Syx dans Administration

1 commentaire

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 entier
Spé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 entier
session.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 entier
Spé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.

debian, php, sessions

Lancement de mon espace personnel !

18/12/10

Posté par Julien Syx dans Informatique

Aucun commentaire

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é.

administration, blog, systeme