session_start(): Failed to initialize storage module: memcache (path: /var/lib/php5) in /usr/share/phpmyadmin/libraries/session.inc.php on line 81

25,987

Solution 1

usually it means you have a wrong path in session.save_path parameter in Apache config or php.ini

try to set

ini_set("session.save_path", "/path/to/tmp");

in the beginning of your file. If it helps, edit your php.ini file, otherwise try to find it somewhere, maybe in VirtualHost section

Solution 2

You just need to give permission to access this directory.

On Windows, just open the directory and the system will ask you to change permission to it.

Share:
25,987

Related videos on Youtube

user3210366
Author by

user3210366

Updated on September 17, 2020

Comments

  • user3210366
    user3210366 over 3 years

    I have i problem with myadminphp. I try to go inside admin area but when i use the url ,the page is white. I have seen on the error.log and i have this error

    session_start(): Failed to initialize storage module: memcache (path: /var/lib/php5) in /usr/share/phpmyadmin/libraries/session.inc.php on line 81

    I don't know what i can do! Tx For all help

    My session.inc.php

    <?php
      /* vim: set expandtab sw=4 ts=4 sts=4: */
      /**
       * session handling
     *
     * @todo    add failover or warn if sessions are not configured properly
     * @todo    add an option to use mm-module for session handler
     * @see     http://www.php.net/session
     * @uses    session_name()
     * @uses    session_start()
     * @uses    ini_set()
     * @package phpMyAdmin
     */
    if (! defined('PHPMYADMIN')) {
        exit;
    }
    
    // verify if PHP supports session, die if it does not
    
    if (!@function_exists('session_name')) {
        PMA_warnMissingExtension('session', true);
    } elseif (ini_get('session.auto_start') == true && session_name() != 'phpMyAdmin') {
        // Do not delete the existing session, it might be used by other
        // applications; instead just close it.
        session_write_close();
    }
    
    // disable starting of sessions before all settings are done
    // does not work, besides how it is written in php manual
    //ini_set('session.auto_start', 0);
    
    // session cookie settings
    session_set_cookie_params(0, $GLOBALS['PMA_Config']->getCookiePath(),
        '', $GLOBALS['PMA_Config']->isHttps(), true);
    
    // cookies are safer (use @ini_set() in case this function is disabled)
    @ini_set('session.use_cookies', true);
    
    // optionally set session_save_path
    $path = $GLOBALS['PMA_Config']->get('SessionSavePath');
    if (!empty($path)) {
        session_save_path($path);
    }
    
    // but not all user allow cookies
    @ini_set('session.use_only_cookies', false);
    // do not force transparent session ids, see bug #3398788
    //@ini_set('session.use_trans_sid', true);
    @ini_set('url_rewriter.tags',
        'a=href,frame=src,input=src,form=fakeentry,fieldset=');
    //ini_set('arg_separator.output', '&amp;');
    
    // delete session/cookies when browser is closed
    @ini_set('session.cookie_lifetime', 0);
    
    // warn but dont work with bug
    @ini_set('session.bug_compat_42', false);
    @ini_set('session.bug_compat_warn', true);
    
    // use more secure session ids
    @ini_set('session.hash_function', 1);
    
    // some pages (e.g. stylesheet) may be cached on clients, but not in shared
    // proxy servers
    session_cache_limiter('private');
    
    // start the session
    // on some servers (for example, sourceforge.net), we get a permission error
    // on the session data directory, so I add some "@"
    
    // See bug #1538132. This would block normal behavior on a cluster
    //ini_set('session.save_handler', 'files');
    
    $session_name = 'phpMyAdmin';
    @session_name($session_name);
    
    if (! isset($_COOKIE[$session_name])) {
        // on first start of session we check for errors
        // f.e. session dir cannot be accessed - session file not created
        $orig_error_count = $GLOBALS['error_handler']->countErrors();
        $r = session_start();
        if ($r !== true || $orig_error_count != $GLOBALS['error_handler']->countErrors()) {
            setcookie($session_name, '', 1);
            /*
             * Session initialization is done before selecting language, so we
             * can not use translations here.
             */
            PMA_fatalError('Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.');
        }
        unset($orig_error_count);
    } else {
        session_start();
    }
    
    /**
     * Token which is used for authenticating access queries.
     * (we use "space PMA_token space" to prevent overwriting)
     */
    if (!isset($_SESSION[' PMA_token '])) {
        $_SESSION[' PMA_token '] = md5(uniqid(rand(), true));
    }
    
    /**
     * tries to secure session from hijacking and fixation
     * should be called before login and after successfull login
     * (only required if sensitive information stored in session)
     *
     * @uses    session_regenerate_id() to secure session from fixation
     */
    function PMA_secureSession()
    {
        // prevent session fixation and XSS
        session_regenerate_id(true);
        $_SESSION[' PMA_token '] = md5(uniqid(rand(), true));
    }
    ?>
    
    • beporter
      beporter over 9 years
      Seems like everyone involved on this question missed the fact that PHP was configured to use memcache as the session handler. File paths aren't relevant to using memcached for session storage. The session.save_path is supposed to be a comma-separated list of hosts and ports.
  • user3210366
    user3210366 over 10 years
    ok i have found the solution libraries/session.inc.php at line 79 // session.save_handler ini_set('session.save_handler', 'files'); Commenting out this line, everything works fine.