Twój katalog internetowy, czyli $_SERVER['DOCUMENT_ROOT'] w PHP to folder w systemie plików, na który wskazuje serwer WWW (w tym przypadku Apache) dla konkretnego hosta.
Na przykład, jeśli umieścisz ten kod w pliku index.php i odwiedzisz nazwę swojej domeny (lub nazwę subdomeny), zostaniesz poinformowany o Twoim katalogu głównym.
<?php
header("Content-Type: text/plain;charset=UTF-8");
die($_SERVER['DOCUMENT_ROOT']);
?>
Powinien powiedzieć coś w stylu /home/some_user/public_html lub /var/www . W takim przypadku chcesz utworzyć ścieżkę, która nie znajduje się w tym katalogu.
Na przykład:/home/some_user/config lub /var/webconfig .
NIE chcesz go przechowywać w /home/some_user/public_html/config (zwróć uwagę na public_html) lub /var/www/webconfig (zauważ, że jest to podfolder /var/www )
Pomysł przechowywania danych poza głównym katalogiem sieci polega na tym, że atakujący nie może przejść do https://yoursite.com/config/mysql.txt i uzyskaj swoje hasła. Ataki LFI i Directory Traversal nie są objęte zakresem tej inicjatywy.
Nie należy również sprawdzać żadnych poufnych informacji (poświadczeń bazy danych, kluczy szyfrowania itp.) do kontroli wersji. Kiedykolwiek.
Jak uzyskać do nich dostęp z PHP?
To zależy od tego, jak zakodowana jest twoja konfiguracja.
<?php
$config = parse_ini_file('/home/some_user/config/mysql.ini');
// OR
$config = json_decode('/home/some_user/config/mysql.json');
// OR
require_once '/home/some_user/config/mysql_config.php';
?>