50 votes

Comment vérifier si memcache ou memcached est installé pour PHP?

Comment puis-je tester si memcache ou memcached (pour PHP) est installé sur mon serveur Web Apache?

Memcache est un démon de mise en cache conçu spécialement pour les applications Web dynamiques pour réduire la charge de la base de données en stockant des objets en mémoire.

54voto

mauris Points 19666

Vous pouvez regarder phpinfo () ou vérifier si l'une des fonctions de memcache est disponible. Finalement, vérifiez si la classe Memcache existe ou non.

par exemple

 if(class_exists('Memcache')){
  // Memcache is enabled.
}
 

27voto

J.C. Inacio Points 2522

pourquoi ne pas utiliser la fonction extension_loaded () ?

27voto

Bijay Rungta Points 675

Utilisez ce code pour non seulement vérifier si l'extension memcache est activée, mais également si le démon est en cours d'exécution et capable de stocker et de récupérer des données avec succès:

 <?php
if (class_exists('Memcache')) {
    $server = 'localhost';
    if (!empty($_REQUEST['server'])) {
        $server = $_REQUEST['server'];
    }
    $memcache = new Memcache;
    $isMemcacheAvailable = @$memcache->connect($server);

    if ($isMemcacheAvailable) {
        $aData = $memcache->get('data');
        echo '<pre>';
        if ($aData) {
            echo '<h2>Data from Cache:</h2>';
            print_r($aData);
        } else {
            $aData = array(
                'me' => 'you',
                'us' => 'them',
            );
            echo '<h2>Fresh Data:</h2>';
            print_r($aData);
            $memcache->set('data', $aData, 0, 300);
        }
        $aData = $memcache->get('data');
        if ($aData) {
            echo '<h3>Memcache seem to be working fine!</h3>';
        } else {
            echo '<h3>Memcache DOES NOT seem to be working!</h3>';
        }
        echo '</pre>';
    }
}
if (!$isMemcacheAvailable) {
    echo 'Memcache not available';
}

?>
 

21voto

hlasso Points 59

Je sais que c'est un vieux fil, mais il y a une autre façon que j'ai trouvée utile pour n'importe quelle extension.

Courir

php -m | grep <module_name>

Dans ce cas particulier:

php -m | grep memcache

Si vous voulez lister tous les modules PHP alors:

php -m

Selon votre système, vous obtiendrez une sortie similaire à celle-ci:

 [PHP Modules]
apc
bcmath
bz2
... lots of other modules ...
mbstring
memcache
 ... and still more modules ...
zip
zlib

[Zend Modules]
 

Vous pouvez voir que memcache est dans cette liste.

10voto

mgutt Points 784

Vous avez plusieurs options;)

 $memcache_enabled = class_exists('Memcache');
$memcache_enabled = extension_loaded('memcache');
$memcache_enabled = function_exists('memcache_connect');
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X