Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Lately I had to reinstall my development site on my ubuntu machine since my system crashed after an os update. 4 days later my site is still not running as it should. Whenever i do an action which has in it an action on a database, it stops working.

For example when Registring a new user, i get the following error:

[Sun Jul 25 20:07:20 2010] [error] [client 127.0.0.1] PHP Notice:  Trying to get property of non-object in /var/www/nrka2/application/bootstrap/Bootstrap.php on line 169, referer: http://nrka2/user/register
[Sun Jul 25 20:07:20 2010] [error] [client 127.0.0.1] PHP Stack trace:, referer: http://nrka2/user/register
[Sun Jul 25 20:07:20 2010] [error] [client 127.0.0.1] PHP   1. {main}() /var/www/nrka2/public/index.php:0, referer: http://nrka2/user/register
[Sun Jul 25 20:07:20 2010] [error] [client 127.0.0.1] PHP   2. require() /var/www/nrka2/public/index.php:2, referer: http://nrka2/user/register
[Sun Jul 25 20:07:20 2010] [error] [client 127.0.0.1] PHP   3. Zend_Application->bootstrap() /var/www/nrka2/application/application.php:23, referer: http://nrka2/user/register
[Sun Jul 25 20:07:20 2010] [error] [client 127.0.0.1] PHP   4. Zend_Application_Bootstrap_BootstrapAbstract->bootstrap() /var/www/Zend/ZendFramework-1.10.6/library/Zend/Application.php:355, referer: http://nrka2/user/register
[Sun Jul 25 20:07:20 2010] [error] [client 127.0.0.1] PHP   5. Zend_Application_Bootstrap_BootstrapAbstract->_bootstrap() /var/www/Zend/ZendFramework-1.10.6/library/Zend/Application/Bootstrap/BootstrapAbstract.php:583, referer: http://nrka2/user/register
[Sun Jul 25 20:07:20 2010] [error] [client 127.0.0.1] PHP   6. Zend_Application_Bootstrap_BootstrapAbstract->_executeResource() /var/www/Zend/ZendFramework-1.10.6/library/Zend/Application/Bootstrap/BootstrapAbstract.php:619, referer: http://nrka2/user/register
[Sun Jul 25 20:07:20 2010] [error] [client 127.0.0.1] PHP   7. Bootstrap->_initViewSettings() /var/www/Zend/ZendFramework-1.10.6/library/Zend/Application/Bootstrap/BootstrapAbstract.php:666, referer: http://nrka2/user/register
[Sun Jul 25 20:07:22 2010] [error] [client 127.0.0.1] PHP Notice:  Trying to get property of non-object in /var/www/nrka2/application/bootstrap/Bootstrap.php on line 169, referer: http://nrka2/css/main.css
[Sun Jul 25 20:07:22 2010] [error] [client 127.0.0.1] PHP Stack trace:, referer: http://nrka2/css/main.css
[Sun Jul 25 20:07:22 2010] [error] [client 127.0.0.1] PHP   1. {main}() /var/www/nrka2/public/index.php:0, referer: http://nrka2/css/main.css
[Sun Jul 25 20:07:22 2010] [error] [client 127.0.0.1] PHP   2. require() /var/www/nrka2/public/index.php:2, referer: http://nrka2/css/main.css
[Sun Jul 25 20:07:22 2010] [error] [client 127.0.0.1] PHP   3. Zend_Application->bootstrap() /var/www/nrka2/application/application.php:23, referer: http://nrka2/css/main.css
[Sun Jul 25 20:07:22 2010] [error] [client 127.0.0.1] PHP   4. Zend_Application_Bootstrap_BootstrapAbstract->bootstrap() /var/www/Zend/ZendFramework-1.10.6/library/Zend/Application.php:355, referer: http://nrka2/css/main.css
[Sun Jul 25 20:07:22 2010] [error] [client 127.0.0.1] PHP   5. Zend_Application_Bootstrap_BootstrapAbstract->_bootstrap() /var/www/Zend/ZendFramework-1.10.6/library/Zend/Application/Bootstrap/BootstrapAbstract.php:583, referer: http://nrka2/css/main.css
[Sun Jul 25 20:07:22 2010] [error] [client 127.0.0.1] PHP   6. Zend_Application_Bootstrap_BootstrapAbstract->_executeResource() /var/www/Zend/ZendFramework-1.10.6/library/Zend/Application/Bootstrap/BootstrapAbstract.php:619, referer: http://nrka2/css/main.css
[Sun Jul 25 20:07:22 2010] [error] [client 127.0.0.1] PHP   7. Bootstrap->_initViewSettings() /var/www/Zend/ZendFramework-1.10.6/library/Zend/Application/Bootstrap/BootstrapAbstract.php:666, referer: http://nrka2/css/main.css

