Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 25-06-2007 14:10:10

apsy
Membre
Date d'inscription: 25-06-2007
Messages: 50

Page blanche sur serveur de production.

Bonjour à tous,

Je développe avec le Zend Framework depuis sa version 0.6. J'ai principalement développé mon site en local avec Wamp. Je n'ai jamais rencontré de probleme particulier jusqu'a aujourd'hui. J'ai souhaité passé mon site en production (sur un serveur distant) mais là ... Page blanche lors de la génération de mon index et de mes autres controllers.

Apres avoir googleisé, j'ai lu des articles ou l'on conseille de mettre throwException à true, le display_error du php.ini à true, le error_reporting à All etc... Mais rien n'y fait ! Toujours cette fichue page blanche.

Ce qui me semble bizarre, c'est que j'ai essayé de faire des dump avec l'objet Zend_Debug et ça marche mais ma  vue de mon controller ne s'affiche toujours pas.

Je suis sincèrement à court d'idée et je pense que dix cerveaux en valent mieux qu'un seul pour y réfléchir. Merci de votre aide smile

Hors ligne

 

#2 25-06-2007 15:13:40

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: Page blanche sur serveur de production.

Bonjour,

En général, ce qui change entre windows et unix, c'est :
- Les majuscules et le minuscules à surveiller de près (regarde notamment si tu as bien une majuscule au début de tes noms de fichier dans les controlleurs)
- le PATH_SEPARATOR à : et non à ;

Sinon est-ce que tu peux nous envoyer ton index.php et ta conf apache ? là on manque un peu de billes pour répondre smile

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#3 26-06-2007 01:55:40

apsy
Membre
Date d'inscription: 25-06-2007
Messages: 50

Re: Page blanche sur serveur de production.

Pas de soucis de majuscules concernant le nom des controllers.

Le PATH_SEPARATOR est bien à ":" concernant mon systeme unix.

index.php :

Code:

<?php
/**
 * This is the index page.
 * 
 * @author [DEFACED]
 */
require_once 'bootstrap.php';

Bootstrap::init();
Zend_Debug::dump('After Init');
Bootstrap::main();
Zend_Debug::dump('After Main');
?>

bootstrap.php

Code:

<?php
class Bootstrap {
    
    /**
     * Initialisation
     */
    public static function init() {
        try {
            // Constantes
            if (ereg('localhost', $_SERVER['SERVER_NAME'])) {
                /*****************************************************/
                /* Laptop parameters*/
                define ('PATH_WEBINF', 'D:/_WORK/[DEFACED]/_docroot/WEB-INF');
                define ('PATH_ZEND', 'D:/_WORK/Projects/Zend/library');
                define ('PATH_LOG', 'D:/_WORK/[DEFACED]/_docroot/_log');
                /*****************************************************/
                define ('PATH_SEPARATOR', ':');
                define ('PATH_CONFIGFILE', PATH_WEBINF.'/config.ini');
                define ('BASE_HREF', '/love/'); // BASE HREF
            }
            else {
                define ('PATH_WEBINF', '/[DEFACED]/WEB-INF');
                define ('PATH_ZEND', '/[DEFACED]/www/Zend');
                define ('PATH_LOG', '/[DEFACED]/www/love/_log');
                define ('PATH_SEPARATOR', ':');
                define ('BASE_HREF', '/[DEFACED]/www/'); // BASE HREF
                define ('PATH_CONFIGFILE', PATH_WEBINF.'/config.ini');
            }
            
            /** Définition des include path
             * - Rep. WEB-INF
             * - Rep. Zend Framework
             * - Rep. script courant
             * - Rep. déjà présent
             **/
            set_include_path(
                '.'.PATH_SEPARATOR.
                PATH_WEBINF.PATH_SEPARATOR.
                PATH_ZEND.PATH_SEPARATOR.
                get_include_path()
            );
            
            require_once 'Zend/Loader.php';
            spl_autoload_register(array('Zend_Loader', 'autoload'));
            
            // Démarrage de la session
            Zend_Session::start();

            $config = new Zend_Config_Ini(PATH_CONFIGFILE, 'sandbox');
            
            // Error_reporting            
            if ($config->debug) {
                error_reporting(E_ALL | E_STRICT);
             ini_set('display_errors', true);                
                if (get_magic_quotes_gpc()) {
                    die('<strong>E_NOOB_ERROR</strong>: magic_quotes_gpc must be turned off.');
                }
                
                set_magic_quotes_runtime(false);
            }
            // TimeZone par défaut
            date_default_timezone_set($config->timezone);
            
            // setup database
            $db = Zend_Db::factory($config->db->adapter, $config->db->config->toArray());
            Zend_Db_Table::setDefaultAdapter($db);
            
            // Router
            $router = new Zend_Controller_Router_Rewrite();
            $router->addConfig($config, 'routes');
            
            //  Authentification
            $auth = Zend_Auth::getInstance();
            
            // Définition des variables globales
            Zend_Registry::set('config', $config);
            Zend_Registry::set('auth', $auth);
            
            // Le controller
            $controller = Zend_Controller_Front::getInstance();
            $controller->setControllerDirectory(array(
                    'default' => PATH_WEBINF.'/default/controllers'));
            $controller->setRouter($router)
                        ->setBaseUrl(BASE_HREF)->throwExceptions(true);
                        //->returnResponse(true);
        }
        catch (Exception $e) {
            // Deprecated
            //self::onError($e);
        }
    }
    
