디렉토리 생성

mkdir /home/hosting_users/고객님ID/secure_data


파일경로지정

$config_file = '/home/hosting_users/고객님ID/secure_data/config.php';


파일썬

config_file = '/home/hosting_users/고객님ID/secure_data/config.json'


파일접근

$config = include $config_file;


설정

chmod 700 /home/hosting_users/고객님ID/secure_data

chmod 600 /home/hosting_users/고객님ID/secure_data/config.php


민감정보설정

/home/hosting_users/고객님ID/secure_data/db_config.php


경로설정

<?php

// 웹 애플리케이션 파일 (예: index.php)

require '/home/hosting_users/고객님ID/secure_data/db_config.php';


// 데이터베이스 연결

$conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);


// 연결 오류 확인

if ($conn->connect_error) {

  die("Connection failed: " . $conn->connect_error);

}


권한설정

chmod 600 /home/hosting_users/고객님ID/secure_data/db_config.php

chown www-data:www-data /home/hosting_users/고객님ID/secure_data/db_config.php



echo "Connected successfully";

?>


경로구조

/home/hosting_users/고객님ID/

├── secure_data/        # 루트 디렉토리 외부

│  └── config.php       # 민감정보가 포함된 파일

└── www/            # 루트 디렉토리

  └── db_connection.php   # DB 연결 파일


<?php

// db_connection.php


// 절대 경로로 config.php 파일 포함

require '/home/hosting_users/고객님ID/secure_data/config.php';


// 데이터베이스 연결

$conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);


// 연결 오류 확인

if ($conn->connect_error) {

  die("Connection failed: " . $conn->connect_error);

}


echo "Connected successfully";

?>


.htacess 보안설정

# /home/hosting_users/고객님ID/secure_data/.htaccess

Deny from all


ini_set('display_errors', 0); (에러메세지 미표기)

error_reporting(0);


/secure_data/config.php (깃허브 접근제한)


테스트

php /home/hosting_users/고객님ID/www/db_connection.php