Kaikissa Seravon ympäristöissä (tuotanto, staging/varjo, paikallinen kehitys jne.) on määritelty useita ympäristömuuttujia. Näitä ovat esimerkiksi:
WP_ENV
Ympäristömuuttuja WP_ENV sisältää aina ympäristön nimen. Kun koodi suoritetaan tuotantoympäristössä, WP_ENV-muuttujan arvona on aina production. Eri testausympäristöillä on eri nimet, esimerkiksi staging ja development.
CONTAINER
Tämä on tietyn ympäristöinstanssin nimi. Esimerkiksi esimerkki_1ab2c3. Tämä voi muuttua ajan myötä. Älä kirjoita WordPress-koodiisi mitään logiikkaa, joka perustuu tähän.
DEFAULT_DOMAIN
Tämä on Seravon antama sisäinen verkkotunnus, joka annetaan tuotantokäyttöön otetulle sivustolle. Esimerkki voisi olla esimerkki.fi.seravo.com. Sitä käytetään tapauksissa, joissa todellista ulkoista verkkotunnusta (esim. esimerkki.com) ei ole vielä rekisteröity, se ei osoita sivustolle tai siinä on jokin muu ongelma eikä se toimi.
DB_HOST, DB_NAME, DB_USER, DB_PASSWORD
Nämä sisältävät aina tietokannan tunnistetiedot. Luota näihin, niin tietokantayhteys toimii aina, vaikka tuotanto- ja testausympäristöissä olisi eri salasanat. Vältä salasanojen tai palvelinosoitteiden kovakoodaamista koodiisi.
AUTH_KEY, LOGGED_IN_, NONCE_, SECURE_AUTH_*
Jokainen näistä sisältää yksilöllisen avaimen (esim. xifablhk84nimz4k6p71b5b2hvuq0js66m9db7vcfthdxa4bvtumfykirwfq342q), joka on erilainen eri ympäristöissä, mutta aina sama saman ympäristön sisällä. Näiden vakioiden käyttö tekee WordPress-sivustosi lähdekoodista turvallisemman, koska se ei sisällä salaisuuksia. Alla on esimerkki siitä, miltä wp-config.php näyttää millä tahansa Seravo-sivustolla:
/** * 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'));
Dotenv:n käyttö
wp-config.php-tiedosto käyttää oletuksena Dotenv:iä, jonka avulla voit luoda projektisi juurihakemistoon .env-nimisen tiedoston, jolla voit korvata oletusympäristömuuttujat.
Esimerkki:
$ cat .env.development
# Run 'ln -s .env.development .env' in project root to activate this
WP_TEST_URL=https://example.dev
DOMAIN_CURRENT_SITE=example.dev
NOBLOGREDIRECT=https://example.dev
COOKIE_DOMAIN=.example.dev
$ ll
.env lrwxrwxrwx 1 otto otto .env -> .env.development
Voit seurata mallitiedostoja, kuten .env.development, versiohallinnassa ja luoda sitten sijaintikohtaisen symbolisen linkin .env-tiedostosta oikeaan tiedostoon. Oletuksena .env-tiedosto on ja sen tulisi olla gitignore-komennon avulla git-komennon ohittama.
Huom!
Joitakin oletusympäristömuuttujia ei voi korvata.
Huomautus Dotenv-versiosta 5.0.0
Uusimmassa versiossa 5.0.0 Dotenv:n syntaksi on jälleen muuttunut. Uusissa wp-config.php-tiedostoissa on seuraavanlaisia rivejä:
$dotenv = Dotenv\Dotenv::createUnsafeImmutable($root_dir);
$dotenv->load();
Funktiossa oleva sana Unsafe näyttää pahalta, mutta se on välttämätön, jotta getenv(‘NAME’) toimisi WordPress/PHP:ssä.
Huomautus Dotenv-versiosta 2.4.0
Versiosta 2.4.0 lähtien Dotenv:n syntaksi on muuttunut. Uusissa wp-config.php-tiedostoissa on seuraavanlaisia rivejä:
$dotenv = new Dotenv\Dotenv($root_dir);
$dotenv->overload();
Vanha syntaksi näytti tältä:
Dotenv::makeMutable();
Dotenv::load($root_dir);
Sivustollasi oleva Dotenv-versio (ja wp-config.php-tiedoston syntaksi) on sama kuin sivuston luomisen aikaan. Jos myöhemmin suoritat composer-päivityksen ja päivität Dotenvin versioon > 2.4.0, sinun on päivitettävä wp-config.php-tiedoston rivit manuaalisesti, muuten WordPress näyttää vain tyhjän sivun ja /data/log/php-error.log-tiedostossa on vakavia virheilmoituksia Dotenv:sta.
Lisätietoja on Dotenv UPGRADING-dokumentaatiossa, jossa luetellaan kaikkien versioiden tärkeimmät muutokset.
