2013-02-08 343 views
0

目前,我将我的config.php文件放置在我的Apache服务器上的include folder中,这使我能够轻松访问文件,并且必须编写目录路径。我认为这是一个好主意,因为它是安全的并且不能从公共根文件夹外部访问。创建config.php的正确方法

我从来没有被告知如何创建config.php文件,所以我即兴创作,但它似乎可能是做错了方式..(现在不安全)。然后,我开始搜索如何以正确的方式构建这些配置文件的教程,但每个教程都有自己的方式来做到这一点..有人通过使用数组来做到这一点..有人通过定义配置变量来做到这一点..其他人通过使用类..有可能没有一个正确的方式,但我想要一个安全和非常实用的系统工作,我真的不在乎它会如何先进..

这是我的目前的配置文件..你应该很容易地看到它不是那么安全,因为任何人都可能只是能够回显变量,然后读取连接。

<? 
$main_host = 'db01.server.local'; // There may be db02, db03 etc. 
$main_psw = '********'; 
$main_host_end = '.server.local'; // makes it possible for me to connect to a different datastore only knowing the subdomain. 

// *** USERS *** // 
$w_user = 'w_user'; 
$xr_user = 'xr_user'; 
$r_user = 'r_user'; 
$w_server = 'w_server'; 
$w_db_admin = 'dbw_admin'; 

// *** DATABASES *** // 
$db_accounts = 'accounts'; 
$db_server = 'server_setup'; 

// *** DB ACCOUNTS *** // 
try { 
    $w_accounts = new PDO("mysql:host=$main_host;dbname=$db_accounts", $w_user, $main_psw); 
    $w_accounts->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
} catch(PDOException $e) { 
    echo 'ERROR: ' . $e->getMessage(); 
} 

try { 
    $r_accounts = new PDO("mysql:host=$main_host;dbname=$db_accounts", $r_user, $main_psw); 
    $r_accounts->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
} catch(PDOException $e) { 
    echo 'ERROR: ' . $e->getMessage(); 
} 

// *** DB SERVER SETUP *** // 
try { 
    $w_server = new PDO("mysql:host=$main_host;dbname=$db_server", $w_user, $main_psw); 
    $w_server->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
} catch(PDOException $e) { 
    echo 'ERROR: ' . $e->getMessage(); 
} 

try { 
    $r_server = new PDO("mysql:host=$main_host;dbname=$db_server", $r_user, $main_psw); 
    $r_server->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
} catch(PDOException $e) { 
    echo 'ERROR: ' . $e->getMessage(); 
} 


?> 

所以..直接问这个问题。什么是创建一个config.php文件的正确方法?我真的也希望其他人会觉得这很有用。

编辑我也应该mension,这可能不是所有的..我可以有进一步的连接,使..不仅accountsserver_setup

+0

一个配置文件应只包含您的环境设置。所以我会将数据库创建从中移出。 – Tarilo

+0

我之所以这样做,是因为我不想帮助程序员知道配置文件中有什么。但是我想这可能无法保证这种方式? – Dimser

回答

0

首先,从来没有回声异常生产的消息,而不是把把它们变成可读的日志文件。

如果你看看很多MVC框架,他们的php配置文件只包含一个数组,它在文件末尾返回。

限制访问这些配置文件可以通过的.htaccess来完成与

0

“从所有拒绝”如果有人在你的项目,你不信任的人写代码,反正你是大麻烦。因此,回应变量不一定是一个问题。所以你唯一的担心就是如何通过网页浏览器来保护你的PHP配置。 为此,我建议把你的所有配置文件到configs/目录,并添加.htaccess文件,内容如下:

Options -Indexes 
<FilesMatch .*\.php$> 
    order deny,allow 
    deny from all 
</FilesMatch> 
相关问题