Linux系統下Apache日誌檔案設定、更改預設網站目錄、防止php木馬跨站設定、禁止空主機頭

科技探索者發表於2017-11-21

CentOS Linux系統下apache日誌檔案設定(每天單獨生成一個日誌檔案)

引言:

Apache預設安裝下,日誌記錄只有一個檔案,時間久了之後,這個檔案會變的很大,管理員要想檢視分析日誌,光開啟日誌就要花費很長時間,甚至還會影響伺服器執行。

下面設定apache讓伺服器每天單獨生成一個日誌檔案,這樣管理、分析日誌會方便很多。

#####################################################################################

vi /etc/httpd/conf/httpd.conf  #編輯檔案

#ErrorLog logs/error_log  #註釋此行,新增下面這行

ErrorLog “|rotatelogs /var/log/httpd/error_log%Y%m%d.log 86400 480”  #每天單獨生成一個日誌檔案

#CustomLog logs/access_log common  #註釋此行,新增下面這行

CustomLog “|rotatelogs /var/log/httpd/access_log%Y%m%d.log 86400 480” common  #每天單獨生成一個日誌檔案

######################################################################################

Tips:如果想禁止Apache日誌檔案,可以設定如下

ErrorLog /dev/null  #禁用錯誤日誌

CustomLog /dev/null common  #禁用訪問日誌

——————————————————————————–

CentOS Linux系統下更改Apache預設網站目錄

引言:

Apache預設的網站目錄是在/var/www/html,我們現在要把網站目錄更改到/home/wwwroot/web1/htdocs,操作如下

準備工作:

建立目錄:

cd /home

mkdir wwwroot

cd wwwroot

mkdir web1

cd web1

mkdir htdocs

touch index.php

操作步驟:

1、vi /etc/httpd/conf/httpd.conf

  找到 DocumentRoot”/var/www/html”這一段    #apache的根目錄

  把/var/www/html這個目錄改為/home/wwwroot/web1/htdocs

  再找到 <Directory “/var/www/html”>  #定義apache /var/www/html這個區域

  把/var/www/html改成/home/wwwroot/web1/htdocs

  這樣我們就把apahce的預設路徑改掉了

  service httpd restart  #重啟Apache伺服器

2、訪問localhost的時候,會發現訪問拒絕,這是為什麼呢?

主要是因為你的/home/wwwroot/web1/htdocs的許可權是750,apache這個使用者沒有許可權訪問,你需要更改掉許可權,可以這樣改

chmod -R 755 /home/wwwroot/web1/htdocs

然後去訪問 發現正常執行了(apache的使用者:apache 執行apache的組:apache)

至此,Apache預設網站目錄更改成功。

——————————————————————————–

CentOS Linux系統下Apache防止php木馬跨站設定

引言:

在Apache伺服器中,切忌一定要在虛擬主機配置檔案中新增以下程式碼,否則PHP木馬指令碼可以瀏覽你伺服器上的任意檔案,這意味著你的伺服器很快會被攻破。

程式碼如下:

php_admin_value open_basedir “/usr/local/apache/htdocs/www/:/tmp/”

注意:把/usr/local/apache/htdocs/www/替換成你自己的網站目錄

例如:

編輯虛擬主機配置檔案

vi /etc/httpd/conf.d/vhost.conf

在你的網站配置中新增下面的程式碼

<VirtualHost *:80>

php_admin_value open_basedir “/usr/local/apache/htdocs/www/:/tmp/”

</VirtualHost>

注意:  

因為/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木馬跨站執行。

——————————————————————————–

Linux系統下禁止apache空主機頭

引言:為了防止域名解析惡意指向,我們需要禁止apache預設的空主機頭,操作如下

vi /etc/httpd/conf/httpd.conf    

#編輯配置檔案,在你的站點配置之前再增加一個站點(紅色字型部分是我們要增加的,藍色字型部分代表你正在使用的站點配置)

NameVirtualHost * 

<VirtualHost *:80>

    ServerAdminyourmail@mail.com

    DocumentRoot /error

    ServerName abc.com

</VirtualHost>

<VirtualHost *:80>

    ServerAdminyourmail@mail.com

    DocumentRoot “你的站點路徑”

    ServerName yourWebsite.com

    ServerAlias *.yourWebsite.com

</VirtualHost>

推薦閱讀:

Apache頁面壓縮配置問題導致JSON資料傳輸時間延長 http://www.linuxidc.com/Linux/2013-08/88637.htm

使用Apachetop來分析Apache實時日誌 http://www.linuxidc.com/Linux/2013-08/88836.htm

本文轉自奔跑在路上部落格51CTO部落格,原文連結http://blog.51cto.com/qiangsh/1587576如需轉載請自行聯絡原作者

qianghong000


相關文章