    /**
     * Méthode principale
     */
    public static function main() {
        $controller = Zend_Controller_Front::getInstance();
        Zend_Debug::dump('test');
        $response = $controller->dispatch();
        Zend_Debug::dump('test');
        /*if ($response->isException()) {
            $exceptions = $response->getException();
            Zend_Debug::dump($exceptions);
        } else {
            $response->sendHeaders();
            $response->outputBody();
        }*/
    }
    
    /**
     * Traitement d'erreur
* Remplacer par le controller ErrorController
* @deprecated
     */
    public static function onError(Exception $e) {
// En attendant une correction
        $config = true;
        
        if ($config) {
            echo '[[EXCEPTION]]<br />';
            echo '{message} '.$e->getMessage().'<br />';
            echo '{stackTrace} <pre>'.$e->getTraceAsString().'</pre>';
            $ctrl = Zend_Controller_Front::getInstance();
            Zend_Debug::dump($ctrl->getRequest());
        }
        else {
            $writer = new Zend_Log_Writer_Stream(PATH_LOG);
            $logger = new Zend_Log($writer);
            $logger->emerg('[[EXCEPTION]] {message} '.$e->getMessage().' || {stackTrace} '.$e->getTraceAsString());
            $logger = null;
        }
    }
}
?>

Mon arbo :

Code:

WEB-INF/
   /default
     /controllers
     /models
     /views
     /dao
     ...etc...
www/
    /styles
    ...etc...

IndexController.php:

Code:

<?php
class IndexController extends Zend_Controller_Action {
    
    public function init() {
        //$this->initView();
    }
    
    public function indexAction() {
        Zend_Debug::dump('INDEX');
    }
    
    /**
     * Récupere les actions non existantes !
     */
    public function __call($method, $args) {
        if ('Action' == substr($method, -6)) {
            return $this->_forward('index');
        }

        throw new Exception('Invalid method "' . $method . '" called');
    }
}
?>

Hors ligne

 

#4 26-06-2007 09:19:25

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: Page blanche sur serveur de production.

Hum... t'es bien sur la même version du ZF en prod et en dev ? (je sais c'est comme quand noos te demande si t'as branché ton ordinateur...). Parce que si tous tes logs s'affichent bien mais pas ta vue, ça ressemble à un ZF < 1.0.0-RC1 dans lequel le viewRenderer n'appelle pas les vues automatiquement....


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#5 27-06-2007 10:55:39

