Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 20-08-2014 11:44:08

mezoo
Nouveau membre
Date d'inscription: 20-08-2014
Messages: 9

[SOLVED][REWRITE][VIRTUALHOST] Resource interpreted as Image but

bonjour,

Depuis quelques jours j'ai un petit souci avec un site que je viens de mettre en ligne
Je débute sur Zend.

Mon problème est que je souhaiterais idéalement ne pas avoir à entrée : www.monsite.fr/public mais juste www.monsite.fr

Je pensais que modifié le virtual host serait suffisant sauf que Zend ne retrouve pas la plupart des ressources
Voici mes fichiers :

Arborescence :

Code:

www
   application
      Bootstrap.php
      configs
      languages
      modules
   captcha
       *.png
   index.html
   library
      My
      Zend
   public
      (CSS et autres répertoire de ressources)
      .htaccess
      index.php

.htaccess

Code:

AddType x-mapp-php6 .php
AddHandler x-mapp-php6 .php
RewriteEngine On
RewriteBase /public
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

vhosts.conf

Code:

<VirtualHost *:80>
   ServerName monsite
   DocumentRoot /home/monsite/www
   SetEnv APPLICATION_ENV "development"
   <Directory /home/moniste/www>
      AllowOverride All
      Order allow,deny
      Allow from all
   </Directory>
</VirtualHost>

Ainsi mon site trouve bien ses ressources hormis quelques image ou j'obtiens dans la console du navigateur :

Code:

Resource interpreted as Image but  transferred with MIME type text/html: "http://www.monsite.fr/public/images/partenaire/img_53ec76cb67677".

Par contre l'url à taper est bien http://www.monsite.fr/public (ou se trouve le index.php)

Que dois je paramètrer pour n'avoir à écrire uniquement www.monsite.fr sans perte des chemins ?

Merci d'avance.

Dernière modification par mezoo (25-08-2014 10:27:51)

Hors ligne

 

#2 20-08-2014 12:52:44

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1254

Re: [SOLVED][REWRITE][VIRTUALHOST] Resource interpreted as Image but

Salut pour ne pas avoir à entrer le "public" il suffit de changer ton DocumentRoot et Directory en y ajouter /public après www

Hors ligne

 

#3 20-08-2014 14:00:16

mezoo
Nouveau membre
Date d'inscription: 20-08-2014
Messages: 9

Re: [SOLVED][REWRITE][VIRTUALHOST] Resource interpreted as Image but

Salut,

Merci de ta réponse.
j'ai effectivement tenté mais du coup je trouve une erreur 500 avec ceci dans les logs httpd :

Code:

[Wed Aug 20 14:05:54.561577 2014] [core:alert] [pid 752] [client xx.xx.xx.xx:3005]  /home/monsite/www/public/.htaccess: RewriteEngine not allowed here

Dernière modification par mezoo (20-08-2014 14:07:51)

Hors ligne

 

#4 20-08-2014 16:28:15

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

Re: [SOLVED][REWRITE][VIRTUALHOST] Resource interpreted as Image but

Bonjour,

Le message d'erreur est assez clair à mon gout, tu ne peux pas utiliser le mod_rewrite dans ce htaccess (comprendre dans ce dossier).

La solution est donc assez évidente, tu dois déclarer un AllowOverride sur ton dossier dans ton virtualhost (comme indiqué dans la doc avec un AllowOverride All).

Hors ligne

 

#5 20-08-2014 16:38:00

mezoo
Nouveau membre
Date d'inscription: 20-08-2014
Messages: 9

Re: [SOLVED][REWRITE][VIRTUALHOST] Resource interpreted as Image but

Tout à fait, j'avais écris un chemin incomplet dans le <Directory>
Ceci dit, ça me ramène à ma première erreur :
Le site se retrouve comme s'il ne retrouvait plus ses ressources et j'ai des "AH00122 : redirected" partout dans la log et les liens du menu provoque des erreurs 500

J'ai également :

Code:

AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error...

Désolé j'ai cherché avant de poster sur le forum mais je ne sais pas d'ou ca peut venir.

Dernière modification par mezoo (20-08-2014 16:41:57)