My Bootstrap class looks like this:

  <?php
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap{
    /**
     *
     * @var unknown_type
     */
    public $frontcontroller;
    /**
     *
     * @var unknown_type
     */
    protected $_logger;
    /**
     *
     * @var unknown_type
     */
    protected $_acl;
    /**
     *
     * @var unknown_type
     */
    protected $_auth;

    /**
     * Setup the logging
     */
    protected function _initLogging()
    {
        $this->bootstrap('frontController');
        $logger = new Zend_Log();

        $writer = 'production' == $this->getEnvironment() ?
        new Zend_Log_Writer_Stream(APPLICATION_PATH . '/../data/logs/app.log') :
        new Zend_Log_Writer_Firebug();
        $logger->addWriter($writer);

        if ('production' == $this->getEnvironment()) {
            $filter = new Zend_Log_Filter_Priority(Zend_Log::CRIT);
            $logger->addFilter($filter);
        }

        $this->_logger = $logger;
        Zend_Registry::set('log', $logger);
    }
    protected function _initDefaultModuleAutoloader(){
        $this->_logger->info('Bootstrap '. __METHOD__);

        $this->_resourceLoader = new Zend_Application_Module_Autoloader(array(
            'namespace' =>  'EventManager',
            'basePath'  =>  APPLICATION_PATH . '/modules/eventManager',
        ));

        $this->_resourceLoader->addResourceTypes(array(
                'modelResource' =>  array(
                'path'          =>  'models/resources',
                'namespace'     =>  'Resource',
        ),
                'service'   => array(
                'path'      =>  'services',
                'namespace' =>  'Service'
                ),
                ));
    }

        // @todo develop this function
    protected function _initDbProfiler(){

        $this->_logger->info('Bootstrap ' . __METHOD__);

        if ('production' !== $this->getEnvironment()) {
            $this->bootstrap('db');
            $profiler = new Zend_Db_Profiler_Firebug('All DB Queries');
            $profiler->setEnabled(true);
            $this->getPluginResource('db')->getDbAdapter()->setProfiler($profiler);
        }
    }

    /**
     * Add Controller Action Helpers
     */
    protected function _initActionHelpers()
    {
        $this->_logger->info('Bootstrap ' . __METHOD__);
        Zend_Controller_Action_HelperBroker::addHelper(new SF_Controller_Helper_Acl());
        Zend_Controller_Action_HelperBroker::addHelper(new SF_Controller_Helper_RedirectCommon());
        Zend_Controller_Action_HelperBroker::addHelper(new SF_Controller_Helper_Service());
    }
    /**
     *
     * @return unknown_type
     */
    protected function _initRoutes(){

        $this->_logger->info('Initialize Routes '. __METHOD__);
        $this->bootstrap('frontController');
        $router = $this->frontController->getRouter();

        $route = new Zend_Controller_Router_route(
            'register',
        array(
                'controller'    => 'user',
                'action'        =>  'register'
                )
                );
                $router->addRoute('register',$route);

                $route = new Zend_Controller_Router_route(
            'login',
                array(
                'controller'    => 'user',
                'action'        =>  'login'
                )
                );
                $router->addRoute('login',$route);
                $route = new Zend_Controller_Router_route(
            'logout',
                array(
                'controller'    => 'user',
                'action'        =>  'logout'
                )
                );
                $router->addRoute('logout',$route);

    }
    /**
     *
     * @return void
     */
    protected function _initLocale(){

        $this->_logger->info('Bootstrap '.__METHOD__);
        $locale = new Zend_Locale('nl_NL');
        Zend_Registry::set('Zend_Locale', $locale);
    }

    protected function _initAcl(){
        $this->_acl = new EventManager_Service_Acl();
    }
    /**
     *
     * @return void
     */
    protected function _initViewSettings(){
        $this->_logger->info('Bootstrap '.__METHOD__);
        $this->bootstrap('view');
        $this->bootstrap('Acl');
        $this->_view = $this->getResource('view');

        //set encoding and doctype

        $this->_view->setEncoding('UTF-8');
        $this->_view->doctype('XHTML1_STRICT');
        $this->_view->headMeta()->appendHttpEquiv('Content-Type', 'text/html; charset=UTF-8');
        $this->_view->headMeta()->appendHttpEquiv('Content-Language', 'en-US');

        //@todo op een later moment moeten hier nog de stylesheets worden toegevoegd
        $this->_view->headLink()->appendStylesheet('/css/main.css');
        //$this->_view->headTitle('Event Manager');
        /*
        Set the head style.
        $this->_view->headTitle->headStyle();
        */
        $this->_view->headTitle()->setSeparator(' - ');

        $this->_auth = Zend_Auth::getInstance();    

        $navigation = new Zend_Config_Xml(APPLICATION_PATH.'/configs/navigation.xml','nav');
        $navContainer = new Zend_Navigation($navigation);
        $this->_view->navigation($navContainer)->setAcl($this->_acl)->setRole($this->_auth->getStorage()->read()->usr_role); //THIS IS LINE 169!!!!!!!!!


    }

    /**
     * Add graceful error handling to the dispatch, this will handle
     * errors during Front Controller dispatch.
     */
    public function run()
    {

        $errorHandling = $this->getOption('errorhandling');
        try {
            parent::run();
        } catch(Exception $e) {
            if (true == (bool) $errorHandling['graceful']) {
                $this->__handleErrors($e, $errorHandling['email']);
            } else {
                throw $e;
            }
        }

    }

    /**
     * Handle errors gracefully, this will work as long as the views,
     * and the Zend classes are available
     *
     * @param Exception $e
     * @param string $email
     */
    protected function __handleErrors(Exception $e, $email)
    {
        header('HTTP/1.1 500 Internal Server Error');
        $view = new Zend_View();
        $view->addScriptPath(dirname(__FILE__) . '/../views/scripts');
        echo $view->render('fatalError.phtml');

        if ('' != $email) {
            $mail = new Zend_Mail();
            $mail->setSubject('Fatal error in application Storefront');
            $mail->addTo($email);
            $mail->setBodyText(
            $e->getFile() . "\n" .
            $e->getMessage() . "\n" .
            $e->getTraceAsString() . "\n"
            );
            @$mail->send();
        }
    }
}

