Session Error


(Snapshirt) #1

Hi, i get this error and need help.

Fatal error: Cannot redeclare class Zend_Session in /www/…/docs/piwik/libs/Zend/Session.php on line 54

What can i do?


(vipsoft) #2

Is this occurring in Piwik standalone or embedded?

Is piwik on a dedicated web site or a folder with other web apps?


(tuddelouie) #3

[quote=Snapshirt @ Sep 27 2009, 09:23 PM]Hi, i get this error and need help.

Fatal error: Cannot redeclare class Zend_Session in /www/…/docs/piwik/libs/Zend/Session.php on line 54

What can i do?[/quote]

(Nearly) same problem here. Getting this error:

Fatal error: Cannot redeclare class Zend_Session in [snip]/tm/libs/Zend/Session.php on line 49

@vipsoft: I don’t know the difference between embedded and stand alone. I tried to install the latest version in directory /tm/ in root.


(vipsoft) #4

Do you have session.auto_start=On in php.ini? Turn it off.

http://forum.piwik.org/index.php?showtopic=1324


(tuddelouie) #5

Thanks four your fast reply!

No, it’s turned OFF already.


(vipsoft) #6

php version?


(tuddelouie) #7

PHP Version 5.2.6-1+lenny3

Zend Engine v2.2.0
with eAccelerator v0.9.5.3
with Zend Extension Manager v1.2.2
with Zend Optimizer v3.3.3


(vipsoft) #8

Try this patch to core/Loader.php:

Index: Loader.php
===================================================================
--- Loader.php    (revision 1569)
+++ Loader.php    (working copy)
@@ -51,6 +51,10 @@
      */
     public static function autoload($class)
     {
+            if (class_exists($class, false) || interface_exists($class, false)) {
+                return;
+            }
+
         $classPath = self::getClassFileName($class);
         while(!empty($classPath))
         {

(tuddelouie) #9

Getting exactly the same error message. style_emoticons/<#EMO_DIR#>/sad.gif
The code in /core/Loader.php now looks like that:

	/**
	 * Load class by name
	 *
	 * @param string $class Class name
	 * @throws exception if class cannot be loaded
	 */
	public static function autoload($class)
   {
            if (class_exists($class, false) || interface_exists($class, false)) {
                return;
            }
		$classPath = self::getClassFileName($class);
		while(!empty($classPath))
		{
			// auto-discover class location
			for($i = 0; $i < count(self::$dirs); $i++)
			{
				$path = PIWIK_INCLUDE_PATH . self::$dirs[$i] . $classPath . '.php';
				if(file_exists($path))
				{
					require_once $path; // prefixed by PIWIK_INCLUDE_PATH
					if(class_exists($class, false) || interface_exists($class, false))
					{
						return;
					}
				}
			}


(vipsoft) #10

Can you access your web server log file and see if there’s a more detailed backtrace? It might also help if you PM the output from phpinfo().

Also, check to make sure libs/Zend/Session/ is complete.

Zend/Session:
Abstract.php  Exception.php  Namespace.php  SaveHandler  Validator

Zend/Session/SaveHandler:
DbTable.php  Exception.php  Interface.php

Zend/Session/Validator:
Abstract.php  HttpUserAgent.php  Interface.php

(aduchate) #11

Been working with this all day, and Hoping someone can help!

I initially installed/developed with Piwik on a server with exceptional results. We moved everything over to a new server, and built apache identically to the previous server’s build. I completely deleted my old Piwik files, and uploaded the original 1.0 download from Piwik’s site. My goal is to simply get piwik up and running again from scratch (now that I am familiar with the api).

I would like to preface this error by stating that i have created (and recreated) both tmp and session folders, with permissions revised to 755 (and also tried with 777)

We own our own Servers, and i have set the following:

Session Handling session.name -> PHPSESSID

Session Handling session.referer_check -> “blank”

Session Handling session.save_handler -> files

Session Handling session.save_path -> /tmp

Session Handling session.serialize_handler -> php

Session Handling session.use_cookies -> 1

Session Handling session.use_only_cookies -> 1 (default)

I have tried rebuilding apache with php 5.2 and 5.3

The constant error I recieve is the following:

Unable to start session. Check that session.save_path or tmp/sessions is writeable.

Warning: Unknown: open(/tmp/sess_508e319319532e2a86863e1db564e70c, O_RDWR) failed: Permission denied (13) in Unknown on line 0

Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0

Would love any creative ideas that I could implement to fix this issue. I’ve been working on this for 8 hours and havn’t even seen the start up menu!
I have scoured the forums and seems as though the main advice is to make sure permissions to the folder are correct, but it seems as though I’ve exhausted that solution. I am working on a huge project and deployment is contingent upon figuring this out ASAP.
Thanks in Advance!
-Aaron DuChateau
Blackwire Marketing


(vipsoft) #12

The error message is about the root level /tmp/sessions folder, not the subfolder in your piwik directory.