访问控制-限制某个目录禁止php解析php
通常用于存储静态文件的目录,由于图片等之类的文件是不须要解析PHP的,且静态文件目录也不容许放php文件。 核心配置文件内容shell
<Directory /data/wwwroot/123.com/upload>; php_admin_flag engine off </Directory>
curl测试时直接返回了php源代码,并未解析apache
访问控制-user_agent浏览器
user_agent能够理解为浏览器标识 核心配置文件内容安全
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_USER_AGENT} .*curl.* [NC,OR] //NC表示忽略大小写 RewriteCond %{HTTP_USER_AGENT} .*baidu.com.* [NC] RewriteRule .* - [F] //F即forbidden </IfModule>
匹配curl或者baidu.com的进行限制。用了OR链接符,不加就是而且,会报错。php7
curl -A "123123" -A参数指定user_agentcurl
php相关配置socket
查看php配置文件位置 /usr/local/php/bin/php -i|grep -i "loaded configuration file" //准确的位置能够打开浏览器的phpinfo信息查看。函数
默认php的安装路径下是没有配置文件的,从安装包里拷贝一份测试
cp /usr/local/src/php-7.1.6/php.ini-development /usr/local/php7/etc/php.ini
而后/usr/local/apache2.4/bin/apachectl -t和/usr/local/apache2.4/bin/apachectl graceful使配置文件生效。
date.timezone=Asia/Shanghai //定义php的时区,要定义,注意去掉前面的分号。 disable_functions= //在这个字段禁用如下函数,直接复制在等号后面便可。 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,phpinfo error_log, //定义错误日志的路径 log_errors, //开启错误日志为On display_errors, //为On表示错误信息直接显示在浏览器上,改为Off error_reporting //定义日志的级别,默认为ALL,生产环境为E_NOTICE open_basedir //安全相关的参数,这里不定义,在vhost里头定义,vhost添加以下参数便可。 php_admin_value open_basedir "/data/wwwroot/111.com:/tmp/" //针对不一样的虚拟主机如今他的open_basedir,tmp目录是由于php会先把文件放在该目录,而后在转移。