Hors ligne

 

#6 20-08-2014 18:55:11

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

Re: [SOLVED][REWRITE][VIRTUALHOST] Resource interpreted as Image but

Il va nous falloir plusieurs choses :

* ton virtualhost
* tous les .htaccess que tu utilises
* la version d'apache utilisée

Hors ligne

 

#7 20-08-2014 22:06:41

mezoo
Nouveau membre
Date d'inscription: 20-08-2014
Messages: 9

Re: [SOLVED][REWRITE][VIRTUALHOST] Resource interpreted as Image but

Ok c'était dans le premier post mais je le remet avec la derniere modif :

vhosts.conf

Code:

[lang=xml]<VirtualHost *:80>
   ServerName monsite.fr
   DocumentRoot /home/monsite/www/public
   SetEnv APPLICATION_ENV "development"
   <Directory /home/monsite/www/public>
      AllowOverride All
      Order allow,deny
      Allow from all
   </Directory>
</VirtualHost>

.htaccess

Code:

#AddType x-mapp-php6 .php
#AddHandler x-mapp-php6 .php
RewriteEngine On
RewriteBase /public
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

Code:

Server version: Apache/2.4.6 (CentOS)

Voilà

Dernière modification par mezoo (20-08-2014 22:09:55)

Hors ligne

 

#8 21-08-2014 05:39:45

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

Re: [SOLVED][REWRITE][VIRTUALHOST] Resource interpreted as Image but

En effet je suis pas frais moi...

Tu as un truc étrange... Ton docRoot est dans /public, et dans ton htaccess t'as un RewriteBase... ça peut pas marcher déjà ça...

Pour le reste honnêtement je vois pas de problème... en même temps je viens de passer la nuit à bosser alors mon avis est surement un peu à la masse...

Hors ligne

 

#9 21-08-2014 09:50:04

mezoo
Nouveau membre
Date d'inscription: 20-08-2014
Messages: 9

Re: [SOLVED][REWRITE][VIRTUALHOST] Resource interpreted as Image but

Salut,

Pas de soucis ,c'est déjà sympa de me répondre.
En virant le ReWriteBase ça n'a rien changé sad

Est ce que ça peut être dû au fichier de config de Zend ?

Dernière modification par mezoo (21-08-2014 09:57:56)

Hors ligne

 

#10 21-08-2014 12:04:53

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1254

Re: [SOLVED][REWRITE][VIRTUALHOST] Resource interpreted as Image but

Non c'est pas lié à un fichier de conf de Zend, c'est apache qui est pas content smile.

Hors ligne

 

#11 21-08-2014 13:23:58

mezoo
Nouveau membre
Date d'inscription: 20-08-2014
Messages: 9

Re: [SOLVED][REWRITE][VIRTUALHOST] Resource interpreted as Image but

Et ça entraine le fait qu'il ne trouve pas les ressources des images et css ?
Parce la mon site à une sale gueule

Dernière modification par mezoo (21-08-2014 13:35:19)

Hors ligne

 

#12 21-08-2014 13:26:49

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

Re: [SOLVED][REWRITE][VIRTUALHOST] Resource interpreted as Image but

