2017-06-15 88 views
0

我有两个网站使用codeigniter使用相同的数据库配置(主机名,用户名,密码),只是想问一下是否可以从外部文件调用数据库配置?事情是,如果我想改变我的数据库的根密码,我必须手动更改这两个网站database.php,现在让我说我有10个网站这将是一个困难的任务是否正确?我只想更改单个文件,以便所有网站都可以使用该配置。Codeigniter使用外部文件替换database.php

我通过PHPmyadmin使用mysql。

$db['default'] = array(
    'dsn' => '', 
    'hostname' => 'localhost', 
    'username' => 'root', 
    'password' => 'root', 
    'database' => 'MyBlog', 
    'dbdriver' => 'mysqli', 
+0

你能做到这样。在任何地方创建一个文件,应该对所有人都是通用的并使用来自CI挂钩的curl调用该文件,并在响应中获得数据库凭证。现在的事情是如何在databse.php中传递这些动态证书?谷歌为此。这可能是一种方式,我不确定。 – Rahul

回答

1

如果你需要使用一个配置的所有网站,可以使文件(即db_config.php),并设置TI地方是提供给所有的CI的应用。

db_config.php

<?php 

return [ 
    'dsn' => '', 
    'hostname' => 'localhost', 
    'username' => '', 
    'password' => '', 
    'database' => '', 
    'dbdriver' => 'mysqli', 
    'dbprefix' => '', 
    'pconnect' => FALSE, 
    'db_debug' => (ENVIRONMENT !== 'production'), 
    'cache_on' => FALSE, 
    'cachedir' => '', 
    'char_set' => 'utf8', 
    'dbcollat' => 'utf8_general_ci', 
    'swap_pre' => '', 
    'encrypt' => FALSE, 
    'compress' => FALSE, 
    'stricton' => FALSE, 
    'failover' => array(), 
    'save_queries' => TRUE 
]; 

然后在你的每一个应用程序的APPPATH.'config/db.php'你应该有:

$db['default'] = require('/path/to/db_config.php'); 
+0

我想包括使用一个URL路径,但我遇到了这样的问题这样的问题https://stackoverflow.com/questions/9498885/cant-include-file-on-remote-server – KaoriYui

+0

PLease告诉每一个重要的细节。此解决方案旨在用作常规文件需求。为此你需要公共场所的文件,然后它是不安全的,因为它可以被任何人阅读。应用程序不在同一台服务器上? – Tpojka

+0

对不起,我试图使用base_url(),它在同一台服务器,谢谢! – KaoriYui