Sto utilizzando Github per distribuire i miei siti sul mio server di produzione. Per questo motivo non voglio memorizzare .env. *. Php file tutto così sono nel mio .gitignore.Variabili d'ambiente e artigiano non funzionanti sul server di produzione
All'interno di ogni directory ambiente ho impostato la configurazione del database da utilizzare getenv()
, ad esempio:
<?php
'connections' => array(
'mysql' => array(
'driver' => 'mysql',
'host' => getenv('DB_HOST'),
'database' => getenv('DB_NAME'),
'username' => getenv('DB_USERNAME'),
'password' => getenv('DB_PASSWORD'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
),
);
Sono poi andato al file conf apache per i miei host virtuali e impostare le variabili d'ambiente, così:
SetEnv DB_HOST ***.***.***.***
SetEnv DB_NAME database
SetEnv DB_USERNAME databaseuser
SetEnv DB_PASSWORD databasepass
Tutto questo funziona perfettamente sul server di produzione.
Tuttavia, al momento ho semplicemente importato il database anziché utilizzare php artisan migrate
perché non funziona.
So che non funziona perché non colpisce apache quindi le variabili non vengono impostate, ma ho provato numerosi modi per cercare di aggirare questo problema, ma non ho avuto fortuna ancora.
Ho provato a forzare l'ambiente per vedere se è possibile ottenere le variabili utilizzando php artisan --env=production migrate
Ho anche provato il controllo che sta utilizzando l'ambiente corretto eseguendo php artisan env
e che sta utilizzando l'ambiente di produzione che è corretto .
La mia prossima idea era quella di creare manualmente un file .env.production.php sul server di produzione. Ho creato uno e usato getenv() nel caso in cui abbia funzionato in questo modo, ma si è verificato lo stesso errore, quindi ho provato a impostare le variabili manualmente senza usare getenv() e non ho ancora avuto fortuna.
Qualsiasi idea sarebbe molto apprezzata.
file di produzione .env sono chiamati .env.php non .env.production.php –
Ho creato un ambiente all'interno del bootstrap/start.php con il nome di 'produzione', sarebbe questo non funziona comunque? – Karl
Ho appena provato il file .env.php, che funziona se imposto manualmente le variabili, posso utilizzare le variabili impostate tramite apache per lavorare con artisan? – Karl