Gốc web của bạn, là $_SERVER['DOCUMENT_ROOT']
trong PHP, là thư mục trên hệ thống tệp của bạn mà máy chủ web của bạn (trong trường hợp này là Apache) trỏ đến cho một máy chủ cụ thể.
Ví dụ:nếu bạn đặt mã này trong tệp index.php và truy cập vào tên miền của bạn (hoặc tên miền phụ), nó sẽ cho bạn biết gốc web của bạn.
<?php
header("Content-Type: text/plain;charset=UTF-8");
die($_SERVER['DOCUMENT_ROOT']);
?>
Nó sẽ nói một cái gì đó như, /home/some_user/public_html
hoặc /var/www
. Trong trường hợp này, bạn muốn tạo một đường dẫn không nằm trong thư mục này.
Ví dụ:/home/some_user/config
hoặc /var/webconfig
.
Bạn KHÔNG muốn lưu trữ nó trong /home/some_user/public_html/config
(lưu ý public_html) hoặc /var/www/webconfig
(lưu ý rằng đây là một thư mục con của /var/www
)
Ý tưởng lưu trữ dữ liệu bên ngoài gốc web của bạn là kẻ tấn công không thể điều hướng đến http://yoursite.com/config/mysql.txt
và lấy mật khẩu của bạn. LFI và các cuộc tấn công truyền qua thư mục không nằm trong phạm vi của sáng kiến này.
Bạn cũng không nên kiểm tra bất kỳ thông tin nhạy cảm nào (thông tin đăng nhập cơ sở dữ liệu, khóa mã hóa, v.v.) vào kiểm soát phiên bản. Đã từng.
Làm cách nào để truy cập chúng từ PHP?
Điều đó phụ thuộc vào cách cấu hình của bạn được mã hóa.
<?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';
?>