Обращаться к файлам на уровень выше обычно можно, и так и делают: папка проекта и в неё подпапка, корень веб сайта:
/var/www/Project/
.secret_data.php
public_html/
index.php <-- отсюда подключается "../.secret_data.php"
И параметры доступа к БД и ключи API стоит хранить в таком месте. Ещё часто их значения подгружают в массив окружения
$_ENV
и
$_SERVER
при выполнении, и оттуда берут при необходимости. Грубо пример .secret_data.php:
$params = array(
'API_KEY' => '3pyWtP7KYVheJWkftdchJLWhwUcK8Rdw',
'DB_HOST' => '127.0.0.1',
'DB_USER' => 'root',
'DB_PASS' => 'secret',
);
$_ENV = array_merge( $_ENV, $params);
$_SERVER = array_merge( $_SERVER, $params);
Распространённое решение – использовать пакет
vlucas/phpdotenv, который загружает «секретные» данные из файла
.env