Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MVC PHP Discussion :

Erreur 500 ou Fatal Error sur 1&1 (mutualisé)


Sujet :

MVC PHP

  1. #1
    Nouveau Candidat au Club
    Erreur 500 ou Fatal Error sur 1&1 (mutualisé)
    Bonjour à tous,

    Je tourne en rond depuis maintenant 5 jours et je m'arrache littéralement les cheveux... J'ai parcouru énormément de sujets de divers forums, testé 36 configurations différentes et je n'arrive toujours pas à trouver de solution...
    Je me permets donc de poster sur votre forum, en espérant que ce problème apparemment récurent ne vous enlève pas l'envie de m'aider...

    (J'ai d'abord créé ce topic sur le forum z-f mais il ne semble pas être très consulté, je tente donc ma chance ici...)

    J'ai créé un site en ZF 1.11 qui fonctionne parfaitement en local (WAMP).
    Mais dès lors que je le passe sur mon serveur 1&1 mutualisé, impossible d'afficher mon site. Soit il me fait une erreur 500, soit il me fait une Fatal error.

    Pour vous permettre de mieux comprendre, voici les détails de ma configuration :

    Sur 1&1, j'ai activé php 5.4 et j'ai mis la racine de mon site dans le répertoire public.

    La structure de mon projet respecte la plupart des recommandations MVC, à savoir :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    / application
       / configs
       / controllers
       / models
       / views
    / library
       / Zend
    / public
       .htaccess
       index.php
       php.ini
     
    J'ai omis certains dossiers et sous-dossiers qui n'aident pas à la compréhension de mon problème...

    Le contenu de mon .htaccess est le suivant :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    AddType x-mapp-php6 .php
    AddHandler x-mapp-php6 .php
     
    Options -Indexes
    Options -Multiviews
    Options +FollowSymLinks
     
    SetEnv REGISTER_GLOBALS 0
    SetEnv APPLICATION_ENV production
    SetEnv PHP_VER 5_4
     
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^.*$ index.php [NC,L]

    J'ai testé beaucoup de configurations différentes...

    Concernant mon /public/index.php :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // Define path to application directory
    defined('APPLICATION_PATH')
        || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
     
    // Define application environment
    defined('APPLICATION_ENV')
        || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
     
    // Ensure library/ is on include_path
    set_include_path(
        realpath(APPLICATION_PATH.'/../').'/library'.PATH_SEPARATOR.
        APPLICATION_PATH.'/models'.PATH_SEPARATOR.
        realpath(APPLICATION_PATH.'/../').'/library/Zend'.PATH_SEPARATOR.
        get_include_path()
    );
     
    /** Zend_Application */
    require_once 'Zend/Application.php';
     
    // Create application, bootstrap, and run
    $application = new Zend_Application(
        APPLICATION_ENV,
        APPLICATION_PATH . '/configs/application.ini'
    );
    $application->bootstrap()
                ->run();

    J'essaie ensuite d'accéder à mon site (à la racine ou encore dans un module admin/index, le problème est le même). Mais là, l'erreur suivante apparait :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Erreur serveur
     
    Le site Web a rencontré une erreur lors de l'extraction de http://mon-domaine.fr/. Cela peut être dû à une opération de maintenance ou à une configuration incorrecte.
    Voici quelques suggestions :
    Actualisez cette page Web ultérieurement.
    Erreur HTTP 500 (Internal Server Error) : Une situation inattendue s'est produite tandis que le serveur tentait de traiter la demande.

    De plus, si je change, dans le fichier index.php la ligne suivante :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    realpath(APPLICATION_PATH.'/../').'/library'.PATH_SEPARATOR.

    en :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    realpath(APPLICATION_PATH.'/').'/library'.PATH_SEPARATOR.

    (suppression du '../')

    Et là, l'erreur est la suivante :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Warning: require_once(Zend/Application.php): failed to open stream: No such file or directory in /homepages/31/d144256990/htdocs/NOM_DE_DOMAINE/public/index.php on line 27
     
    Fatal error: require_once(): Failed opening required 'Zend/Application.php' (include_path='
    /homepages/31/d144256990/htdocs/NOM_DE_DOMAINE/application/library:
    /homepages/31/d144256990/htdocs/NOM_DE_DOMAINE/application/models:
    /homepages/31/d144256990/htdocs/NOM_DE_DOMAINE/library/Zend:
    .:
    /usr/lib/php6
    ') in /homepages/31/d144256990/htdocs/NOM_DE_DOMAINE/public/index.php on line 27

    (J'ai volontairement scindé l'include_path pour une meilleure lecture...)


    Voilà, j'espère que mes explications sont assez claires et vous permettront de m'aider parce que là je n'ai pas d'autre espoir :'(

    Un grand merci d'avance.

  2. #2
    Membre éprouvé
    Supprimer le .htaccess pour voir s'il va affiché la page racine.
    A la recherche d'un film : http://chercher-un-film.com

  3. #3
    Nouveau Candidat au Club
    Bonjour m4riachi et merci de ta réponse.

    J'ai supprimé le .htaccess et j'ai en effet toujours mon erreur 500.

    Par contre, à la racine, il y a également un fichier info.php qui lui, s'affiche à merveille...

  4. #4
    Membre éprouvé
    Il y'a certainement des directives dans ton htaccess qui sont interdites par 1and1. La consultation des logs de ton serveur t'en dira un peu plus.
    En plus dans ton htaccess tu as bien activé php5.4 comme ceci:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
     
    AddType x-mapp-php6 .php
    AddHandler x-mapp-php6 .php
    ce qui est tout a fait recommandé par 1and.

    En revanche cette ligne n'a aucune importance :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
     
    SetEnv PHP_VER 5_4


    Autre chose tant que ton site n'est pas encore fonctionnel il faut laisser la directive SetEnv APPLICATION_ENV en mode "development" ceci permet à zf de donner les détails de l'erreur produite.
    ta racine web pointe-t-elle sur public?

  5. #5
    Nouveau Candidat au Club
    Après quelques semaines d'absence (et de galère avec 1&1 et OVH...), me re-voici.

    J'ai enfin réussi à résoudre mon problème.

    Sur un sujet traitant d'OVH, j'ai vu qu'il était nécessaire de rajouter une ligne dans index.php :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    define('APPLICATION_ENV', 'development');


    J'ai donc testé sur 1&1 et miracle, ça marche maintenant parfaitement !

    Voilà, donc merci pour votre aide, c'est maintenant résolu !

  6. #6
    Membre expérimenté
    Bonjour,
    Tu peux mettre cela au niveau de ton vhost ou dans ton htaccess

  7. #7
    Nouveau Candidat au Club
    Justement, tout l'intérêt de mon dernier message est là, j'avais déjà configuré la variable d'environnement dans le .htaccess (cf mon 1er message dans lequel je le set à "production") mais 1&1 ne la prenais pas en compte. Il a donc fallu la définir à la main dans le public/index.php.

    Concernant le vhost, comme dit précédemment je suis sur un serveur mutualisé, donc aucun accès aux vhosts...