15 访问控制-用户代理
可以理解为浏览器标识
修改虚拟主机文件
<IfModule mod_rewrite.c>
RewriteEngine on 打开模块
RewriteCond %{HTTP_USER_AGENT} .*curl.* [NC,OR] 以curl的方式
RewriteCond %{HTTP_USER_AGENT} .*baidu.com.*[NC] 以baidu的方式
RewriteRule .* - [F] 定义规则
</IfModule>
NC表示不区分大小写
OR 俩个条件都成立 或者的意思
F forbidden 针对上面做的规则,不允许访问的一个状态
然后先用curl测试可以看到被拒绝了
然后用网页测试是可以访问的
然后把curl改为浏览器Mozilla
结果正好相反了
浏览器不可以访问了
然后curl还有一个参数
Curl –A 表示指定agent
先把配置文件改回curl
-A可以指定一个agent这时候的agent就不是curl,就可以访问了
16 PHP相关配置
查看php配置文件的位置
/usr/local/php/bin/php -i|grep -i "loaded configuration file"
Phpinfo这个函数可以来查看php配置文件
然后用浏览器查看
查看配置时候有许多警告,现在去除这些警告,警告是系统时间不安全不匹配
修改配置文件
vi /usr/local/php/etc/php.ini
修改timezone字段
然后警告就没有了
Disable_function 表示禁用一些方法,里面有许多关键的函数
disable_functions=eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,pas
sthru,exec,system,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_e
xec,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symli
nk,1eak,popepassthru,stream_socket_server,popen,proc_open,proc_close
把这些函数加入配置文件
vi /usr/local/php/etc/php.ini 一般也会禁用phpinfo
17php日志相关配置
vi /usr/local/php/etc/php.ini
再配置文件禁止方法里面加入phpinfo
然后再用浏览器访问就不能访问了
然后关闭这个提示将on改为off,然后网页就成为了空白页
配置错误日志
将错误日志打开
然后将他路径改为
错误分等级修改一下级别
然后刷新页面查看tmp下面的log
然后改错php再浏览网页查看log可以看到提示说没有定义方法,会提示语法错误
18 PHP配置访问文件
俩个网站被黑了一个另一个不影响,做一个隔离,防止其他被黑
vi /usr/local/php/etc/php.ini
编辑php文件
只允许访问admin和tmp
然后浏览器查看
查看别的网页则会报错500
19 PHP虚拟主机配置访问文件
根据站点来做限制,单独的对每个网站做限制
编辑虚拟主机
vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
添加
然后重新加载访问
可以发现只能访问upload下的网站
20 PHP动态扩展模块安装
查看php模块
/usr/local/php/bin/php -m
下载reids
wget https://pecl.php.net/get/redis-2.2.5.tgz
解压
tar -zxvf redis-2.2.5.tgz
但是并没有编译文件
需要生产编译文件
先执行phpize
/usr/local/php/bin/phpize
然后可以发现生成了configure文件
执行
[root@demo redis-2.2.5]# ./configure --with-php-config=/usr/local/php/bin/php-config
然后执行make
[root@demo redis-2.2.5]# make
然后再执行make install
[root@demo redis-2.2.5]# make install
这是redis安装目录 扩展模块的存放目录
然后更改配置文件
[root@demo redis-2.2.5]# vi /usr/local/php/etc/php.ini
文件末尾添加
然后查看模块是否加入成功