訪問控制-限制某個目錄禁止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會先把文件放在該目錄,而後在轉移。