Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Voilà, je suis en train de mettre en ligne (linux) une partie d'un projet et il y a des comportements complètement différents avec la version local qui est sous Windows (et je ne parle pas de la casse )
Exemple avec ce bout de code dans le bootstrap :
/** * Bootstrap::_initViews() * * @return */ protected function _initViews() { $mvc = Zend_Layout::startMvc(); }
pourtant simple non ?
Et dans le layout j'ai ceci :
<?php echo $this->Layout()->content ?>
Voila l'erreur :
Warning: is_readable(): open_basedir restriction in effect. File(/usr/share/php5//srv/www/vhosts/domaine.com/httpdocs/Applications/Install/views/helpers/Layout.php) is not within the allowed path(s):
Donc si je comprends bien il ne trouve pas l'aide de vue qui devrait se trouver dans "Applications/Install/views/helpers/". Normal puisque je souhaite appeler l'aide de vue de la librairie de Zend.
Voila en extrait si je fait un
Zend_Debug::Dump($this->view);
dans indexAction() de install.
["_prefixToPaths:protected"] => array(1) { ["Zend_View_Helper_"] => array(2) { [0] => string(17) "Zend/View/Helper/" [1] => string(77) "/srv/www/vhosts/domaine.com/httpdocs/Applications/Install/views/helpers/" } }
Il prend bien l'index 1 du tableau, mais il ne devrais pas prendre en premier l'index 0 ? Parce que là, s'il se fiche de ma tête il faut qu'il me le dise, parce que le même code fonctionne bien sous Windows (qui pour ce soir est mon ami LOL).
Voilà j'ai fini de péter mon câble. Si vous avez des idées, je suis preneur.
Bien cordialement.
Hors ligne
Bonjour,
J'ai repris à la lettre près la documentation de Zend en croyant que j'ai fais des erreurs dans ma programmation : http://framework.zend.com/manual/fr/zen … start.html
Et lorsque je mets dans le layout :
<?php echo $this->layout()->content ?>
J'ai donc toujours la même erreur :
Warning: is_readable(): open_basedir restriction in effect. File(/usr/share/php5//srv/www/vhosts/domaine.com/httpdocs/application/views/helpers/Layout.php) is not within the allowed path(s): (/srv/www/vhosts/domaine.com/httpdocs:/tmp) in /srv/www/vhosts/domaine.com/httpdocs/Core/Zend/Loader.php on line 190 Warning: is_readable(): open_basedir restriction in effect. File(/usr/share/php5/PEAR//srv/www/vhosts/domaine.com/httpdocs/application/views/helpers/Layout.php) is not within the allowed path(s): (/srv/www/vhosts/domaine.com/httpdocs:/tmp) in /srv/www/vhosts/domaine.com/httpdocs/Core/Zend/Loader.php on line 190
Mais il y a une petite différence, c'est qu'il a tout de même réussi a aller chercher ce qu'il y a dans la vue pour l'afficher dans le layout.
Ce que j'en déduit c'est qu'il s'arrête pas a l'aide de vue de zend, mais tente tout de même d'aller cherche la deuxième aide de vue personnalisé. Or il n'y en a pas !
Pouvez-vous me dire comment faire sorte de ne plus avoir cette erreur de façon a ce que se soit propre ? Sans mettre à 0 les valeurs de "display_startup_errors" et "display_errors"
Merci d'avance de votre aide.
Bien cordialement.
Hors ligne
Le open_basedir, c'est une configuration apache qui t'empêche de lire un fichier en dehors d'un répertoire donné.
En gros l'erreur dit que tu n'as pas le droit d'accéder à :
/usr/share/php5//srv/www/vhosts/domaine.com/httpdocs/application/views/helpers/Layout.php
A mon avis il devrait chercher son fichier dans le répertoire
/srv/www/vhosts/domaine.com/httpdocs/application/views/helpers/Layout.php
(sans le /usr/share/php5/).
Comment fais tu pour déterminer ton APPLICATION_PATH ? Tu peux nous envoyer ton index.php ?
A+, Philippe
Hors ligne
Alors le index est celui qui est proposé par Zend :
defined('APPLICATION_PATH') || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/application')); // Define application environment defined('ENV') || define('ENV', (getenv('ENV') ? getenv('ENV') : 'production')); set_include_path(implode(PATH_SEPARATOR, array( dirname(__FILE__) . '/Core', get_include_path(), ))); /** * * Zend_Application */ require_once 'Zend/Application.php'; // Create application, bootstrap, and run $application = new Zend_Application( ENV, APPLICATION_PATH . '/configs/application.ini' ); $application->bootstrap()->run();
La constante ENV est définie dans le .htaccess.
Merci de ton aide. Le index est à la racine.
Par contre tu dis que je n'ai pas le droit d'y accéder, mais si je mets un fishier Layout.php (vide) dans le dossier concerné, il n'y a plus d'erreur. Mais bon, c'est tout de même pas normal. Si je doit mettre une aide de vues pour toutes les aide de Zend je ne suis pas rendu.
Dernière modification par nicko (15-04-2010 09:50:55)
Hors ligne
Bonjour,
Alors, j'ai remarqué que lorsque le .htaccess n'y était pas, je n'avais pas l'erreur.
SetEnv ENV development RewriteEngine On RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L]
Pourtant c'est la même chose que le tuto ? Voyez-vous pourquoi ?
Parce que la je planche depuis avant hier et je n'est plus d'idée
Bien cordialement.
Hors ligne
Voici mon index.php
// Ensure library/ is on include_path set_include_path(implode(PATH_SEPARATOR, array( realpath(APPLICATION_PATH . '/../library'), get_include_path(), )));
Il ne me semble pas l'avoir modifié pourtant...
Mais bon, il n'inclut pas plus que le tient le répertoire Application/
Tu n'as pas le safe_mode activé ?
Hors ligne
Bonjour armetiz,
Oui entre temps j'ai modifié un peu le code pour l'adapté à mon projet mais ce n'est pas des modification importantes.
Pour le safe_mode, j'ai fini par le désactiver pour voir (apache et PHP), mais ça ne change rien.
Mais j'ai l'erreur intervient que lorsqu'il a le .htaccess. Pourtant j'ai d'autres sites sur le même serveur et tous (ou presque) ont un .htaccess ?
Vraiment incompréhensible.
PS: je suis c.., normal puisque le htaccess défini l'environnement. Mais ca ne règle pas mon problème.
Dernière modification par nicko (16-04-2010 10:47:46)
Hors ligne
Question :
Lorsque vous installer un nouveau projet, faites-vous systématiquement des modifications dans la configuration du serveur.
Par ce que la il faudrait je modifie open_basedir dans un fichier .conf et encore là ce n'est pas logique puisque j'ai ceci :
php_admin_value open_basedir "/srv/www/vhosts/domaine.com/httpdocs:/tmp"
Donc normalement il n'y a aucun souci de configuration.
Pas d'idée ?
Dernière modification par nicko (16-04-2010 12:29:16)
Hors ligne
Bonjour,
Je rencontre actuellement le même problème que Nicko en testant mon application sur le serveur de production.
Une de mes déductions personnelles : C'est probablement l'url rewriting qui pose problème ici.
Cependant, dans mon cas je n'ai pas accès à la configuration apache et il m'ai donc impossible de configurer un virtualhost pour mon application.
Je passe donc par url rewriting pour assurer le bon fonctionnement de mon application.
En local, aucun soucis (je passe par un virtualhost, sans urlrewriting)
En production, même problème que Nicko (pas accès au virtualhost donc urlrewriting)
As-tu trouvé une solution Nicko depuis ?
Merci,
Hors ligne
Pages: 1