apsy
Membre
Date d'inscription: 25-06-2007
Messages: 50

Re: Page blanche sur serveur de production.

Non, les versions du ZF sont les mêmes sad

Je suis désespéré... J'ai beau retourner le problème dans tous les sens, je vois pas le soucis.

Il faut des modules spécifiques pour apache ou php pour que le framework fonctionne correctemeent ?

A mon avis, c'est du coté de ma conf serveur qu'il faut que je jette un oeil...

Hors ligne

 

#6 02-07-2007 11:38:40

apsy
Membre
Date d'inscription: 25-06-2007
Messages: 50

Re: Page blanche sur serveur de production.

Je viens de trouver une solution un peu bizarre... Comme si le viewRenderer ne fonctionnait pas.

Pour palier à la page blanche, il faut que dans mon controller Index je mette :

Code:

<?php

class IndexController extends Zend_Controller_Action {
    
    public function init() {
        $this->initView();
    }
    
    public function indexAction() {
        $this->view->render('Index/index.phtml');
    }
}
?>

En gros, que j'effectue un 'render' avec le chemin mon script à afficher. Pourquoi en local ça fonctionne et pas en prod ? Vous voyez un truc qui pourrait me renseigner ?

Hors ligne

 

#7 02-07-2007 13:53:10

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: Page blanche sur serveur de production.

dans ton répertoire views/scripts/, essaye de renommer ton répertoire Index en index (avec un i minuscule).

Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#8 02-07-2007 14:20:30

apsy
Membre
Date d'inscription: 25-06-2007
Messages: 50

Re: Page blanche sur serveur de production.

C'est à n'y rien comprendre...
Ce n'est pas ça :'(

Marre.... GRRRR

Je vois vraiment pas là ...

Hors ligne

 

#9 14-11-2008 19:11:07

verrec_s
Membre
Lieu: Paris
Date d'inscription: 19-09-2007
Messages: 26

Re: Page blanche sur serveur de production.

Salut, je voulais savoir si tu avais résolu ton problème car j'ai exactement le même et je n'arrive pas à le résoudre

Hors ligne

 

#10 21-01-2009 16:25:28

mckael
Nouveau membre
Date d'inscription: 15-12-2008
Messages: 3

Re: Page blanche sur serveur de production.

Ayant transféré un site basé sur zend framework sur serveur de production. Je rencontre toujours également le problème de page blanche.
Pourtant :
- le rewrite_mod est bien activé
- version php 5.1.6

Merci bien pour votre aide

Hors ligne

 

#11 21-01-2009 23:48:37

keilnoth
Membre
Date d'inscription: 30-08-2008
Messages: 128
Site web

Re: Page blanche sur serveur de production.

C'est un peu vague comme indication. smile

Il y a plein de moyen de déboguer son code, mettre des traces depuis le début, est-ce le code arrive jusque dans le controller ? dans l'action ? est-ce qu'il arrive dans le script de vue ? dans le layout ? est-ce qu'il y a quelque chose dans le log Apache ou PHP ? Est-ce que la configuration des serveurs est identique ?

Etc... smile


Quelques tutoriaux Zend Framework !

Hors ligne

 

#12 22-01-2009 09:31:33

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: Page blanche sur serveur de production.

Salut,


Je ne sais pas s'il manque une partie de ton boostrap dans ce que tu as collé, mais je ne vois pas de startMvc().


A+ benjamin.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#13 23-01-2009 12:15:29

mckael
Nouveau membre
Date d'inscription: 15-12-2008
Messages: 3

Re: Page blanche sur serveur de production.

Salut,

C'est en affichant les erreurs via ini_set('display_errors',true); et $front->throwExceptions(true); que j'ai pu résoudre mon problème. Une fois qu'on arrive à traquer les erreurs, les restes s'ensuivent.
Grand remerciement à vous tous, étant un newbie en zend, je commence vraiment à l'apprécier.

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages