所以我刚刚完成了我的第一个php codeigniter应用程序,我即将把它部署到服务器上。但是,我听说在文档根目录中保留数据库设置是非常糟糕的做法。 Codeigniter是否以某种方式隐藏了application / config / database.php中的设置,还是应该将整个应用程序文件夹移到别处并从index.php引用它?谢谢!
答案 0 :(得分:4)
我总是将应用程序和系统文件夹移到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';
答案 1 :(得分:1)
如果您的文件可以公开访问,那将是不好的做法,但这本身并不是件坏事。例如,WordPress(为网络的大部分提供支持的CMS)将文档根目录中的数据库配置信息存储在名为wp-config.php
的文件中。
我们在WordPress中遵循的建议是将文件chmod到755
,这样只有auth'ed用户和Apache才能读取它。
sudo chmod 755 file.ext
答案 2 :(得分:1)
CodeIgniter包含拒绝访问的.htaccess
和application/
文件夹中的/system
个文件,但将这些文件夹移出任何可公开访问的文件夹始终是个好主意。
CodeIgniter前端控制器(index.php
)包含用于更改应用程序和系统文件夹位置的变量。