Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
J'ai un petit projet Zend développé en local avec Wamp, tout fonctionne correctement.
J'ai voulu l'héberger sur mon ftp sur olympe (c'est un hébergeur gratuit) mais le problème est que je ne peux accéder à aucuns liens. J'ai accès à mon index avec les différents liens mais quand je clique sur n'importe quel lien, ça me met page introuvable.
Vous avez une idée de ce que ça pourrait être ?
Merci d'avance.
Hors ligne
Merci, j'ai essayé mais ça ne marche toujours pas.
En local, mon fichier index.php et .htaccess sont à la racine du projet, ils ne sont pas dans le dossier /public
Lorsque je le met sur mon site web, je dois mettre le fichier index.php dans /public et le .htaccess à la racine ?
Hors ligne
nico_loin a écrit:
Lorsque je le met sur mon site web, je dois mettre le fichier index.php dans /public et le .htaccess à la racine ?
OUI
Hors ligne
Quand je fais ça, j'ai ce message d'erreur :
Fatal error: require_once(): Failed opening required 'Zend/View.php' (include_path='.') in /dns/in/olympe/monftp/Zend/public/index.php on line 17
Ma ligne 17 c'est ca: require_once 'Zend/View.php';
J'ai essayé require_once '../Zend/View.php'; mais ça ne change rien ...
Hors ligne
Attention ch'ui pas un pro en .htacccess. J'dis ça pour pas te faire perdre ton temps au cas ou...
nico_loin a écrit:
Fatal error: require_once(): Failed opening required 'Zend/View.php' (include_path='.') in /dns/in/olympe/monftp/Zend/public/index.php on line 17
.
Zend/View.php doit etre dans le dossier 'library' or celui-ci n'est pas inscrit dans l'include path.
Le fichier index.php tu l'as créer toi meme ?
Quelle est la structure de tes dossiers ?
Pour moi tu es sur ZF-1 et ta structure de dossier ressemble (maintenant) à ça:
application
/ etc...
library/
Zend
public/
index.php
.htaccess
Ajoute cette portion de code au debut du fichier index.php et vois ce que ça donne
[lang=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') : 'development'/*'production'*/)); // Ensure library/ is on include_path set_include_path(implode(PATH_SEPARATOR, array( realpath(APPLICATION_PATH . '/../library'), get_include_path(), )));
Dernière modification par us2rn4m2 (02-03-2013 17:07:15)
Hors ligne
Ma structure est de la forme
application
docs
library
public
tests
.htaccess
J'ai essayé de mettre ton code au début de mon fichier index.php mais j'ai une autre erreur :
Fatal error: Uncaught exception 'Zend_Config_Exception' with message 'Section 'production' cannot be found in ./application/configs/application.ini' in /dns/in/olympe/monftp/Zend/library/Zend/Config/Ini.php:151 Stack trace: #0 /dns/in/olympe/monftp/Zend/public/index.php(34): Zend_Config_Ini->__construct('./application/c...', 'production') #1 {main} thrown in /dns/in/olympe/monftp/Zend/library/Zend/Config/Ini.php on line 151
Je t'avoue avoir du mal a comprendre toute ces erreurs !
Hors ligne
Pourrais-tu poster le contenu de ton application.ini (hors itentifiants base de données) ?
Globalement, il faut que tu ais des sections dedans : [section]
Donc au pire, en première ligne de ton application.ini, tu ajoutes [production]
Hors ligne
Le point positif c'est que cette erreur demontre que le dossier library est inscrit dans l 'include path.
Avant de commencer a tout retourner tu nous dis
nico_loin a écrit:
Bonjour,
J'ai un petit projet Zend développé en local avec Wamp, tout fonctionne correctement.
il fonctionne ok mais le .htaccess + la portion de code que je t'ai proposé redirige tout les appels vers l'index.php lequel demarre ensuite l'application (ton site). Du coup si tu ne l'as pas ca t'impose au moins la structure de base au niveau des dossiers- fichiers pour un projet Zend.
A quoi ressemblent ton index.php, ton application.ini ?
Dernière modification par us2rn4m2 (02-03-2013 22:40:10)
Hors ligne
Alors, voici mon index.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') : 'development'/*'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/View.php'; $view = new Zend_View(); $view->setHelperPath(realpath(APPLICATION_PATH . '/views/helpers')); /** Zend_Application */ require_once 'Zend/Application.php'; // Create application, bootstrap, and run $application = new Zend_Application( APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini' ); // Chargement automatique de Zend_Db_Adapter_Pdo_Mysql, et instanciation. $config = new Zend_Config_Ini('./application/configs/application.ini', 'production'); $db = Zend_Db::factory($config->database->adapter,array( 'host' => $config->database->host, 'username' => $config->database->params->username, 'password' => $config->database->params->password, 'dbname' => $config->database->params->dbname, ) ); $registry = Zend_Registry::getInstance(); // placer la connexion dans un registre global à l'application $registry->set('db', $db); // en faire la connexion par defaut Zend_Db_Table::setDefaultAdapter($db); $application->bootstrap(); //demarrer $application->run(); ?>
Puis mon fichier application.ini :
[production] phpSettings.display_startup_errors = 0 phpSettings.display_errors = 0 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 database.adapter = PDO_MYSQL database.params.host = sql.olympe.in database.params.username = **** database.params.password = **** database.params.dbname = **** resources.layout.layoutpath = APPLICATION_PATH "/layouts" [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
C'est peut etre un problème avec les redirections non ?
Hors ligne
Dans index.php
1. Change la valeur de APPLICATION_ENV. A la place de 'production' tu mets 'development'. Tu le remetras en 'production' quand tout sera clean. (Tu l'as pas remarqué mais je l'avais modifié hier)
[lang=php] defined('APPLICATION_ENV') || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'development'));
2. Change cette ligne
[lang=php] $config = new Zend_Config_Ini('./application/configs/application.ini', 'production');
en
[lang=php] $config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/application.ini', 'production');
Dernière modification par us2rn4m2 (03-03-2013 18:09:59)
Hors ligne
C'est déjà mis en 'development', 'production' est mis en commentaire.
J'ai changé la ligne, j'ai l'index qui s'affiche mais le css n'est pas pris en compte deja, puis quand je clique sur un lien, aucun ne fonctionne, la page n'est pas trouvée
Hors ligne
Pour le css nettoie le cache du navigateur ou bien change de navigateur. Si le css ne s'affiche pas ... c'est pas grave pour l'instant, verra plus tard.
Envoie nous la valeur href d'un lien qui marche pas et le code que t'utilises pour créer ce lien.
Hors ligne
Ca fait pareil pr le CSS avec un autre navigateur, mais pas tres grave.
Voila le href d'un lien dans mon layout.phtml
[lang=phtml]<a href="<?php echo $this->url(array('controller' => 'visiteur','action'=>'index')); ?>"> Visiteurs</a><br/>
Dernière modification par nico_loin (03-03-2013 19:02:21)
Hors ligne
Dans le script de vue index.phtml place le code ci-dessous.
[lang=php] <?php var_dump($this->baseUrl()); ?>
quelle est la valeur href du lien visiteur lorsque tu click sur view page source dans ton navigateur ?
<a href="la valeur href">Visiteurs</a><br/>
Quelles sont les valeurs?
Dernière modification par us2rn4m2 (03-03-2013 20:42:45)
Hors ligne
Le var_dump me retourne : string(12) "/Zend/public"
Et dans le code source j'ai : <a href="/Zend/public/visiteur">
Ah la vache c'est pour ça le lien ne devrait pas etre dans /public ?
Hors ligne
nico_loin a écrit:
Ah la vache c'est pour ça le lien ne devrait pas etre dans /public ?
Non, si baseurl n'a pas besoin d'etre redefini plus tard les valeurs sont ok pour l'instant
Avant d'installer ton site sur olympe y'avait pas un htaccess de base avec une certaine valeur ? Si oui recupere la et place la dans le htaccess sinon essaye cette valeur RewriteBase /
Qu'est ce que ça donne ?
Hors ligne
Non, j'avais aucun htaccess.
Par contre, sur mon ftp j'ai plusieurs dossier à la racine, puis pour mon projet zend, j'ai fait un dossier Zend et j'ai tout mis dedans. J'ai un htaccess que j'ai créé à la racine de tout mon ftp, et un htaccess dans le dossier Zend. Ca peut etre a cause des 2 htaccess que ca plante ?
Hors ligne
nico_loin a écrit:
Non, j'avais aucun htaccess.
Par contre, sur mon ftp j'ai plusieurs dossier à la racine, puis pour mon projet zend, j'ai fait un dossier Zend et j'ai tout mis dedans. J'ai un htaccess que j'ai créé à la racine de tout mon ftp, et un htaccess dans le dossier Zend. Ca peut etre a cause des 2 htaccess que ca plante ?
En fait il faut pouvoir acceder a la valeur "AllowOverride all" du fichier httpd.conf de apache. Le htaccess que je t'ai donné en lien marche pour moi et pour beaucoup d'autres. Donc je sais pas trop quoi te dire... Il faut que tu testes...T'as essayé cette valeur RewriteBase / ?
Pour le css
Dans Bootstrap.php
[lang=php] protected function _initController() { $front = Zend_Controller_Front::getInstance(); $front->setBaseUrl('/Zend'); // soi c'est cette valeur, soi c'est une autre... }
Dernière modification par us2rn4m2 (05-03-2013 22:05:54)
Hors ligne
J'ai réessayer avec ton .htaccess mais avec celui là je peux meme pas accéder à l'index, ca me met une erreur 404. Est-ce que t'aurais une adresse skype, ce serait plus simple pour discuter ...
Hors ligne
Ton probleme n'a plus trop de rapport avec Zend. J'te conseillerais surtout de te tourner vers le forum olympe et celui du site du zero. Sur le sdz y'a vraiment des 'costauds' qui pourront mieux que moi t'aiguiller vers la solution, dailleurs parmis les derniers post en date il est justement quetion du .htaccess...
Je vais tout de meme faire 2-3 tests de mon coté et si j'ai quelque chose je poste.
Dernière modification par us2rn4m2 (07-03-2013 19:07:25)
Hors ligne
Ok pas de probleme, merci pour ton aide en tout cas !
Hors ligne
Pages: 1