Kaikissa Seravon ympäristöissä (tuotanto, varjoympäristö ja paikallinen kehitys) on määritelty joukko valmiita järjestelmän ympäristömuuttujia. Niiden avulla sivuston asetukset, tietokantayhteydet ja tietoturva-avaimet pysyvät erillään lähdekoodista.
Voit tarkastaa kaikki omassa ympäristössäsi aktiivisena olevat ympäristömuuttujat SSH-yhteydellä komennolla:
wp-list-env
Seravon oletusympäristömuuttujat
Muuttuja | Kuvaus ja käyttötarkoitus |
| Kertoo ajoympäristön tyypin. Tuotannossa arvo on aina |
| Palvelinkontin yksilöllinen tunniste (esim. |
| Seravon sivustolle luoma sisäinen varaverkkotunnus (esim. |
| Tietokantayhteyden tunnistetiedot. Hyödynnä aina näitä muuttujia sen sijaan, että kovakoodaisit salasanoja tai palvelinosoitteita lähdekoodiin. |
| WordPressin tietoturva-avaimet ja suolat (salts). Jokaisella ympäristöllä on omat yksilölliset avaimensa, jotka suojataan pitämällä ne poissa versionhallinnasta. |
Tietoturva-avaimet wp-config.php-tiedostossa
Seravon oletusasennuksessa WordPressin tietoturva-avaimet ladataan suoraan ympäristömuuttujista getenv()-funktiolla:
/**
* Authentication Unique Keys and Salts
* You can find them by running $ wp-list-env
*/
define('AUTH_KEY', getenv('AUTH_KEY'));
define('SECURE_AUTH_KEY', getenv('SECURE_AUTH_KEY'));
define('LOGGED_IN_KEY', getenv('LOGGED_IN_KEY'));
define('NONCE_KEY', getenv('NONCE_KEY'));
define('AUTH_SALT', getenv('AUTH_SALT'));
define('SECURE_AUTH_SALT', getenv('SECURE_AUTH_SALT'));
define('LOGGED_IN_SALT', getenv('LOGGED_IN_SALT'));
define('NONCE_SALT', getenv('NONCE_SALT'));
Ympäristömuuttujien hyödyntäminen omassa koodissa
Voit lukea ympäristömuuttujia suoraan teemassa tai lisäosissa PHP:n getenv()-funktiolla (tai WordPressin omalla wp_get_environment_type()-funktiolla).
Esimerkiksi ulkoisten analytiikka- tai seurantaskriptien lataaminen voidaan rajata vain tuotantoympäristöön:
if ( getenv( 'WP_ENV' ) === 'production' ) {
// Lataa seurantaskriptit vain tuotannossa
}Omien muuttujien määrittäminen .env-tiedostolla
Seravon projektipohjan wp-config.php käyttää oletuksena PHP Dotenv -kirjastoa. Voit luoda projektin juurihakemistoon (/data/wordpress/.env) oman .env-tiedoston omien sovelluskohtaisten muuttujien, kuten kolmannen osapuolen API-avainten, tallentamiseen.
Esimerkki .env-tiedoston sisällöstä:
STRIPE_API_KEY=sk_live_51ExampleKey123456
GOOGLE_MAPS_API_KEY=AIzaSyExampleKey123456
Voit tämän jälkeen lukea avaimet koodissasi komennolla getenv('STRIPE_API_KEY').
Versionhallinta ja ympäristökohtaiset mallitiedostot
Varsinainen .env-tiedosto sisältää salaisuuksia, joten se on oletuksena estetty .gitignore-tiedostossa eikä sitä tule koskaan viedä Git-versionhallintaan.
Halutessasi voit kuitenkin tallentaa versionhallintaan ympäristökohtaisia mallitiedostoja (esim. .env.development tai .env.example) ilman oikeita salasanoja, ja luoda palvelimella symbolisen linkin aktiiviseen tiedostoon:
cd /data/wordpress
ln -s .env.development .env
Tärkeää: Älä ylikirjoita tietokantatunnuksia .env-tiedostossa
Seravon projektipohja lataa .env-tiedoston oletuksena createUnsafeImmutable()-tilassa. Tämä tarkoittaa, että palvelimen asettamia kriittisiä ympäristömuuttujia (kuten DB_*, WP_ENV ja CONTAINER) ei voida vahingossa ylikirjoittaa .env-tiedostosta.
Älä koskaan kopioi paikallisen ympäristön tietokantatunnuksia tuotannon .env-tiedostoon, jotta sivuston tietokantayhteys ei lakkaa toimimasta.
Dotenv-versiot ja wp-config.php-syntaksi
Seravon uudemmissa asennuksissa (PHP Dotenv 5.x) ympäristömuuttujat ladataan wp-config.php-tiedostossa seuraavasti:
$dotenv = Dotenv\Dotenv::createUnsafeImmutable($root_dir);
$dotenv->load();
Huom: Metodissa oleva sana Unsafe viittaa vain siihen, että muuttujat viedään PHP:n perinteiseen getenv()-rajapintaan, jota WordPress käyttää. Se on täysin turvallinen ja välttämätön määritys.
Vanhojen sivustojen päivittäminen (Dotenv 2.x -> 5.x)
Jos päivität Composerilla vanhaa sivustoa, jonka wp-config.php käyttää vielä Dotenv 2.x -syntaksia (new Dotenv\Dotenv($root_dir) tai Dotenv::load($root_dir)), sivusto saattaa päätyä valkoiseen virhesivuun päivityksen jälkeen ja lokiin (/data/log/php-error.log) ilmestyy virheilmoitus Dotenv-luokasta.
Päivitä tällöin wp-config.php-tiedoston Dotenv-kutsu vastaamaan yllä olevaa createUnsafeImmutable($root_dir)-syntaksia. Lisätietoja syntaksimuutoksista löytyy PHP Dotenvin päivitysohjeesta.
Katso myös
Ympäristömuuttujien ja .env-tiedoston hyödyntäminen pitää sovelluksen salaisuudet turvassa ja helpottaa koodin siirtämistä paikallisen kehityksen, varjoympäristön ja tuotannon välillä. Mikäli kohtaat ongelmia ympäristömuuttujien tai wp-config.php-asetusten kanssa, asiakaspalvelumme auttaa osoitteessa [email protected].
