Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Je viens voir vous aujourd'hui pour savoir s'il existe un tuto pour installer un projet Zend sur un serveur dédié ? Car enfaite je rencontre un problème depuis plus d'une semaine...
Mon projet tourne très bien en local sous W7. Lorsque je l'exporte vers un Kimsufi sous Debian 6.0 il me retourne une erreur PHP :
Fatal error: Uncaught exception 'Zend_Exception' with message 'File "UserContentPlaylist.php" does not exist or class "UserContentPlaylist" was not found in the file' in /var/www/wall/library/Zend/Loader.php:99 Stack trace: #0 /var/www/wall/application/views/helpers/GetContentPL.php(10): Zend_Loader::loadClass('UserContentPlay...') #1 [internal function]: Zend_View_Helper_GetContentPL->GetContentPL('-1') #2 /var/www/wall/library/Zend/View/Abstract.php(342): call_user_func_array(Array, Array) #3 /var/www/wall/application/views/scripts/search/show.phtml(72): Zend_View_Abstract->__call('GetContentPL', Array) #4 /var/www/wall/application/views/scripts/search/show.phtml(72): View->GetContentPL('-1') #5 /var/www/wall/library/Zend/View.php(108): include('/var/www/wal...') #6 /var/www/wall/library/Zend/View/Abstract.php(880): Zend_View->_run('/var/www/wal...') #7 /var/www/wall/library/Zend/View/Helper/Partial.php(105): Zend_View_Abstract->render('/search/show.ph...') #8 [internal function]: Zend_View in /var/www/wall/library/Zend/Loader.php on line 99
Dès lors que je grise cette ligne ou j'invoque un $this->partial("...");
Il m'affiche mon layout et me dit qu'il ne trouve pas mon controlleur /index/welcome
Quelqu'un aurait-il une idée ou un tutoriel pour régler ce genre de configuration ?
Merci d'avance
Hors ligne
bonjour,
as-tu vérifié les droits sur tes fichiers et répertoires? les noms des répertoires sont-ils en minuscules sur le serveur?
Hors ligne
Oui à priori tout est nikel... je ne vois vraiment pas d'où ça provient
Hors ligne
sinon les noms sur le serveur sont en majuscules
Hors ligne
x3mple a écrit:
sinon les noms sur le serveur sont en majuscules
S'agit-il des noms de répertoires qui sont en majuscule? si c'est le cas linux, contrairement à wnidows, est sensible à la casse(le répertoire Toto est différent de toto) donc autant mettre les noms des répertoires en minuscule et les noms de classe doivent suivrent la notationCamelCase.
Il faut aussi voir si par hasard t'as pas utilisé d'anti-slash (\), en lieu et place de slash, pour définir les les chemins de différents fichiers.
autre chose qui n'a peut être pas grande importance sur ton problème:
-le vhost du serveur pointe t-il sur le répertoire public du projet?
-le mod_rewrite d'apache est-il activé?
-la version de PHP sur le serveur est doit être la version 5
Hors ligne
Alors je viens de régler le bug partiellement enfaite... j'ai modifié UserContentPlaylist.php et ça marche. Par contre maintenant j'ai un problème au niveau des applications...
Not Found
The requested URL /apps/welcome was not found on this server.
hum
Hors ligne
D'après le phpinfo le mode rewrite est activé ainsi que php 5.3.1
et normalement apache pointe bien vers mon /public/ vu que j'arrive à voir mon layout mais que j'arrive à récupérer aucune vue... hum
Hors ligne
config.ini
[production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.layout.layoutPath = APPLICATION_PATH "/layouts/"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
index.php
<?php
// Define path to application directory
defined('APPLICATION_PATH')
|| define('APPLICATION_PATH', realpath('/var/www/wall/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'),
realpath(APPLICATION_PATH . '/../library/Zend'),
realpath(APPLICATION_PATH . '/../application'),
realpath(APPLICATION_PATH . '/models/tables'),
get_include_path(),
)));
Hors ligne
Le problème vient probablement de la déclaration de ton serveur / de ton virtualhost.
Si tu nous postes la config de ton vhost on pourra t'en dire plus.
L'idée c'est que tu dois avoir une directive AllowOverride à false au lieu de All pour ton répertoire public.
Hors ligne
dans httpd.conf
<VirtualHost *:80>
ServerName wall.com
DocumentRoot /var/www/wall/public
SetEnv APPLICATION_ENV "production"
<Directory /var/www/wall/public>
DirectoryIndex index.php
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Hors ligne
J'ai testé en mettant All & None pour AllowOverride et j'obtiens le même résultat
Hors ligne
C'est bien ce que je disais, passe le "AllowOverride None" en "AllowOverride All", puis reloader le serveur.
Hors ligne
<VirtualHost *:80>
ServerName http://wall.com
DocumentRoot /var/www/wall/public
SetEnv APPLICATION_ENV "production"
<Directory /var/www/wall/public>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
même avec ça ça veut toujours pas marcher
Hors ligne
je ne vois pas trop d'où ça peut provenir...
Hors ligne
j'ai tenté en mettant wall.com pour le ServerName et en ajoutant des "" pour /var/www/wall/public
et ça donne toujours rien
enfaite il ne charge pas mon .htacess j'ai testé avec un SetEnv dans mon /htaccess et je ne le récupère pas dans le index.php qu'est dans public
quelqu'un aurait-il une idée ?
Hors ligne
Tu n'as pas respecté la première règle du développeur PHP : "on ne travaille pas sur windows."
Hors ligne
x3mple a écrit:
j'ai tenté en mettant wall.com pour le ServerName et en ajoutant des "" pour /var/www/wall/public
et ça donne toujours rien
enfaite il ne charge pas mon .htacess j'ai testé avec un SetEnv dans mon /htaccess et je ne le récupère pas dans le index.php qu'est dans public
quelqu'un aurait-il une idée ?
si tu ne peux pas récupérer la variable d’environnement setEnv( dans le .htaccess) c'est que le problème vient forcement de la configuration du vhost.
est-ce que tu peux poster les logs du serveur apache?
le fichier /etc/apache2/apache2.conf comporte bien l'adresse et le port du vhost ?
ex:
NameVirtualHost adresseIP:80
Hors ligne
Voici mon fichier apache2.conf
ServerRoot "/etc/apache2"
LockFile /var/lock/apache2/accept.lock
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
<IfModule mpm_worker_module>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
AccessFileName .htaccess
DefaultType text/plain
HostnameLookups Off
ErrorLog /var/log/apache2/error.log
Include /etc/apache2/httpd.conf
Include /etc/apache2/ports.conf
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
CustomLog /var/log/apache2/other_vhosts_access.log vhost_combined
Include /etc/apache2/conf.d/
Hors ligne
C'est bon ! ouf
après une lutte acharnée j'ai enfin réussi lol
Je tiens à remercier les personnes qui m'ont aidés
Si vous rencontrez le même problème n'hésitez pas :p
Encore merci !
Hors ligne
Pages: 1