Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Je m'excuse par avance si le sujet a déjà été lancé mais pour l'instant je n'ai pas trouvé de réponse à mon problème. En fait, pour être clair je suis un débutant sur Zend Framework et j'utilise la version 1.11.3. J'ai développé une ébauche de mon application et apparemment ça marche en local. En voulant tester sur un hébergement gratuit, je n'ai pas réussi à la faire fonctionner; j'ai le fameux message "Internal server error 500".
Ma question est la suivante : y-a-t-il un hébergeur gratuit (même limité en espace de stockage et de bases de données ça ne fait rien ) avec lequel vous avez réussi à faire tourner vos applis ? Dans ce cas, quelle configuration faut-il faire (php.ini, application.ini et .htaccess à modifier je suppose ??) pour le passage du local au distant.
Au pire des cas quel est l'hébergeur compatible avec Zend Framework qui reste bon marché et qui nécessite le moins de config vous avez pu utiliser ? Un cas rêvé (il est permis de rêver) serait juste d'importer l'arborescence de mon appli et là tout fonctionnerait comme chez moi en local
Merci beaucoup.
Bien cordialement
Hors ligne
J'utilise en production OVH sans problème.
Leurs hébergements commencent à environ 25 euros par an, ce qui est très raisonnable.
Hors ligne
Bonjour,
Je conseille aussi OVH, rien que niveau performance les sites développés avec Zend Framework nécessitent des serveurs web suffisamment puissants... Ce qui exclus la plupart des hébergements gratuits.
J'ai rédigé un tutoriel pour l'hébergement de projets ZF sur OVH : Zend Framework avec OVH.
Après le principe est souvent le même avec d'autres hébergeurs, mais OVH est digne de confiance
Hors ligne
Bonjour, je suis dans le même cas que Cymraeg : depuis la semaine dernière, j'ai une appli qui tourne en local (développée au cours d'un stage) et j'aimerais la mettre sur internet, pas chez OVH (d'ailleurs, pas moyen d'aller sur le tuto), mais chez 1&1 (et là, j'ai déjà une base MySQL) ; par contre, je ne sais pas faire : quels fichiers de config modifier (xxx.ini et .htaccess) ?
Hors ligne
laurentsc a écrit:
pas chez OVH (d'ailleurs, pas moyen d'aller sur le tuto)
Tu as une erreur ? (en fait c'est mon blog, donc si ça marche pas c'est pas cool )
laurentsc a écrit:
je ne sais pas faire : quels fichiers de config modifier (xxx.ini et .htaccess) ?
Quelle est l'architecture proposée par 1&1 ? Tu as un répertoire genre www ou public dans ton home directory ?
As-tu un accès ssh ?
Tu es bien en environnement Linux ?
Hors ligne
Théocrite a écrit:
Tu as une erreur ?
Aucune (ça ne s'ouvrait pas), mais je viens de réessayer et ça a marché...
Et pour faire plus simple, comme j'ai aussi des hébergements chez OVH (avec MySQL), je vais tenter d'appliquer ton tuto (qd j'aurai le tps...), et je reviendrai ici pour dire ce qu'il en est.
PS : mon OS, c'est pas Linux, mais Windows XP (J'ai déjà lu "Windaube", mais j'ai pas choisi ; c'est un PC professionnel et ils sont abonnés à XP).
Hors ligne
laurentsc a écrit:
PS : mon OS, c'est pas Linux, mais Windows XP (J'ai déjà lu "Windaube", mais j'ai pas choisi ; c'est un PC professionnel et ils sont abonnés à XP).
Je parlais de l'OS du serveur d'hébergement chez 1&1, le plus souvent on trouve encore du Windows sur les postes clients en entreprise...).
Si tu as une architecture de base sur ton projet ZF, tu auras un truc genre
-application
-library
-public
Sur les hébergements en général on a un home dans lequel se trouve un dossier, sur lequel pointe le vhost associé au domaine. Souvent, ce dossier ne s'appelle pas public comme dans l'archi ZF, mais plutôt www ou htdocs.
Les solutions dans ce cas peuvent être :
-mettre le contenu de public dans le dossier www ou autre et tous les autres fichiers à la racine
-se connecter en ssh si c'est possible, tout uploader à la racine, puis faire un lien symbolique de www par exemple à public.
Je ne sais pas si je me suis bien exprimé, mais l'idée est là.
Dernière modification par Théocrite (11-10-2011 11:12:15)
Hors ligne
Chez 1&1, c'est bien linux.
Chez eux, il n'y a pas de répertoire "www" ou "home" ou "htdocs", etc. ; on place tout à la racine ; donc j'imagine qu'il suffirait de recopier l'arborescence créée par ZF.
Qu'est-ce que tu appelles SSH : jamais entendu ça...Et ds le tuto, tu parles de "Putty" : connais pas non plus.
Enfin, ds OVH, tu parles d'hébergement pro : or, j'ai été sur le manager de l'hébergement que j'ai chez OVH et il y a marqué "Hébergement WEB Perso"...
Ai-je des chances de m'en sortir ? (juste, un essai ; je découvre)
Dernière modification par laurentsc (11-10-2011 14:22:02)
Hors ligne
Oui tu as des chances de t'en sortir... c'est juste plus compliqué...
Chez OVH, si tu as un pack perso, tu peux oublier le ssh... et donc oublier putty par la même occasion (ssh est un protocole sécurisé te permettant un accès en console à la machine distante, putty est un client ssh ).
Repartons donc sur ton hébergement chez 1&1. Tu vas donc copier tel quel ton projet sur le serveur.
Si tu ouvres un navigateur et que tu vas sur le site, tu auras un superbe accès à ton arborescence de ton projet (notamment accès à application.ini, ce qui est embêtant...). Il va donc falloir utiliser les instructions d'Apache pour rediriger ton site sur /public.
Je te propose donc ma traduction personnelle d'un article de Rob Allen qui traite de cette problématique : Zend Framework sur hébergement mutualisé.
Hors ligne
Si tu ouvres un navigateur et que tu vas sur le site, tu auras un superbe accès à ton arborescence de ton projet
Ca, ça serait cool, mais si je pointe sur public/index.php, je n'ai qu'une page blanche et si j'affiche le source de la page, il est limité à
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META content="text/html; charset=utf-8" http-equiv=Content-Type></HEAD> <BODY> <SCRIPT id=id_predict_include_script type=text/javascript src="http://cdn1.predictad.com/scripts/publishers/sweetim/predictadme.js"></SCRIPT> </BODY></HTML>
alors que le code de index.php, c'est
<?php // 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('.' . PATH_SEPARATOR . './library' . PATH_SEPARATOR . './application/models/' . PATH_SEPARATOR . './application/utils/' . PATH_SEPARATOR . './application' . PATH_SEPARATOR . get_include_path()); */ set_include_path(implode(PATH_SEPARATOR, array( realpath(APPLICATION_PATH . '/../library'), 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();
Hors ligne
Tu es d'accord que ton fichier index est un fichier php... Et que celui-ci est donc interprété et te renvoi une page html... Qui semble dans ton cas être vide (enfin elle charge juste des javascripts).
Hors ligne
J'en ai déduit qu'il ne fallait pas appeler cet index.php, du coup, j'ai essayé "/zend/nomprojet/application/views/scripts/book/index.phtml" et ça me donne :
Fatal error: Using $this when not in object context in /homepages/18/d246623212/htdocs/zend/nomprojet/application/views/scripts/book/index.phtml on line 5
, alors
Hors ligne
Ton projet marche en local ? J'imagine que tu ne l'as pas codé toi même étant donné que tu n'as pas l'air de savoir comment ça marche...
Les fichiers phtml sont des vues, elles fonctionnent donc avec les valeurs issues des controlleurs, et contiennent du PHP...
Le seul fichier que tu appelles (cf public/.htaccess) est index.php dans public, qui s'occupe de tout instancier et de rendre le code html généré.
Hors ligne
Théocrite a écrit:
Ton projet marche en local ? J'imagine que tu ne l'as pas codé toi même étant donné que tu n'as pas l'air de savoir comment ça marche...
Il faut t'appeler Sherlock Holmes ? En fait, j'ai suivi la semaine dernière un stage sur ce sujet et ce code vient du formateur ; mais comme tout est en local, je voulais d'abord réussir à le mettre en ligne et deuxio étudier le code pour assimiler : sur le coup, je comprenais au fur et à mesure, mais je suis loin d'avoir assimilé...
Donc là, OK, ça ne sert à rien d'exécuter une vue, mais du coup, comment visualiser le site, vu que public/index.php ne donne rien ??
Hors ligne
Si je te dis que quand tu executes index.php sans paramètres, tu vas appeler le controlleur et l'action par défaut : indexController / indexAction.
Si tu mets des infos dans /application/views/scripts/index/index.phtml, elles devraient s'afficher.
Je pense sincèrement qu'il faut apprendre le fonctionnement du code avant d'apprendre l'hébergement...
Essaye le tutoriel d'introduction à Zend Framework de Rob Allen (version en français dispo). C'est une bonne base et ça te donnera un point de vue plus complet que ce que ton formateur t'as donné...
Hors ligne
OK, je vais suivre ton conseil et étudier tout d'abord ce tuto (j'ai téléchargé la version fr). Je possède également (j'avais essayé de le lire avant le stage et l'avais alors trouvé imbuvable) le bouquin Z F Bien développer en PHP de Pauli et Ponçon ; qu'en penses-tu pour un débutant ?
Hors ligne
Honnêtement je ne peux rien te dire concernant le livre, si ce n'est que les auteurs sont deux membres très reconnus de la communauté Zend.
Je n'ai pas eu la chance de lire leur ouvrage, qui m'aurait surement évité des heures de recherches sur le net.
Hors ligne
Bon, merci je pense commencer par ton tuto, puis tenter la mise en ligne ; ensuite ce bouquin semble décrire différents composants, donc est intéressant pour approfondir.
Hors ligne
Je m'aperçois en lisant ce tuto que bien que je comprenne, je ne suis pas du tout familiarisé avec la POO (je comprends mais jamais appliqué) ; je me dis qu'une première étape serait d'étudier un tuto sur la POO, et je me demandais si cela pourrait faire l'affaire (et si je pourrais m'en sortir seul ou non). Qu'en penses-tu ?
Hors ligne
Selon ton niveau en PHP et en POO, ça peut suffire ou non.
Je te conseille aussi de lire la Programmation Orientée Objet en PHP sur le site du Zéro, ça rappelle bien les différents concepts, mais aussi les syntaxes.
Ce que tu peux faire c'est suivre le tuto du SDZ, compléter avec le tutoriel de développez, puis quand tu auras fait la partie 3 (pratique) du SDZ, essaye de la refaire en ZF en utilisant le tutoriel d'Akrabat.
Hors ligne
J'avais répondu hier, mais je m'aperçois qu'il n'y a rien.
Donc, d'abord, merci Theocrite pour ta réponse.
Mon niveau : j'ai fait une dizaine d'années de programmation en langage C (mon boulot), donc ai appris facilement le PHP (par moi-même, tout comme le langage C) et le javascript. Cela dit, je m'aperçois, que même si je sais faire pas mal de choses en PHP, il y a des gros trous ; exemple révélateur : même si je comprends les tableaux associatifs, les miens sont tous indexés, et sinon, pour MySQL, c'est la plupart du tps des instructions my_sql, parfois my_sqli, mais jamais pdo.
La POO : je suis familiarisé (stage C++ ds les années 90), mais jamais pratiquée.
Dernière modification par laurentsc (19-10-2011 16:00:22)
Hors ligne
Je pense que l'article du SDZ suffira à te faire comprendre les pratiques.
Concernant les accès aux bases de données, ce qu'il faut garder en mémoire lors de l'utilisation de Zend Framework, et notamment des Zend_Db, c'est qu'il faut à tout prix éviter de taper des requêtes, et utiliser plutôt les fonctions qui te sont fournies dans les classes (méthodes donc pour être précis). Cette pratique te permettra d'être indépendant du SGBD et te permettra donc une éventuelle migration en douceur !
Hors ligne
Je viens de repenser à une question que j'avais mise hier mais oubliée tout-à-l'heure : le tuto d'Akrabat et celui de Rob Allen, c'est bien le même ?
Et sinon, merci pour ton rappel sur les bdd ; ça me rappelle un truc vu lors de mon stage :
$data=array('title'=>$title, ... ); $this->insert($data); $this->update($data,'id='.(int)$id); ou $this->delete('id='.(int)$id);
Hors ligne
En fait Akrabat est le pseudo de Rob Allen
Après je pense qu'avec ton stage et le tutoriel, tu vas t'y retrouver. Les points les plus durs sont d'après moi les formulaires et les bases de données (pas les simples, qui s'apprennent vite, mais les complexes).
Hors ligne
Pages: 1