扩展 :
apache开启压缩 :
http://ask.apelearn.com/question/5528
apache2.2到2.4配置文件变更 :
http://ask.apelearn.com/question/7292
apache options参数 :
http://ask.apelearn.com/question/1051
apache禁止trace或track防止xss :
http://ask.apelearn.com/question/1045
apache 配置https 支持ssl :
http://ask.apelearn.com/question/1029
11.28 限定某个目录禁止解析php
访问控制 – 禁止php解析
1. 编辑虚拟主机配置文件,针对网站下的目录设定禁止解析php文件!:
[root@hao-01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
添加内容:
<Directory /data/wwwroot/111.com/upload>
php_admin_flag engine off
<FilesMatch (.*)\.php(.*)>
Order allow,deny
Deny from all
</FilesMatch>
</Directory>
2. 创建upload目录 :
[root@hao-01 ~]# mkdir /data/wwwroot/111.com/upload
3. 创建编辑123.php测试文件到upload目录下 :
[root@hao-01 ~]# vim /data/wwwroot/111.com/upload/123.php
插入内容:
<?php
echo "123.php";
4. 检测虚拟机配置文件是否有错误 :
[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl -t
3. 启动apache2.4/httpd :
[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl start
4. 重新加载配置文件(不会重启服务):
[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl graceful
5. curl访问111.com网站下的限定禁止解析目录upload下文件:
[root@hao-01 ~]# curl -x127.0.0.1:80 'http://111.com/upload/123.php'
11.29 限制user_agent
• user_agent可以理解为浏览器标识
• 核心配置文件内容
1. 编辑虚拟主机配置文件:
[root@hao-01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
插入内容:
(curl 和baidu.com是被匹配筛选的关键词,NC是区分大小写,OR是或者)
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} .*curl.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} .*baidu.com.* [NC]
RewriteRule .* - [F]
</IfModule>
2. 检测虚拟机配置文件是否有错误 :
[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl -t
3. 重新加载配置文件(不会重启服务) :
[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl graceful
4. curl 访问测试 :
[root@hao-01 ~]# curl -x127.0.0.1:80 'http://111.com/123.php'
5. 查看以今天日期命名的访问日志 :
[root@hao-01 ~]# tail /usr/local/apache2.4/logs/111.com-access_20180313.log
6. curl -A 指定user_agent(hao hao 就是模拟指定的) :
[root@hao-01 ~]# curl -A "hao hao" -x127.0.0.1:80 'http://111.com/123.php' -I
7. 查看以今天日期命名的访问日志 :
[root@hao-01 ~]# tail /usr/local/apache2.4/logs/111.com-access_20180313.log
11.30 PHP相关配置-11.31 PHP相关配置(上下)
1. 在111网站根目录下,创建index.php,内容如下:
[root@hao-01 ~]# vim /data/wwwroot/111.com/index.php
插入内容:
<?php
phpinfo();
2. 拷贝到指定路径,重命名为 php.ini :
[root@hao-01 ~]# cp /usr/local/src/php-5.6.30/php.ini-development /usr/local/php/etc/php.ini
3. 重新加载配置文件(不会重启服务)
[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl graceful
4. 在Windows游览器中,访问111网站的index.php,就可以看到php.ini所在路径了,可以在php.ini这个文件中做些配置 :
5. 编辑 php.ini,安全选项,禁掉这些函数 :
[root@hao-01 ~]# vim /usr/local/php/etc/php.ini
指定的函数,添加上!:
eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,passthru,exec,system,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,leak,popepassthru,stream_socket_server,popen,proc_open,proc_close
6.编辑php.ini,安全选项,避免报警 :
[root@hao-01 ~]# vim /usr/local/php/etc/php.ini
修改内容(指定时区为重庆上海都可以):
date.timezone = Asia/Chongqing
7. 编辑php.ini,安全选项,有错误不会在游览器中显示出 :
[root@hao-01 ~]# vim /usr/local/php/etc/php.ini
修改内容:
display_errors = Off
8. 编辑php.ini,配置错误日志路径 :
[root@hao-01 ~]# vim /usr/local/php/etc/php.ini
修改指定错误日志路径:
error_log = /tmp/php_errors.log
9. 创建错误日志 :
[root@hao-01 ~]# touch /tmp/php_errors.log
10. 给错误日志增加777权限,这样有错误就可以正常写入 :
[root@hao-01 ~]# chmod 777 /tmp/php_errors.log
11. 编辑虚拟主机配置文件,限制主机的open_basedir :
[root@hao-01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
对应的虚拟主机,添加对应的网站来限制 :
php_admin_value open_basedir "/data/wwwroot/abc.com:/tmp/"