2016-01-04 22 views
6

Sto pianificando di utilizzare un singolo file .htaccess che può essere distribuito su più server. Nel processo sto impostando le variabili di ambiente nel file .htaccess e ci sono un paio di casi in cui mi piacerebbe leggere l'indirizzo IP nelle impostazioni. Per esempio, in un caso Sto installando una variabile di ambiente per la connessione al database locale:Come posso leggere l'indirizzo IP locale in un file .htaccess?

SetEnv DBL "mysql:dbname=oars;host=192.168.101.1;port=3306" 

Poi in PHP avrei letto la variabile per l'utilizzo da parte delle interazioni del database:

define('DBL', getenv('DBL')); 

Dato che io sono pianificazione della distribuzione su più server esiste un modo per ottenere automaticamente l'indirizzo IP invece di mantenere file .htaccess separati per ogni server?

+1

Se si desidera una connessione di database locale per MySQL, perché non stai usando '127.0.0.1'? Del resto, perché non usi 'localhost' e UNIX Sockets invece di TCP/IP? – Quentin

+0

A causa di alcune delle peculiarità del nostro sistema, non siamo in grado di utilizzare gli indirizzi di localhost o 127.0.0.1 @Quentin –

+1

Con 'SetEnv DBL "mysql: nomedb = remi; host =% {} SERVER_ADDR; port = 3306"'? – Croises

risposta

7

È possibile utilizzare una regola per impostare la variabile Env:

RewriteEngine on 
RewriteRule^- [E=DBL:mysql\:dbname=oars\;host=%{SERVER_ADDR}\;port=3306] 

print getenv("DBL"); 
mysql:dbname=oars;host=1.2.3.4.5;port=3306 
+3

Oh wow! Non avevo idea che potessi impostare le variabili di ambiente tramite una regola di riscrittura. Occhi davvero aperti e funzionano perfettamente. –

Problemi correlati