Skip to content

Dotenv (.env)

Környezeti változók kezelése .env fájlokkal WordPress és Bedrock projektekben - biztonságos konfiguráció és jelszókezelés.

This content is not available in your language yet.

A Dotenv egy PHP könyvtár, amely lehetővé teszi, hogy az alkalmazás konfigurációját (adatbázis jelszavak, API kulcsok, titkos kulcsok) egy .env fájlban tárold a forráskódon kívül. A Bedrock alapértelmezetten használja.

A hagyományos WordPress-nél minden érzékeny adat a wp-config.php fájlban van, ami a kód része. Ez több problémát okoz:

  • Jelszavak a Git repóban - Bárki, aki hozzáfér a repóhoz, látja az adatbázis jelszót
  • Egy konfig minden környezetre - Fejlesztői és éles beállítások keverednek
  • Biztonsági kockázat - A wp-config.php a webroot-ban van, webszerver-hiba esetén elérhető

A .env fájl megoldja ezeket:

  • Nem kerül a Git repóba (a .gitignore kizárja)
  • Minden környezetnek saját .env fájlja van
  • A webroot felett helyezkedik el (Bedrocknál)

A .env fájl egyszerű KULCS=érték párokból áll:

# Adatbázis beállítások
DB_NAME='wordpress'
DB_USER='wp_user'
DB_PASSWORD='titkos_jelszo'
DB_HOST='localhost'
DB_PREFIX='wp_'
# WordPress környezet
WP_ENV='development'
WP_HOME='https://example.com'
WP_SITEURL="${WP_HOME}/wp"
# Debug
WP_DEBUG=true
WP_DEBUG_LOG=true
# API kulcsok
GOOGLE_MAPS_API_KEY='AIza...'
SMTP_PASSWORD='smtp_jelszo'

A .env fájlban hivatkozhatsz korábban definiált változókra:

WP_HOME='https://example.com'
WP_SITEURL="${WP_HOME}/wp"

A # karakterrel kezdődő sorok kommentek:

# Ez egy komment
DB_NAME='wordpress' # Sor végi komment is működik

A Bedrock .env fájlja a következő változókat tartalmazza:

DB_NAME='adatbazis_neve'
DB_USER='adatbazis_felhasznalo'
DB_PASSWORD='adatbazis_jelszo'
DB_HOST='localhost'
DB_PREFIX='wp_'
WP_ENV='development'
WP_HOME='https://example.com'
WP_SITEURL="${WP_HOME}/wp"
# Salt kulcsok (generáld: https://roots.io/salts.html)
AUTH_KEY='generalt-kulcs'
SECURE_AUTH_KEY='generalt-kulcs'
LOGGED_IN_KEY='generalt-kulcs'
NONCE_KEY='generalt-kulcs'
AUTH_SALT='generalt-kulcs'
SECURE_AUTH_SALT='generalt-kulcs'
LOGGED_IN_SALT='generalt-kulcs'
NONCE_SALT='generalt-kulcs'

Minden környezetnek (fejlesztői, staging, éles) saját .env fájlja van, különböző beállításokkal:

Változó Fejlesztői Staging Éles
WP_ENV development staging production
WP_HOME https://local.example.com https://staging.example.com https://example.com
WP_DEBUG true true false
DB_NAME wp_dev wp_staging wp_production

A repóban egy .env.example fájl tartalmazza a szükséges változók listáját értékek nélkül (vagy példaértékekkel). Ez segíti az új fejlesztőket:

DB_NAME='adatbazis_neve'
DB_USER='felhasznalonev'
DB_PASSWORD='jelszo'
DB_HOST='localhost'
WP_ENV='development'
WP_HOME='https://local.example.com'
WP_SITEURL="${WP_HOME}/wp"

Új fejlesztő belépésekor:

Terminál
cp .env.example .env
# Szerkeszd a .env fájlt a saját beállításaiddal

A .gitignore fájlnak tartalmaznia kell:

.env

A Bedrocknál a .env fájl a projekt gyökerében van, ami a webroot (web/) felett helyezkedik el. Így a webszerver nem tudja kiszolgálni.

projekt/
├── .env # ← Itt van, NEM érhető el böngészőből
├── web/ # ← A webszerver csak ezt a mappát szolgálja ki
│ └── ...
└── ...

Az éles szerveren a .env fájl jogosultsága:

Terminál
chmod 600 .env # Csak a tulajdonos olvashatja

A Bedrock automatikusan betölti a .env fájlt. Ha egyedi PHP kódban szeretnéd elérni a változókat:

// Környezeti változó olvasása
$db_name = env('DB_NAME');
$api_key = env('GOOGLE_MAPS_API_KEY');
// Vagy PHP natív módszerrel
$db_name = getenv('DB_NAME');
$db_name = $_ENV['DB_NAME'];

Összehasonlítás: wp-config.php vs .env

Szekció neve “Összehasonlítás: wp-config.php vs .env”
Szempont wp-config.php .env + Bedrock
Jelszavak helye A kódban, Git repóban Külön fájlban, repón kívül
Környezetek Egy fájl, kézi átírás Környezetenként külön .env
Biztonság Webroot-ban Webroot felett
Új fejlesztő belépése Jelszavakat kell megosztani .env.example másolása
Titkos kulcsok cseréje Commit + deploy szükséges Csak a .env fájl szerkesztése

We respect your privacy

We use cookies to improve your browsing experience and to analyse traffic. Analytics only starts if you allow it. Privacy policy, Cookie policy.

Cookie settings