本教程需要具备PHP技术或者服务器运维技术人员
网站安全首选需要让能通过web域名访问的目录都设置为不可写入权限,这样能有力保证服务器不被恶意写入非法的文件。
本教程例子中的网站web目录假设为:/www/www.xxx.com/
一、分离cache目录
cache目录必须具备可写入权限,默认可以通过web访问其内容,推荐把cache目录分离到其他目录(SSD硬盘最佳)
1、将cache目录移动到指定目录,例如/www/fenli/cache/
2、打开web目录的 index.php
3、查找// 缓存文件存储目录,支持自定义路径,建议固态硬盘存储缓存文件
define('WRITEPATH', '/www/fenli/cache/');
4、赋予新的cache可读写权限,如果网站正常访问就表示ok了
二、分离dayrui目录
dayrui目录是程序文件目录,存储的php业务逻辑程序文件,通常情况下需要具备可读写权限
1、将dayrui目录移动到指定目录,例如/www/fenli/dayrui/
2、打开web目录的 index.php
3、查找 //系统核心程序目录,支持自定义路径和改名
将代码修改为 define('FCPATH', '/www/fenli/dayrui/');
4、赋予新的dayrui可读写权限,如果网站正常访问就表示ok了
三、分离模板template目录
template目录是存放模板文件的,实际项目中不建议将其暴露在web目录中,推荐进行分离
1、将template目录移动到指定目录,例如/www/fenli/template/
2、打开web目录的 index.php
// 此代码放到【执行主程序】代码之前 define('TPLPATH', '/www/fenli/template/');
3、赋予新的template可读写权限,如果网站正常访问就表示ok了
四、分离附件存储目录
uploadfile目录是附件存放的目录,安全起见,强烈推荐进行分离
1、将uploadfile目录移动到指定目录,例如/www/fenli/uploadfile/
2、再web服务器中为此目录绑定一个域名,例如:
www.abc-file.com
顶级域名二级域名都可以
3、必须设置此网站不能执行php代码,以宝塔BT服务器为例的配置:
纯静态的目的是为了此目录下的不允许执行php文件,增强被非法写入的安全性
4、进入cms后台,系统,附件设置
5、保存再更新缓存后,测试上传附件试试是否正常
五、头像分离存储
/api/member/目录是头像存放的目录,安全起见,强烈推荐进行分离
1、将/api/member/目录移动到指定目录,例如/www/fenli/touxiang/
2、再web服务器中为此目录绑定一个域名,例如:
www.abc-touxiang.com
顶级域名二级域名都可以
3、必须设置此网站不能执行php代码,以宝塔BT服务器为例的配置:
4、进入cms后台,系统,附件设置,头像分离设置
5、保存再更新缓存后,测试上传头像试试是否正常
六、给web目录设置只读权限
通过上面一到五的配置,已经把能具有写入权限的目录分离出去了,现在web目录剩下的文件都可以不需要写入权限
/www/www.xxx.com/
现在为web目录设置,只读权限,例如555权限。
友情提示:如果网站需要生成静态文件,需要提前为web目录开启读写权限,生成完毕后,再设置只读权限