As-tu regardé dans les developer tools de ton navigateur quelles urls il essaye de chercher ? Des fois ça donne une indication (est-ce qu'il cherche toujours dans public par exemple ?) ?

Sinon, ton code est-il privé où peut-on le trouver sur un repository en ligne open ? Si c'est open je peux jeter un œil.

Hors ligne

 

#13 21-08-2014 14:11:51

mezoo
Nouveau membre
Date d'inscription: 20-08-2014
Messages: 9

Re: [SOLVED][REWRITE][VIRTUALHOST] Resource interpreted as Image but

Malheureusement non c'est le site d'une collectivité
Je pourrais t'envoyer des fichiers précis mais je ne sais pas lesquelles

Par contre là j'ai un soucis, plus rien ne marche et pourtant la config n'

Hors ligne

 

#14 21-08-2014 14:27:21

mezoo
Nouveau membre
Date d'inscription: 20-08-2014
Messages: 9

Re: [SOLVED][REWRITE][VIRTUALHOST] Resource interpreted as Image but

Malheureusement non c'est le site d'une collectivité
Je pourrais t'envoyer des fichiers précis mais je ne sais pas lesquels

Je m'aperçois d'une erreur que je n'ai pas vu :

Code:

PHP Warning:  Invalid argument supplied for foreach() in /home/monsite/www/library/My/Acl/Ini.php on line 52

Et dans l'inspection d'élément du browser j'ai :

Code:

GET http://www.monsite.net/images/partenaire/img_53ec76cb67677 500 (Internal Server Error)

J'ai fait un autre test en gardant RewriteBase /public et en laissant le DocumentRoot à /home/monsite/www/
j'ai un affichage correcte mais toujours l'erreur PHP warning

Hors ligne

 

#15 21-08-2014 14:40:47

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

Re: [SOLVED][REWRITE][VIRTUALHOST] Resource interpreted as Image but

Déjà c'est cool si ça marche au moins partiellement.

Pour le foreach, il va falloir que tu nous montres le fichier mais c'est normalement simple, tu passes une variable qui n'est pas un tableau ou un ArrayAccess ou dans ce goût, d'où l'erreur.

Hors ligne

 

#16 21-08-2014 15:09:55

mezoo
Nouveau membre
Date d'inscription: 20-08-2014
Messages: 9

Re: [SOLVED][REWRITE][VIRTUALHOST] Resource interpreted as Image but

Oui mais je suis toujours obligé de rentrer le chemin complet.
voici le code du Ini.php :

Code:

[lang=php]
class My_Acl_Ini extends Zend_Acl    {
    public function __construct($file)    {

        $roles = new Zend_Config_Ini($file, 'roles') ;

        $this->_setRoles($roles) ;
        
        $ressources = new Zend_Config_Ini($file, 'ressources') ;
        $this->_setRessources($ressources) ;
        
        foreach ($roles->toArray() as $role => $parents)    {
            $privileges = new Zend_Config_Ini($file, $role) ;
            $this->_setPrivileges($role, $privileges) ;
        }
    }
    
    protected function _setRoles($roles)    {
        foreach ($roles as $role => $parents)    {
            if (empty($parents))    {
                $parents = null ;
            } else {
                $parents = explode(',', $parents) ;
            }

            $this->addRole(new Zend_Acl_Role($role), $parents);
        }
        
        return $this ;
    }

    protected function _setRessources($ressources)    {
        foreach ($ressources as $ressource => $parents)    {
            if (empty($parents))    {
                $parents = null ;
            } else {
                $parents = explode(',', $parents) ;
            }

            $this->add(new Zend_Acl_Resource($ressource), $parents);
        }
        
        return $this ;
    }

    protected function _setPrivileges($role, $privileges)    {
        foreach ($privileges as $do => $ressources)    {
            foreach ($ressources as $ressource => $actions)    {
                if (empty($actions))    {
                    $actions = null ;
                } else {
                    $actions = explode(',', $actions) ;
                }
                
                $this->{$do}($role, $ressource, $actions);
            }
        }
        
        return $this ;
    }
}

Qui est appelé dans le Bootstrap :

Code:

[lang=php]
...
Zend_Loader::loadClass('My_Acl_Ini');
        Zend_Loader::loadClass('My_Controller_Plugin_Auth');

        $acl_ini = APPLICATION_PATH.'/configs/acl.ini';
        $acl = new My_Acl_Ini($acl_ini);
...

le fichier acl.ini

Code:

[roles]
guest = null
candidat = null
employeur = null 
superadmin = null
bij = null
pij=  null


[ressources] 
; définition des ressources dans le module par défaut
actualite   = null
actualites = null
auth = null
offres = null
compte = null
employeur = null
error = null
index = null
inscription = null
offre = null
preview = null
profil = null
search = null
mentions = null
entreprisesquifontconfiance = null

; définition des ressources dans le module d'admin
admin_auth = null
admin_index = null
admin_employeur = null
admin_offre = null
admin_actualite = null
admin_video = null
admin_partenaire = null
admin_publicite = null

[guest]

allow.actualite = null
allow.actualites = null
allow.auth = null
allow.offres = null
deny.compte = null
allow.employeur = null
allow.error = null
allow.index =null
allow.inscription = null
allow.offre = null
allow.preview = null
allow.mentions = null
allow.entreprisesquifontconfiance = null
deny.profil = null
allow.search = null
allow.admin_auth =  null
deny.admin_index = null
deny.admin_employeur = null
deny.admin_offre = null
deny.admin_actualite = null
deny.admin_video = null
deny.admin_partenaire = null
deny.admin_publicite = null



[candidat] 
allow.actualite = null
allow.actualites = null
allow.auth = null
allow.offres = null
allow.compte = null
allow.employeur = null
allow.error = null
allow.index =null
allow.inscription = null
allow.offre = null
allow.preview = null
allow.profil = null
allow.search = null
allow.entreprisesquifontconfiance = null
deny.admin_auth =  null
deny.admin_index = null
deny.admin_employeur = null
deny.admin_offre = null
deny.admin_actualite = null
deny.admin_video = null
deny.admin_partenaire = null
deny.admin_publicite = null




[employeur]

allow.actualite = null
allow.actualites = null
allow.auth = null
allow.offres = null
allow.compte = employeur,modifier
allow.employeur = null
allow.error = null
allow.entreprisesquifontconfiance = null
deny.index =null
deny.inscription = null
allow.offre = null
allow.preview = null
allow.profil = null
allow.search = null
deny.admin_auth =  null
deny.admin_index = null
deny.admin_employeur = null
deny.admin_offre = null
deny.admin_actualite = null
deny.admin_video = null
deny.admin_partenaire = null
deny.admin_publicite = null

[superadmin]

allow.actualite = null
allow.actualites = null
allow.auth = null
allow.offres = null
allow.compte = null
allow.employeur = null
allow.error = null
allow.index =null
allow.inscription = null
allow.offre = null
allow.preview = null
allow.profil = null
allow.search = null
allow_admin_auth = null
allow.admin_index = null
allow.admin_employeur = null
allow.admin_offre = null
allow.admin_actualite = null
allow.admin_video = null
allow.admin_partenaire = null
allow.admin_publicite = null

[bij]

deny.actualite = null
deny.actualites = null
deny.auth = null
deny.offres = null
deny.compte = null
deny.employeur = null
deny.error = null
deny.index =null
deny.inscription = null
deny.offre = null
deny.preview = null
deny.profil = null
deny.search = null
allow.admin_auth =  logout
allow.admin_index = null
allow.admin_employeur = null
allow.admin_offre = creer,modifier,liste,listeinactives,desactiver,activer
deny.admin_actualite = null
deny.admin_video = null
deny.admin_partenaire = null
deny.admin_publicite = null

[pij]

deny.actualite = null
deny.actualites = null
deny.auth = null
deny.offres = null
deny.compte = null
deny.employeur = null
deny.error = null
deny.index =null
deny.inscription = null
deny.offre = null
deny.preview = null
deny.profil = null
deny.search = null
allow.admin_auth =  logout
allow.admin_index = null
allow.admin_employeur = null
allow.admin_offre = creer,liste,listeinactives
deny.admin_actualite = null
deny.admin_video = null
deny.admin_partenaire = null

le fichier application.ini :

Code:

[production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
includePaths.library = APPLICATION_PATH "/../library"
includePaths.modules = APPLICATION_PATH "/modules"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"

resources.modules[] = ""
;MODULES
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.frontController.params.prefixDefaultModule = 1
resources.frontController.defaultModule = "front"
appnamespace = ""
resources.frontController.params.displayExceptions = 1

resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"

;LAYOUT | VIEW
resources.view.encoding = "UTF-8"
resources.view.doctype = HTML5
        
resources.db.adapter = "pdo_mysql"
resources.db.params.host = "monIP"
resources.db.params.username = "username"
resources.db.params.password = "xxxx"
resources.db.params.dbname = "monDB"
resources.db.isDefaultTableAdapter = true
    
[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

et le public/index.php :

Code:

<?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'));


// 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();

Est ce que la definition de APPLICATION_PATH est correcte ?

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