【问题标题】:Hiding Database Configuration - Codeigniter隐藏数据库配置 - Codeigniter
【发布时间】:2012-01-25 17:13:58
【问题描述】:
所以我刚刚完成了我的第一个 php codeigniter 应用程序,我即将将它部署到服务器上。但是,我听说将数据库设置保存在文档根目录中是非常糟糕的做法。 Codeigniter 是否以某种方式隐藏了 application/config/database.php 中的设置,或者我应该将整个应用程序文件夹移动到其他地方并从 index.php 中引用它?谢谢!
【问题讨论】:
标签:
php
database
codeigniter
【解决方案1】:
我总是将应用程序和系统文件夹移到docroot 之外。这样一来,就无法从 Web 访问任何应用程序文件,只能访问引导程序。
在默认的 CI 安装中,您会看到:
public_html // the docroot folder
application
system
index.php
我是这样改的:
application
system
public_html // the docroot folder
index.php
并将 index.php 更改为:
$system_path = '../system';
$application_folder = '../application';
【解决方案2】:
如果您的文件可公开访问,这将是一种不好的做法,但这本身并不是一件坏事。例如,WordPress(为大部分网络提供支持的 CMS)将其数据库配置信息存储在文档根目录中的一个名为 wp-config.php 的文件中。
我们在 WordPress 领域遵循的建议是将文件 chmod 到 755,这样它就只有经过身份验证的用户和 Apache 才能读取。
sudo chmod 755 file.ext
【解决方案3】:
CodeIgniter 在拒绝访问的 application/ 和 /system 文件夹中包含 .htaccess 文件,但最好将这些文件夹移出任何可公开访问的文件夹。
CodeIgniter 前端控制器 (index.php) 包含用于更改应用程序和系统文件夹位置的变量。