说明
本程序目录规范适用于Yii 1.1.x 版本,由于Yii 2.0 变化较大,所以不适用。
目录结构
根目录文件
<pre>
index.php web程序入口
build.xml Jenkins 配置文件
robots.txt 爬虫规则文件
</pre>
assets/
Yii 框架静态资源生成目录
config/(程序配置目录)
<pre>
main.php web主配置文件
params.php 模块参数配置文件
service.php 程序使用的服务的配置文件,包括mysqld/memcached/redis/mongoldb
console.php 命令行程序主配置文件
</pre>
data/
附件或用户上传数据目录
runtime/
程序运行过程目录,包括Yii log/临时temp cache
source/(程序源码目录)
<pre>
commands/ 命令行程序
components/ 组件目录
controllers/ 控制器模块
extensions/ 第三方扩展目录
models/ 模型目录
modules/ 模块目录
views/ 视图目录
yiic 命令行程序入口(linux)
yiic.bat 命令行程序入口(window)
yiic.php 命令行程序
</pre>
static/
<pre>
css/ css目录
images/ images目录
js/ js目录
</pre>
目录的系统权限
常规目录和文件
这些目录及子目录权限所有者是root:root 或jenkins_publisher:jenkins_publisher,目录权限为:755,文件权限为:644
- config/
- source/
- static/
web读写目录
这些目录及子目录权限所有者是nobody:root 或 nobody:jenkins_publisher,目录权限为:755,文件权限为:644
- assets/
- data/
- runtime/
目录的web访问权限
禁止web访问的目录
这些目录禁止任何web访问,直接访问将返回404
- config/
- source/
- runtime/
在Nginx中配置:
<pre>
location ~* /(config|source|runtime)/ {
return 404;
}
</pre>
禁止php执行的目录
这些目录中,禁止php文件的执行,访问php后缀(.php)的文件将返回403
- assets/
- data/
- static/
在Nginx中配置:
<pre>
location ~* /(assets|data|static)[/.]*/.*.(php|php5|asp|aspx|jsp|sh){
deny all;
}
</pre>
其他参考资料
整理于2014/12