Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 26-02-2013 23:47:23

toF75
Membre
Date d'inscription: 26-02-2013
Messages: 10

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

Bonjour à tous,

Je tourne en rond depuis maintenant 4 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 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:

/ 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:

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:

// 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:

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:

realpath(APPLICATION_PATH.'/../').'/library'.PATH_SEPARATOR.

en :

Code:

realpath(APPLICATION_PATH.'/').'/library'.PATH_SEPARATOR.

(suppression du '../')

Et là, l'erreur est la suivante :

Code:

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.

Dernière modification par toF75 (26-02-2013 23:48:41)

Hors ligne

 

#2 27-02-2013 19:09:11

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

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

Bonjour !

Pour l'erreur de la fin c'est tout à fait normal. L'index.php est dans public, ../ remonte d'un dossier, donc si on supprime ces .. on s'attends à ce que le dossier library soit dans public...

Pour le reste, aurais-tu quelque part les logs d'apache ?

Serait-il aussi possible de voir ton application.ini de sorte à voir ce que tu as en terme d'affichage d'erreur.

Hors ligne

 

#3 28-02-2013 10:41:55

toF75
Membre
Date d'inscription: 26-02-2013
Messages: 10

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

Bonjour Théocrite et merci de ton intérêt pour mon post.

En effet, l'erreur de la fin est bien normale, le chemin du include_path vers library le prouve bien...
Mais je tenais à la faire apparaitre, pensant qu'elle pouvait aider, afin de montrer que mon site n'affiche pas "tout le temps" une erreur 500, quelle que soit la configuration.

Concernant les logs apache et le application.ini, je ne sais pas du tout ou cela se passe sur 1&1 en serveur mutualisé...

Je vais chercher.

Hors ligne

 

#4 28-02-2013 10:55:40

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

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

Pour l'application.ini je parle de celui du projet, tu sembles avoir une structure standard, donc dans /application/configs.

Pour les logs c'est toujours beaucoup plus complexe... Apparemment chez 1&1 tu devrais trouver un dossier logs à la racine de ton ftp d'après ce que j'ai lu. Celui qui m'interesse le plus devrais s'appeller error_log ou error.log ou un truc dans ce gout...

Hors ligne

 

#5 28-02-2013 10:59:33

toF75
Membre
Date d'inscription: 26-02-2013
Messages: 10

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

En effet, au temps pour moi.
Voici mon application.ini tel quel :

Code:

