variable una requiere putenv globales extensión entorno php apache .htaccess shared-hosting

una - Cómo usar getenv() en php y SetEnv en.htaccess con un php-cgi compilado en un host compartido



variable de entorno php (2)

Ok, finalmente lo tengo. En dreamhost, es posible usar fastcgi y, por lo tanto, declarar variables de entorno con él. Consiste en solo agregar esta simple secuencia de comandos

#!/bin/sh export PHP_FCGI_CHILDREN=2 exec /home/USERNAME/YOURDOMAIN/cgi-bin/php.cgi

Que es donde estaba mi PHP5.3.1 compilado. chmod 744 en ese archivo llamado dispatch.fcgi que permitirá más memoria por el perro guardián de dreamhost.

Después de eso, agregué al .htaccess de mi dominio lo siguiente:

Options +ExecCGI AddHandler fastcgi-script fcg fcgi fpl AddHandler php5-fastcgi .php Action php5-fastcgi /dispatch.fcgi

ahora en la raíz de la aplicación tengo otro .htaccess con:

SetEnv APPLICATION_ENVIRONMENT staging

En un script php, se puede recuperar a través de getenv (''REDIRECT_APPLICATION_ENVIRONMENT'');

Simplemente contextualizando para aclarar la pregunta principal:

En mi máquina de desarrollo, PHP5.3.1 está instalado en Apache como un módulo, uso el desarrollo de SetEnv APPLICATION_ENVIRONMENT en el archivo raíz .htaccess de mi aplicación. A continuación, es fácilmente recuperable de cualquier script php con getenv (''APPLICATION_ENVIRONMENT'').

En el servidor de producción, en un host compartido (dreamhost), compilé php5.3.1 ya que no era compatible directamente. Todo funciona bien, excepto que getenv (''APPLICATION_ENVIRONMENT'') devuelve falso.

En la raíz .host compartida .htaccess para mi dominio, utilizo este archivo .htaccess

Options +ExecCGI AddHandler php-cgi .php Action php-cgi /cgi-bin/php.cgi <FilesMatch "^php5?/.(ini|cgi)$"> Order Deny,Allow Deny from All Allow from env=REDIRECT_STATUS </FilesMatch> Options -indexes

php5.cgi reside en / cgi-bin y funciona muy bien. Por supuesto, en la carpeta raíz de mi aplicación tengo otro .htaccess que define:

SetEnv APPLICATION_ENVIRONMENT production

Pero al usar getenv (''APPLICATION_ENVIRONMENT'') devuelve falso, ¿alguna idea de cómo resolver esto?


Para que la directiva SetEnv funcione, su servicio de alojamiento debe tener activado el módulo mod_env ...

Pero, incluso si está activado, tal vez no tenga permiso para usar SetEnv .

Para asegurarse de que el problema no está en su código, puede verificar la phpinfo() de phpinfo() : en la parte inferior de la página, debe haber una sección que contenga variables de entorno como se ve desde PHP, si la suya no está en allí, no es una buena señal para ti ...