Zend SetEnv dans .htaccess ne fonctionne pas
J'ai installé Zend sur mon ubuntu homeserver. Dans mon .fichier htaccess j'ai le code suivant:
SetEnv APPLICATION_ENV development
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ index.php [NC,L]
Quand je écho APPLICATION_ENV dans mon index.php dans le dossier public, APPLICATION_ENV n'est pas définie.
Ce que je fais mal?
Mod rewrite est activé dans apache.
source d'informationauteur Arthur
Vous devez vous connecter pour publier un commentaire.
Afin d'utiliser SetEnv dans un .fichier htaccess, je crois que vous avez besoin de mettre en...
...dans le virtualhost répertoire bloc. (Et puis de redémarrer le service httpd comme par habitude.)
En outre, selon la façon dont vous êtes en cours d'exécution en PHP, il est possible que de tels renseignements sont supprimés. (par exemple: suexec élimine efficacement tous les non-HTTP* des variables d'environnement.)
Je préfère les mettre SetEnv dans le httpd.fichier conf pour le serveur local, de sorte que tous mes locaux ZF applications s'exécutent en mode de développement, et quand je pousse vers le serveur intermédiaire, il est un indicateur pour Définir l'environnement de mise en scène, puis le serveur de production n'a pas un tel réglage pour la valeur par défaut de la production...
De cette façon, je peux garder le même .htaccess dans le contrôle de source et quand je la pousse vers les différents serveurs, il se comporte comme prévu.
middaparka est en droit de suExec... suExec ne vous empêche de réglage personnalisé des variables d'environnement dans votre .fichier htaccess - selon remi à la WebFaction forum.
Abord, Vous devez mod_env installé (et mod_rewrite)
Vérifiez si Apache a le module(s) chargé avec des:
apachectl -l
ou
httpd-l
la commande peut être différent selon les OS de la distribution, je crois.
Pour la .fichier htaccess fonctionne, vous devez AllowOveride Tout ce qui peut être définie dans les différents fichiers de configuration (et les "pièces" selon la manière dont votre système d'exploitation de Apache configuré. Votre meilleure option est de savoir si c'est un fichier htaccess problème ou un environnement. Jeu de n'importe où dans le fichier de configuration principal:
SetEnv TESTME foobar
redémarrer Apache et de l'écho de TEST à partir d'un script PHP. Si vous l'avez, le débogage .htaccess
Note 1: Limiter l'accès à votre hôte virtuel l'utilisation de l' .htacess dans le dossier où vous avez vraiment besoin ou de la déplacer à la configuration d'un hôte virtuel.
Note 2: Vous n'avez probablement pas besoin de toutes ces règles de réécriture si vous avez Apache mod_dir installé. Un coup d'œil à
Vous pouvez également utiliser:
Si vous exécutez votre serveur à la maison sur un Mac ou ont suEXEC activé, il y a des mesures de sécurité en place à la bande de non-http variables d'environnement sont définies, par conséquent, ils n'apparaissent pas dans $_ENV['APPLICATION_ENV']. Vous POUVEZ toutefois accéder à ces travers une fonction PHP pour obtenir la même chose.
Vous pouvez même définir la variable d'environnement au sein de PHP si vous voulez, mais pas recommandé.
J'ai presque la même config à ce que vous avez, et nous venons de définir un mondial:
Une fois que vous faites cela, il doit fonctionner comme souhaité.