您好,登錄后才能下訂單哦!
Apache按天生成日志文件:
apache默認日志文件就一個,時間長了日子文件會變得很大,而且查看時候打開也會很慢,有可能還會影響網站速度,以下演練如何實現日志按天生成文件
[root@justin htdocs]# vim /etc/httpd/conf/httpd.conf 484 #ErrorLog logs/error_log --錯誤日志,注釋此行,添加以下一行 485 ErrorLog "|rotatelogs /var/log/httpd/error_log%Y%m%d.log 86400 480" --86400:秒,24小時,表示生成的日志文件按天滾動,也就是每天生成一個日志文件;480:分,時間偏移。 ...... 513 #CustomLog logs/access_log common --訪問日志,注釋此行,添加以下一行 514 CustomLog "|rotatelogs /var/log/httpd/access_log%Y%m%d.log 86400 480" common [root@justin htdocs]# service httpd restart
Rotatelogs的用法如下:
rotatelogs [ -l ] rotatelogs [ -l ] logfile[ rotationtime [ offset ]] | [ filesizeM ]
該命令只有兩種選項用以對日志文件logfile進行操作,第一種,rotationtime 日志文件以秒為單位滾動,第二種, filesizeM 指定以filesizeM文件大小滾動,而不是按照時間或時差滾動
選項:
-l 使用本地時間代替GMT時間作為時間基準。
logfile 日志文件名。
rotationtime 日志文件以秒為單位滾動,如ErrorLog "|/data/apache/bin/rotatelogs /var/log/httpd/error_log%Y%m%d.log 86400 480"
offset 相對于UTC的時差的分鐘數。-l 和offset都是和時區相關的,可不理會
filesizeM 指定以文件大小滾動,如ErrorLog "|/data/apache/bin/rotatelogs /var/log/httpd/access_log%Y%m%d.log 5M",此配置會在錯誤日志大小增長到5兆字節時滾動該日志,
文件名格式對照表
%A | 星期名全稱(本地的) |
%a | 3個字符的星期名(本地的) |
%B | 月份名的全稱(本地的) |
%b | 3個字符的月份名(本地的) |
%c | 日期和時間(本地的) |
%d | 2位數的一個月中的日期數 |
%H | 2位數的小時數(24小時制) |
%I | 2位數的小時數(12小時制) |
%j | 3位數的一年中的日期數 |
%M | 2位數的分鐘數 |
%m | 2位數的月份數 |
%p | am/pm12小時制的上下午(本地的) |
%S | 2位數的秒數 |
%U | 2位數的一年中的星期數(星期天為一周的第一天) |
%W | 2位數的一年中的星期數(星期一為一周的第一天) |
%w | 1位數的星期幾(星期天為一周的第一天) |
%X | 時間(本地的) |
%x | 日期(本地的) |
%Y | 4位數的年份 |
%y | 2位數的年份 |
%Z | 時區名 |
%% | 符號"%"本身 |
定期刪除日志文件:
用crontab刪除日志文件,只保留近7天的文件,以免日志文件占滿磁盤空間。
[root@justin htdocs]# crontab -e no crontab for root - using an empty one 0 3 * * 7 /bin/find /var/log/httpd/ -type f -mtime +7 -name "*.log" -exec rm {} \; [root@justin htdocs]# crontab -l 0 3 * * 7 /bin/find /var/log/httpd/ -type f -mtime +7 -name "*.log" -exec rm {} \; [root@justin htdocs]#
Apache默認網站目錄更改
Apache默認的網站目錄是在/var/www/html,現在要把網站目錄更到/usr/local/apache/htdocs
[root@justin ~]# mkdir -p /usr/local/apache/htdocs/ [root@justin ~]# vim /etc/httpd/conf/httpd.conf 292 DocumentRoot "/usr/local/apache/htdocs" 317 <Directory "/usr/local/apache/htdocs"> [root@justin ~]# service httpd restart [root@justin ~]# ll -d /usr/local/apache/htdocs/ drwxr-x--- 2 apache apache 4096 Mar 6 10:43 /usr/local/apache/htdocs/ [root@justin ~]# chmod 755 !$ chmod 755 /usr/local/apache/htdocs/ [root@justin ~]#
防止php***跨站設置
在Apache服務器中,切忌一定要在虛擬主機配置文件中添加以下代碼,否則PHP***腳本可以瀏覽你服務器上的任意文件,這意味著你的服務器很快會被攻破。
[root@justin ~]# vim /etc/httpd/conf/httpd.conf 1002 #<VirtualHost *:80> 1003 php_admin_value open_basedir "/usr/local/apache/htdocs/:/tmp/" 1004 # ServerAdmin webmaster@dummy-host.example.com 1005 # DocumentRoot /www/docs/dummy-host.example.com 1006 # ServerName dummy-host.example.com 1007 # ErrorLog logs/dummy-host.example.com-error_log 1008 # CustomLog logs/dummy-host.example.com-access_log common 1009 #</VirtualHost> [root@justin ~]# service httpd restart
/usr/local/apache/htdocs/為網站目錄,如果vhost.conf[/etc/httpd/conf.d/vhost.conf]中設置了open_basedir之后, 虛擬用戶就不會再自動繼承php.ini中的open_basedir設置值了,這就難以達到靈活的配置措施, 所以建議不要在/etc/httpd/conf.d/vhost.conf
中設置此項限制。可以在php.ini中設置open_basedir = .:/tmp/;這個設置表示允許訪問當前目錄(即PHP腳本文件所在之目錄)和/tmp/目錄,有效防止php***跨站運行。
禁止空主機頭
為了防止域名解析惡意指向,需要禁止apache默認的空主機頭
[root@justin ~]# vim /etc/httpd/conf/httpd.conf NameVirtualHost * <VirtualHost *:80> ServerAdmin yourmail@mail.com DocumentRoot /error ServerName abc.com </VirtualHost>
<VirtualHost *:80> ServerAdmin yourmail@mail.com DocumentRoot "你的站點路徑" ServerName yourWebsite.com ServerAlias *.yourWebsite.com </VirtualHost>
第一部分是需要添加的,第二部分是使用的站點配置
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。