[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
phpSettings.date.timezone = "Europe/Paris"
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0
resources.layout.layout = "layout"
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
resources.view.doctype = "XHTML1_STRICT"

resources.session.save_path = APPLICATION_PATH "/configs/session"
;resources.session.use_only_cookies = true
resources.session.remember_me_seconds = 3600

;autoloaderNamespaces[] = "Doctrine"

autoloaderNamespaces.extension[] = "Base_"

autoloaderNamespaces.extension[] = "Application_"
autoloaderNamespaces.extension[] = "Doctrine"
autoloaderNamespaces.extension[] = "ZendX_"

; Doctrine
doctrine.dsn                = "mysql://root@localhost/prixjeux"
doctrine.data_fixtures_path = APPLICATION_PATH "/configs/doctrine/data/fixtures"
doctrine.sql_path           = APPLICATION_PATH "/configs/doctrine/data/sql"
doctrine.migrations_path    = APPLICATION_PATH "/configs/doctrine/migrations"
doctrine.yaml_schema_path   = APPLICATION_PATH "/configs/doctrine/schema/schema.yml"
doctrine.models_path        = APPLICATION_PATH "/models"
 
doctrine.generate_models_options.pearStyle  = true
; on génère les classes de table
doctrine.generate_models_options.generateTableClasses  = false
; on génère les classes de base. Ces classes contiennent les définitions de nos tables
doctrine.generate_models_options.generateBaseClasses  = true
; on définit un préfixe pour les classes de base
doctrine.generate_models_options.baseClassPrefix  = "Base_"
; on ne met rien ici, avec la convention pear, ils seront ajoutés dans le sous dossier Base
doctrine.generate_models_options.baseClassesDirectory  = ""
; on ne met pas le préfixe au nom de fichier
doctrine.generate_models_options.classPrefixFiles  = false
; toutes les classes commenceront par ce préfixe
doctrine.generate_models_options.classPrefix = ""

doctrine.generate_models_options.phpDocPackage = "Models"
doctrine.generate_models_options.phpDocSubpackage = "Low level models"
doctrine.generate_models_options.phpDocName = "Christophe Bienaime"
doctrine.generate_models_options.phpDocEmail = "christophe@bienaime.net"

doctrine.model_autoloading = "1"

[staging : production]

[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1


[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1

Pour le error_log, j'ai bien un dossier logs à la racine mais pas de error_log ou error.log ou autre fichier contenant le mot "error"... Je regarde plus en profondeur.

Hors ligne

 

#6 28-02-2013 11:04:06

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

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

Ok ce qu'on va faire c'est qu'on va passer en développement pour afficher les erreurs, puis une fois fonctionnel on remettra en mode production.

Dans ton .htaccess, change :

Code:

SetEnv APPLICATION_ENV production

par :

Code:

SetEnv APPLICATION_ENV development

Ensuite recharge la page et vois si tu as une vraie erreur.

Sinon, tu as quoi comme noms de fichiers dans logs ?

Hors ligne

 

#7 28-02-2013 11:16:03

toF75
Membre
Date d'inscription: 26-02-2013
Messages: 10

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

Malheureusement, aucun message ne s'affiche en modifiant le .htaccess...

Pour les logs, les fichiers qui ont une date de modification du 28/02 sont ftp.log et access.log.09.4 mais aucun ne contient les erreurs évidemment...

Par contre, je viens de me rendre compte que les droits d'accès au dossier logs sont 755 (aucun droit en écriture), ce qui expliquerait peut-être pourquoi il ne crée pas d'error.log ? J'ai tenté de modifier ces droits mais sans succès (vive les serveurs mutualisés...)

Dernière modification par toF75 (28-02-2013 11:50:33)

Hors ligne

 

#8 28-02-2013 11:49:55

toF75
Membre
Date d'inscription: 26-02-2013
Messages: 10

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

Si tu le souhaites, je peux te fournir l'adresse de mon site en MP pour que tu puisses consulter le info.php si ça peut aider... ?

Hors ligne

 

#9 28-02-2013 12:02:08

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

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

Malheureusement je ne pense pas trouver beaucoup plus d'informations...

Sans error logs, et j'ai vraiment pas l'impression qu'ils soient accessible chez 1&1, on ne peut pas savoir ce qu'il se passe sur Apache...

Selon le temps dont tu disposes, il faudrait que tu essayes de déployer ailleurs, chez un [url=https://www.olympe.in/enhébergeur gratuit[/url]par exemple, mais surtout il faudrait voir si ce n'est pas une question de charge trop lourde par rapport à ton type d'hébergement.

Pour la dernière solution, il faudrait voir jusqu'où tu peux entrer dans le dispatch avant de crasher (mettre des die('test'); en commençant par un à la fin de ton bootstrap (ajoute une méthode tout à la fin), dans le init du controller...).

Hors ligne

 

#10 28-02-2013 12:05:49

toF75
Membre
Date d'inscription: 26-02-2013
Messages: 10

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

Très bien, merci pour ton aide. Aujourd'hui le temps dont je dispose est malheureusement très limité. Je ne pourrai me concentrer sur mon problème que vendredi dans la soirée ou samedi dans la journée.

Je dispose d'un hébergement chez OVH mais il me semble que c'est un peu le bazar aussi avec eux. Je vais donc creuser en mettant des die() et autres exit() afin de voir ce qui plante...

Merci pour ton aide, je reviens vers toi dès que j'ai fait les tests et espère que tu pourras à nouveau consacrer un peu de ton temps à mon problème.

Hors ligne

 

#11 28-02-2013 12:09:45

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

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

Pour OVH j'avais écris un article à ce sujet en 2011 : Zend Framework chez OVH.

Le problème en ce moment chez OVH c'est que leur mutualisé est lent...

Hors ligne

 

#12 13-03-2013 22:06:29

toF75
Membre
Date d'inscription: 26-02-2013
Messages: 10

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

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.

Pour expliquer mes démarches simplement, j'ai commencé à déployer mon site sur OVH mais l'hébergement que je possède n'inclut aucune BDD. Ne voulant pas en rajouter pour le moment pour diverses raisons, j'ai lâché l'affaire.

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

Code:

define('APPLICATION_ENV', 'development');

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

Voilà, donc un grand merci pour ton aide, c'est maintenant résolu !

Hors ligne

 

#13 14-03-2013 10:33:24

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

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

Bonjour,

Comprends-tu l'utilité de la ligne que tu as ajouté ?

Que ce passe-t-il si tu mets plutôt :

Code:

define('APPLICATION_ENV', 'development');

En fait tu définis avec cette ligne quelle section de l'application.ini tu utilises, et normalement tu devrais utiliser production plutôt que développement...

Hors ligne

 

#14 14-03-2013 10:39:19

toF75
Membre
Date d'inscription: 26-02-2013
Messages: 10

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

Bonjour Théocrite,

Je comprends parfaitement l'utilité de cette ligne.
Pour info, j'ai fait du ZF 2 ans et je gère maintenant une équipe de dév ZF. Seulement, le fait de ne pas avoir mis la main à la patte quelques temps et surtout, les problèmes avec 1&1 m'ont fait venir sur le forum (et aucun de mes dév ne connais 1&1).

Je pense que dans ton précédent message, tu voulais remplacer "development" par "production" dans le code mais mon site étant encore en développement, je préfère laisser les messages d'erreur s'afficher.

Encore merci pour ton aide.

Dernière modification par toF75 (14-03-2013 10:42:10)

Hors ligne

 

#15 14-03-2013 10:43:03

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

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

Dans ce cas n'oublie pas de protéger l'accès, on sait jamais certains messages d'erreur peuvent contenir des informations importantes...

Sinon, chez 1&1 je crois me souvenir maintenant avoir eu des soucis avec le htaccess et précisément SetEnv qui me mettais des REDIRECT_APPLICATION_ENV lorsque j'utilisais APPLICATION_ENV... enfin bon de toutes façons 1&1 est un assez mauvais hébergeur...

Hors ligne

 

#16 14-03-2013 10:44:27

toF75
Membre
Date d'inscription: 26-02-2013
Messages: 10

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

Oui en effet, je me rends compte que 1&1 n'est pas terrible, du moins en mutualisé...

Ce que je voulais noter dans mon message de résolution, c'est le fait que définir le APPLICATION_ENV dans le .htaccess ne semble pas fonctionner sur 1&1 et qu'il faut le redéfinir dans le index.

Bizarre de n'avoir trouvé cette info sur aucun forum tout de même...

Hors ligne

 

#17 14-03-2013 10:48:28

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

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

J'avoue que personnellement il m'arrive de ne pas noter toutes mes experiences (et pourtant je tiens un blog de temps à autres), mais par exemple dans ce cas précis j'avais réussi à trouver seul mon problème donc je ne l'avais pas partagé, puis oublié, et je viens de m'en souvenir ce matin smile

Le problème c'est tous ces hébergeurs mutualisés avec des configs très spéciales... J'ai vu que tu utilises doctrine, j'avais aussi eu un problème un jour avec un Symfony 1.4/doctrine chez Amen, qui me mettais des erreurs 500... Il s'est finalement trouvé qu'en mettant un caractère spécial (par exemple avec un accent) dans chaque fichier de doctrine (en commentaire), les erreurs disparaissaient... Allons savoir pourquoi...

Hors ligne

 

#18 14-03-2013 11:15:25

toF75
Membre
Date d'inscription: 26-02-2013
Messages: 10

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

o_O ah oui en effet ! ça peut venir de l'encodage UTF-8 ça. Si tu utilises Notepad ++, il me semble qu'il ne prend en compte l'encodage UTF-8 que lorsque tu mets un accent, sauf si tu forces la chose...

Encore un mystère de l'informatique tout de même !

Le plus frustrant chez 1&1 tout de même, est de ne pas avoir accès aux logs d'erreur, c'est un peu une aberration tout de même...

Bref, encore merci smile

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