Dotenv (.env)
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.
Miért fontos?
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.phpa webroot-ban van, webszerver-hiba esetén elérhető
A .env fájl megoldja ezeket:
- Nem kerül a Git repóba (a
.gitignorekizárja) - Minden környezetnek saját
.envfájlja van - A webroot felett helyezkedik el (Bedrocknál)
Hogyan működik?
.env fájl felépítése
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'
Hivatkozás más változókra
A .env fájlban hivatkozhatsz korábban definiált változókra:
WP_HOME='https://example.com'
WP_SITEURL="${WP_HOME}/wp"
Kommentek
A # karakterrel kezdődő sorok kommentek:
# Ez egy komment
DB_NAME='wordpress' # Sor végi komment is működik
Bedrock .env fájl
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'
A Bedrock-hoz a salt kulcsokat a roots.io/salts.html oldalon generálhatod, amely rögtön .env formátumban adja az eredményt.
Környezetek kezelése
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 |
.env.example
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:
cp .env.example .env
# Szerkeszd a .env fájlt a saját beállításaiddal
Biztonsági szabályok
Soha ne commitold a .env fájlt
A .gitignore fájlnak tartalmaznia kell:
.env
Ha a .env fájl valaha bekerült a Git történetbe, az abban lévő jelszavak kompromittáltnak tekintendők. Ilyenkor minden jelszót és kulcsot cserélni kell.
A .env fájl helye
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
│ └── ...
└── ...
Jogosultságok
Az éles szerveren a .env fájl jogosultsága:
chmod 600 .env # Csak a tulajdonos olvashatja
PHP-ben való használat
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
| 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 |