Votre racine Web, qui est $_SERVER['DOCUMENT_ROOT']
en PHP, est le dossier de votre système de fichiers vers lequel votre serveur Web (dans ce cas, Apache) pointe pour un hôte particulier.
Par exemple, si vous mettez ce code dans votre fichier index.php et visitez votre nom de domaine (ou nom de sous-domaine), il vous indiquera votre racine Web.
<?php
header("Content-Type: text/plain;charset=UTF-8");
die($_SERVER['DOCUMENT_ROOT']);
?>
Il devrait dire quelque chose comme, /home/some_user/public_html
ou /var/www
. Dans ce cas, vous voulez créer un chemin qui n'est pas à l'intérieur de ce répertoire.
Par exemple :/home/some_user/config
ou /var/webconfig
.
Vous ne faites PAS voulez le stocker dans /home/some_user/public_html/config
(notez le public_html) ou /var/www/webconfig
(notez qu'il s'agit d'un sous-dossier de /var/www
)
L'idée de stocker des données en dehors de votre racine Web est qu'un attaquant ne peut pas accéder à http://yoursite.com/config/mysql.txt
et obtenir vos mots de passe. Les attaques LFI et de traversée de répertoire ne font pas partie du champ d'application de cette initiative.
Vous ne devez pas non plus vérifier les informations sensibles (identifiants de base de données, clés de chiffrement, etc.) dans le contrôle de version. Jamais.
Comment y accéder depuis PHP ?
Cela dépend de la façon dont votre configuration est encodée.
<?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';
?>