Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 16-02-2012 19:47:42

Dhampir
Nouveau membre
Date d'inscription: 16-02-2012
Messages: 5

Installation Zend sur Hébergement Mutualisé

Bonjour à tous.
premier post sur zf ! smile

J'ai développé une application en local où tout fonctionne correctement (sauf les bugs dans mes controllers big_smile)

Seulement, je rencontre quelques soucis avec la mise en ligne de mon appli zend.

Mon soucis vient plutôt de l'url rewriting je pense. J'ai peiné à mettre un place un .htaccess, et je me suis limité à insérer seulement deux lignes qui font que ma page d'accueil s'affiche :
Voici le .htaccess déposé dans le répertoire www de mon appli

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/public
RewriteRule (.*) /public/$1 [QSA,L]

Dans www j'ai tout mes dossiers (application, library, public).

Mon soucis est dès que je clic sur un lien, je tombe sur une 404 :
exemple, j'ai un module clubphoto avec une action galerie, l'url : BASEURL/clubphoto/galerie me lève une erreur 404.


Pour info je suis sur un hébergement mutualisé chez amen.


Débutant en htaccess, y aurait-il des règles que j'aurais oublié?

Pour info (bis), j'ai tenté pas mal de version ou de règle trouvé sur le forum mais je tombais sur des 403 dès lors que j'accédais à la page d'accueil.


Merci d'avance smile

Dernière modification par Dhampir (16-02-2012 19:48:55)

Hors ligne

 

#2 17-02-2012 10:39:22

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

Re: Installation Zend sur Hébergement Mutualisé

Bonjour,

Amen est un très mauvais choix d'hébergeur ! Désolé de t'en informer, mais j'en ai fais les frais il n'y a pas longtemps et ça me reste un peu en travers...

Je pense que le plus simple pour toi, c'est de mettre dans www les fichiers que tu as dans public, et au niveau root (/) tu mets tous les autres dossiers.

Normalement tout devrait fonctionner sans t'embêter plus !

Hors ligne

 

#3 17-02-2012 10:58:24

Dhampir
Nouveau membre
Date d'inscription: 16-02-2012
Messages: 5

Re: Installation Zend sur Hébergement Mutualisé

Bonjour,
merci pour cette réponse rapide.

Et merci pour le conseil pour Amen, pour les prochains sites j'y songerais smile
J'ai eu un soucis avec une réservation de nom de domaine, ils n'ont rien voulu entendre. Enfin bon.

Pour mon soucis actuel,
Ce que vous me conseillez serait de mettre dans /public du serveur tout mes répertoires zend (application & librairy) et dans /public/www tout ce qui est inclus dans le public de mon projet?

Du coup ma redirection sur le htaccess s'en retrouve modifié, nan?

Je test ça ce soir, car mon projet et mes accès ftp sont sur mon poste perso.

Merci encore pour les conseils

Hors ligne

 

#4 17-02-2012 11:13:16

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

Re: Installation Zend sur Hébergement Mutualisé

Alors je suis parti du point de vue ou le projet zend utilise l'architecture recommandé :
/
/application
/application/...
/library
/public
/public/...

Le point d'entrée de l'application est donc /public/

La façon propre de procéder est de faire pointer le domaine directement sur /public/, or ici ce n'est pas possible, car amen ne le permet pas.
Chez Amen, on a le domaine qui pointe sur www/. L'architecture de l'hébergement est donc le suivant
/ <= racine
/www/ <= pointage du nom de domaine

Le concept est donc le suivant : les données contenues dans le dossier public du projet se retrouvent dans le dossier www du serveur (même niveau, pointage du domaine), et les données à la racine de l'application normalement se retrouvent à la racine du serveur (application, library...).

Si on regarde le point d'entrée de l'application (si il n'a pas été trop modifié), on se rends compte que l'application fonctionne en grande partie grâce à la globale APPLICATION_PATH, qui pointe sur le répertoire inférieur, ce qui ne pose pas de problème dans notre cas.

Code:

[lang=php]
<?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(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();

A partir de là, on a plus aucun soucis. Une recherche de "public" sur tout le projet est tout de même nécessaire pour vérifier que cette chaine n'a été mise en dur nul part dans l'application, mais si elle est bien faite il n'y aura pas de réponse à cette recherche.

Passons maintenant à l'inconvénient majeur de cette méthode : dans le cadre du déploiement de l'application, on peut utiliser le gestionnaire de version (svn ou git...) pour récupérer l'application ou la mettre à jour da façon simple et fiable. Ici, ce ne sera pas possible. D'un autre côté, Amen ne propose pas d'accès SSH, et il n'y a donc aucun moyen d'utiliser un outil de versionning, donc de toutes façons on ne perd rien, sauf l'intégration par ftp depuis une plateforme d'intégration continue.

Hors ligne

 

#5 18-02-2012 00:14:57

Dhampir
Nouveau membre
Date d'inscription: 16-02-2012
Messages: 5

Re: Installation Zend sur Hébergement Mutualisé

Merci pour tout ces détails.
La réecriture d'url semble fonctionner smile
ce que j'ai fait :
1) j'ai définit l'arborescence que vous m'avez indiqué (public répertoire de base et www contient mon index.php puis les ressources web)
2) .htaccess déplacé dans www et modifié ainsi :

RewriteEngine On
RewriteBase /
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
Options -MultiViews


Je sais il n'est pas top. Mais je l'affinerais lorsque tout fonctionnera.

Là j'ai un soucis avec la connexion à la base de données. Mais j'avance petit à petit smile

Merci pour le coup de main !

Hors ligne

 

#6 18-02-2012 01:12:02

Dhampir
Nouveau membre
Date d'inscription: 16-02-2012
Messages: 5

Re: Installation Zend sur Hébergement Mutualisé

Je me permet de reposter car ce problème de communication avec la BDD m'inquiète.

sur une page, où je dois chercher des informations en base (liste d'évènements), j'ai une exception levée :

Application error
Exception information:

Message: SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Stack trace:

#0 /htdocs/public/library/Zend/Db/Adapter/Pdo/Mysql.php(109): Zend_Db_Adapter_Pdo_Abstract->_connect()
#1 /htdocs/public/library/Zend/Db/Adapter/Abstract.php(459): Zend_Db_Adapter_Pdo_Mysql->_connect()


En googlant un peu, des pistes indiquerait que la conf soit incomplète, j'ai ajouté la propriété à mon application.ini:

resources.db.params.unix_socket = /var/lib/mysql/mysql.sock

En vain, ou alors de mettre à jour mon php.ini en ajoutant une valeur à la propriété mysql.default_socket.
En vain également (le php.ini se modifie par une interface proposé par Amen).

Ce problème a-t-il été déjà rencontré mais que les pistes énoncées ci-dessus n'ont pas résolu le problème?

Merci d'avance.

Hors ligne

 

#7 18-02-2012 08:52:11

Dhampir
Nouveau membre
Date d'inscription: 16-02-2012
Messages: 5

Re: Installation Zend sur Hébergement Mutualisé

Bon je devais être fatigué hier, j'ai résolu mon souci smile
une mauvaise config pour l'accès à la base ... ^^

Sujet résolu, merci Théocrite

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