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 :

tutoriel-zf -> internal server error


Sujet :

MVC PHP

  1. #1
    Membre expert
    tutoriel-zf -> internal server error
    Bonjour,

    j'ai réussi à installer ZF mais les problèmes continuent : après avoir créé tutoriel-zf (zf create project tutoriel-zf), si je lance
    http://localhost/tutoriel-zf/public/, internal server error.

    Comme je soupçonne que ça vienne du .htaccess qui se trouve dans "public", voici ce que j'ai sur mon PC :
    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
    RewriteEngine On
    # The following rule tells Apache that if the requested filename
    # exists, simply serve it.
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    # The following rewrites all other queries to index.php. The 
    # condition ensures that if you are using Apache aliases to do
    # mass virtual hosting, the base path will be prepended to 
    # allow proper resolution of the index.php file; it will work
    # in non-aliased environments as well, providing a safe, one-size 
    # fits all solution.
    RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::$
    RewriteRule ^(.*)$ - [E=BASE:%1]
    RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L]


    Quelqu'un voit-il le problème ?
    Le symbôle bizarre à la ligne 14 s'affiche avec Notepad++ "STX"
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  2. #2
    Membre éprouvé
    Personnellement je ne vois pas de problème dans ce htaccess (ni de caractère bizarre ligne 14).

    En cas d'erreur 500, va dans les logs et sort nous quelques lignes, la réponse s'y trouvera.

  3. #3
    Membre expert
    j'ai trouvé ça dans Apache access logs
    127 0.0.1 - - [23/Aug/2013:09:08:42 +0200] "GET /tutoriel-zf/public HTTP/1.1" 301 244
    127.0.0.1 - - [23/Aug/2013:09:08:42 +0200] "GET /tutoriel-zf/public/ HTTP/1.1" 200 2195
    127.0.0.1 - - [23/Aug/2013:09:10:46 +0200] "GET /tutoriel-zf/public/ HTTP/1.1" 500 535
    (ni de caractère bizarre ligne 14).
    Pour moi, l'avant dernier avant le dollar...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  4. #4
    Membre éprouvé
    J'ai des :: devant le dollar de la ligne 14, rien d'exceptionnel donc.

    Sinon, merci pour l'access.log mais c'est le log d'erreur qu'il nous faut, l'accès nous dit seulement qui a demandé quoi

  5. #5
    Membre expert
    Désolé, pas très assidu sur mes mails...

    Pour être sûr, j'ai recommencé pour avoir un log à jour :
    [Fri Aug 23 16:35:29 2013] [alert] [client 127.0.0.1] C:/wamp/www/tutoriel-zf/public/.htaccess: Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration
    ...et RewriteEngine, c'est la 1e ligne du .htaccess

    'ai des :: devant le dollar de la ligne 14, rien d'exceptionnel donc.
    Entre les :: et le $, il y a et c'est ça que je trouve bizarre
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  6. #6
    Membre éprouvé
    il faut activer le module mod_rewrite de apache en mettant AllowOverride à All dans le fichier php.ini

    Sous linux, pour l'activer :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
     
    sudo a2enmod rewrite

    puis redémarrage d'apache

  7. #7
    Membre expert
    J'ai rajouté AllowOverride=All tout en bas du fichier php.ini mais ça ne change rien
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  8. #8
    Membre éprouvé
    Citation Envoyé par armel18 Voir le message

    Sous linux, pour l'activer :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
     
    sudo a2enmod rewrite

    puis redémarrage d'apache
    Je dirais que la réponse est là...

  9. #9
    Membre expert
    oui, mais sous Windows Seven, ça donne quoi ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  10. #10
    Membre éprouvé
    Windows 7 oui, mais quelle installation d'Apache ? Un wamp, xampp ou quoi ?

  11. #11
    Membre éprouvé
    Citation Envoyé par laurentSc Voir le message
    J'ai rajouté AllowOverride=All tout en bas du fichier php.ini mais ça ne change rien
    non tu n'as pas à ajouter la directive AllowOverride car elle existe déjà dans le fichier php.ini et dans ton cas elle est probablement à None.Donc il suffit de remplacer None par All:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
     
    AllowOverride All

    pour finir il te faut redémarrer le serveur apache.

    Alternative à la méthode précédente:
    sous windows(wamp par exemple), dans la barre des tâches tu cliques sur l'icône wamp ->Modules apache-> puis coché rewrite_module
    Enfin il faut toujours redémarrer apache

  12. #12
    Membre expert
    merci beaucoup, comme je suis bien sous Wamp, en cochant "rewrite_module", je n'ai plus l'internal server error, mais j'ai autre chose :
    Fatal error: require_once() [function.require]: Failed opening required 'Zend/Application.php' (include_path='C:\wamp\www\tutoriel-zf\library;.;C:\php\pear') in C:\wamp\www\tutoriel-zf\public\index.php on line 18
    et pas étonnant car cette ligne 18, c'est : require_once 'Zend/Application.php'; et ce répertoire "Zend" n'existe pas (le répertoire "C:\wamp\www\tutoriel-zf\library" est vide) ... : où puis-je trouver ce répertoire ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  13. #13
    Membre éprouvé
    il te manque la librairie zend qu'il faut télécharger. sans elle tu ne peux pas démarrer un projet avec zend framework.

    voici le lien de téléchargement de zend:
    zend framework 1

    après téléchargement, tu désarchives la librairie.après avoir désarchivé tu copies le répertoire Zend( situé dans library) vers library de ton projet(tutoriel-zf\library).

    Il y a toute la procédure d'installation et d’initiation à zend framework ici:
    debuter avec zend-framework-1-10/

  14. #14
    Membre expert
    Merci pour ta réponse ; ce tuto, justement je suis en train de le suivre ; donc, j'avais déjà téléchargé Zend et le répertoire qui me manquait, je l'avais déjà ! (Sans le savoir). Je l'ai donc copié et miracle (mais cette précision manque dans le tuto).
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell