Bu rehber, Laravel uygulamanızı (12. sürüm) üretim ortamında Apache kullanarak güvenli bir şekilde çalıştırmak için şifrelenmiş .env dosyası kullanımını açıklamaktadır.
Genel Bakış
Genel Bakış
Üretim aşamasında, .env dosyasında bulunan hassas bilgileri korumak son derece önemlidir. Bu yöntem, yapılandırma dosyanızı şifreler ve güvenlik için bir ortam değişkeninde saklanan bir şifreleme anahtarı kullanır.
Şifrelenmiş .env ile Laravel Çalıştırma Adımları
Şifrelenmiş .env ile Laravel Çalıştırma Adımları
Adım 1: .env Dosyasını Şifrele
Adım 1: .env Dosyasını Şifrele
Şifrelenmiş dosyayı hazırlamak için terminalinizde aşağıdaki komutu çalıştırın:
php artisan env:encrypt
Not: Şifreleme anahtarınızı ve şifreleme ayarlarınızı not etmeyi unutmayın; bunlara daha sonra ihtiyacınız olacak.
Adım 2: Apache’de Ortam Değişkenini Ayarlayın
Adım 2: Apache’de Ortam Değişkenini Ayarlayın
httpd.conf (veya .htaccess) dosyanızı açın ve şifreleme anahtarını ayarlamak için aşağıdaki satırı ekleyin:
SetEnv LARAVEL_ENV_ENCRYPTION_KEY your_key_here
Daha sonra, web sunucunuzu yeniden başlatın:
sudo systemctl restart apache2
Adım 3: Laravel’de .env Dosyasını Şifre Çöz
Adım 3: Laravel’de .env Dosyasını Şifre Çöz
/bootstrap/app.php dosyasına aşağıdaki kod parçasını ekleyin. Bu, uygulamanız yapılandırılmadan önce olmalıdır:
Application::configure(….
//ŞİFRE ÇÖZME BAŞLANGICI
use Illuminate\Encryption\Encrypter;
use Illuminate\Support\Str;
$cipher = 'aes-256-cbc'; //şifreleme türünü değiştirin
$filename = '.env.encrypted';//şifrelenmiş dosyanızı değiştirin
$key = getenv('LARAVEL_ENV_ENCRYPTION_KEY'); // Ortam değişkenlerinden şifreleme anahtarını alın
$encryptedContent = file_get_contents("../{$filename}");
if (Str::startsWith($key, $prefix = 'base64:')) {
$key = base64_decode(Str::after($key, $prefix));
}
$decrypted_text = (new Encrypter($key, $cipher))
->decrypt($encryptedContent);
$rows = array_filter(
explode("\n", $decrypted_text),
fn($r) => !empty(trim($r))
);
$rows = array_map(
fn($r) => array_map(
fn($r) => trim(
str_replace(, , $r)
),
explode(, $r)
),
$rows
);
foreach ($rows as $row) {
$_SERVER[$row[0]] = $row[1];
}
//ŞİFRE ÇÖZME SONU
Adım 4: Son Temizlik
Adım 4: Son Temizlik
Bu adımları takip ederek, Laravel uygulamanızı şifrelenmiş bir .env dosyasıyla güvenli bir şekilde çalıştırabilirsiniz. Hassas bilgilerinizi korumak için şifreleme anahtarınızı güvende tutmayı unutmayın.
Yedekleyin ve Orijinal .env Dosyasını Silin
Kaynak: Orijinal Makale