I have tried to debug my code, but everyting goes well until I do somethign with the db. But I don't know what goes wrong with the db. I don't get any clear error messages. Can someone help me?

Some more possible interesting data:

   [bootstrap]

resources.db.adapter = "PDO_MYSQL"
resources.db.isdefaulttableadapter = true
resources.db.params.dbname = "ladosa"
resources.db.params.username = "root"
resources.db.params.password = "root"
resources.db.params.hostname = "localhost"
resources.db.params.charset = "UTF8"
resources.db.params.profiler.enabled = true
resources.db.params.profiler.class = Zend_Db_Profiler_Firebug

Autoloadernamespaces[] = "Zend_"
Autoloadernamespaces[] = "SF_"

phpsettings.display_errors  = 0
phpsettings.error_reporting = 8191
phpSettings.date.timezone   = "Europe/Amsterdam"

bootstrap.path = APPLICATION_PATH"/bootstrap/Bootstrap.php"
pluginPaths.resource_ = APPLICATION_PATH"/resources"


resources.frontcontroller.moduledirectory = APPLICATION_PATH"/modules"
resources.frontcontroller.defaultmodule = "eventManager"
resources.frontcontroller.params.prefixDefaultModule = true
resources.frontcontroller.exceptions = false

resources.view[] = ""
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
resources.view.encoding = "UTF-8"
resources.view.title = Rode kruis Vrijwilligers applicatie
;resources.view.helperPath.Default_View_Helper = APPLICATION_PATH "/modules/eventManager/views/helpers"

resources.layout.layout = "main"


[production:bootstrap]

[development:bootstrap]
;resources.frontController.throwExceptions = 1
;phpSettings.display_startup_errors=1
;phpSettings.display_errors = 1
;resources.frontcontroller.throwerrors =    

[test:production]

btw. I CAN login to my database command line with the given username and password.


Update: today i decided to investigate on my http request and i came to an error 500. My apache logs don't give any related information, I think. I posted the logs above.

Any idea's?

share|improve this question

1 Answer 1

This looks like a problem with the auth instance you are using (from line 163), specifically when you call getStorage(). Can you do a var_dump on $this->_auth? Where do you setup the auth storage?

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.