[LNMP]Yii 1.x程序目录优化建议和权限配置

说明


本程序目录规范适用于Yii 1.1.x 版本,由于Yii 2.0 变化较大,所以不适用。

目录结构


根目录文件


index.php web程序入口
build.xml Jenkins 配置文件
robots.txt 爬虫规则文件

assets/

Yii 框架静态资源生成目录

config/(程序配置目录)


main.php web主配置文件
params.php 模块参数配置文件
service.php 程序使用的服务的配置文件,包括mysqld/memcached/redis/mongoldb
console.php 命令行程序主配置文件

data/

附件或用户上传数据目录

runtime/

程序运行过程目录,包括Yii log/临时temp cache

source/(程序源码目录)


commands/ 命令行程序
components/ 组件目录
controllers/ 控制器模块
extensions/ 第三方扩展目录
models/ 模型目录
modules/ 模块目录
views/ 视图目录
yiic 命令行程序入口(linux)
yiic.bat 命令行程序入口(window)
yiic.php 命令行程序

static/


css/ css目录
images/ images目录
js/ js目录

目录的系统权限


常规目录和文件

这些目录及子目录权限所有者是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中配置:


location ~* /(config|source|runtime)/ {
return 404;
}

禁止php执行的目录

这些目录中,禁止php文件的执行,访问php后缀(.php)的文件将返回403

  • assets/
  • data/
  • static/

在Nginx中配置:


location ~* /(assets|data|static)[/.]*/.*.(php|php5|asp|aspx|jsp|sh){
deny all;
}

其他参考资料


[LNMP]Linux的Web环境的安全配置

整理于2014/12

你可能感兴趣的:([LNMP]Yii 1.x程序目录优化建议和权限配置)