配置防盗链
定义:别人可以查看我们网站图片的链接,然后应用在他的网站上,这样的话,去访问他的网站,实际上消耗的是我们的流量,
这样我们就不得不去配置防盗链,使得别人不能复制我们图片的链接。
配置说明:
#SetEnvIfNoCase 当满足某个条件时,为变量赋值,即根据客户端请求属性设置环境变量。
#注:Referer :是指请求当前资源的原始连接,使用referer是可以防盗链
#注: 当我们直接在浏览器地址栏输入一个连接进行访问请求时,其referer为空
#curl直接请求一个连接referer也是空的,curl可以通过-e选项来指定referer测试效果
测试结果:
访问控制Directory
apache的配置文件中 Directory标签可以针对目录做访问控制,可以通过源IP来控制访问请求是否能访问该目录的资源
测试结果:
访问控制FilesMatch
FilesMatch标签,可以针对资源文件进行访问控制,也就相当于针对一个具体的链接进行访问控制,FilesMatch标签必须存在于Directory标签里面。
测试结果:
限定某个目录禁止解析php
在网站可以上传文件的环境中,需要将存放上传文件的目录禁止解析php,防止有人利用PHP代码来获得服务器的权限。
配置说明:
测试结果:
限制user_agent
user_agent可以理解为浏览器标识,可以通过user_agent来防止CC攻击等恶意请求
关于CC攻击的说明:CC攻击
配置说明:
测试结果:
php相关配置
##查看php配置文件位置,最好是通过phpinf()页面来查看web服务器所使用的PHP配置文件 /usr/local/php/bin/php -i|grep -i "loaded configuration file"#如果没有加载配置文件,可以从源码目录下复制默认的配置文件到PHP的配置文件存放目录cp /usr/local/src/php-5.6.30/php.ini-development /usr/local/php/etc/php.ini
##定义时区,否则会出现一些告警信息,在php.ini文件中修改下面的参数date.timezone = Asia/Shanghai 或者 Asia/Chongqing
#日志相关,在php.ini文件中修改下面的参数
#定义php错误日志文件的路径 error_log = /tmp/php_errors.log
#开启错误日志功能log_errors = On
#不输出错误信息到web页面 ,On开启的话会在web页面显示php的错误信息 display_errors = Off
error_reporting = E_NOTICE #定义记录错误日志的级别
PHP能打开的目录限制,在php.ini文件中修改下面的参数open_basedir = /data/wwwroot/123.com:/tmp/
php扩展模块安装
当PHP安装完成之后,需要添加某些编译时没有指定的模块,可以使用动态安装的方式来添加php的模块。
查看PHP已经加载的模块:/usr/local/php/bin/php -m
举例:安装一个redis扩展包
1:下载模块包
2:解压模块包
3:生成configure文件
4:configure配置安装参数,一般情况只需要指定php-config文件的路径
/configure --with-php-config=/usr/local/php/bin/php-config
5:进行编译安装
make && make install
查看扩展模块存放目录,我们可以在php.ini中去自定义该路径
ls /usr/local/php/lib/php/extensions/no-debug-zts-20131226找到opcache.so redis.so #这就是刚才编译的Redis模块
这时我们的php还不支持redis模块,还需要在php.ini配置文件中添加一行配置, 可以放在最后一行
echo 'extension = redis.so' >> /usr/local/php/etc/php.ini
#再查看PHP已经加载的模块:
/usr/local/php/bin/php -m | grep redisredis就可以看到redis了,说明php已经进行了加载。