歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

CentOS Apache配置詳解

LAMP所需軟件與其結構
httpd mysql mysql-Server php php-devel php-mysql
可以用rpm包安裝,或者直接用yum安裝
#yum install httpd mysql-server php php-devel php-mysql
先來了解一下apache 2.0這個版本的相關結構,這樣才能知道如何處理我們的網頁數據
/etc/httpd/conf/httpd.conf:最主要的配置文件,不過很多其他的distribution都將這個文件拆成數個小文件,分別管理不同的參數。但是最主要配置文件還是以這個文件名為主。
/etc/httpd/conf.d/*.conf:這個事CentOS的特色之一,如果你不想修改原始配置文件httpd.conf的話,那麼可以將你自己的額外參數獨立出來,而啟動apache時,這個文件就會被讀入到主要配置文件。
/usr/lib/httpd/modules:apache支持很多的模塊,所以您想要使用的模塊默認都放置在此目錄
/var/www/html:這裡是CentOS默認的“首頁”所在目錄。
/var/www/error:如果因為主機設置錯誤,或者是浏覽器端要求的數據錯誤,在浏覽器上出現的錯誤信息就已這個目錄的默認信息為主。
/var/www/icons:提供apache的一些小圖標
/var/www/cgi-bin :默認給一些可執行的CGI程序放置的目錄
/var/log/httpd:默認apache的日志文件都放在這裡,對於流量大的網站來說,這個目錄要很小心,因為這個文件很容易變的很大,您需要足夠的空間哦
/usr/sbin/apachectl:這是Apache的主要執行文件,這個執行文件其實是shell script,它可以主動檢測系統上的一些設置值,好讓您啟動Apache時更簡單
/usr/sbin/httpd:這是主要的apache的二進制文件
/usr/bin/htpasswd:當您想登陸某些網頁時,需要輸入賬號與密碼。那麼Apache本身就提供一個最基本的密碼保護方式。該密碼的產生就是通過這個命令實現的

至於MySQL方面,您需要知道的幾個重要目錄與文件有以下幾個:
/etc/my.cnf:這是Mysql的配置文件,包括您想要進行mysql數據庫的最佳化,或者是正對mysql進行一些額外的參數指定,都可以在這個文件裡實現
/usr/lib/mysql:這個目錄是MySQL數據庫放置的位置,當啟動任何MySQL的服務器時,請務必記得在備份時,將此目錄完整的備份下來。

另外,在PHP方面,應該了解以下幾個文件。
/usr/lib/httpd/modules/libphp4.so:PHP提供給apache使用的模塊,這個關系我們能否在apache網頁上面設計php程序語言的最重要文件
/etc/httpd/conf.d/php.conf:你要不要手動將該模塊寫入Httpd.conf中呢?不需要,因為系統已經主動將php設置參數寫入到這個文件中了,而這個文件會在apache重新啟動時被讀入。
/etc/php.ini:這是PHP的主要配置文件,包括PHP能不能允許用戶上傳文件,能不能允許某些低安全性的標志等,都在這個配置文件中設置。
/etc/php.d/mysql.ini /usr/lib/php4/mysql.so:PHP能否可以支持MySQL接口就看這兩個文件了。這兩個文件是由php-mysql軟件提供的
/usr/bin/phpize /usr/include/php:如果您以後想要安裝類似PHP加速器可以讓浏覽速度加快的話,那麼這個文件與目錄就需要存在,否則加速器軟件沒法用。

httpd.conf的基本設置
首先,你需要在/etc/hosts內需要有個一個完整的主機名,否則在重啟apache服務時,會提示找不到完整的主機名。
httpd.conf的基本設置是這樣的:
<設置項目>
次設置項目內的相關參數
......
</設置項目>
例如,你想要針對首頁/var/www/html提供額外的功能,那麼可以進行如下設置:
<Directory "/var/www/html">
Options Indexes
......
</Directory>

針對主機環境的設置項目
#vi /etc/httpd/conf/httpd.conf
ServerTokens OS
# 這個項目在告訴客戶端WWW服務器的版本和操作系統,不需要改編它
#如果你不想告訴太多的主機信息,將這個項目的OS改成Minor

ServerRoot "/etc/httpd"
#這個是設置文件的最頂層目錄,通常使用絕對路徑,下面某些數據設置使用相對路徑時
#就是與這個目錄設置值有關的下層目錄,不需要更改它
ServerRoot
設定Apache 安裝的絕對路徑
TimeOut
設定 服務器接收至完成的最長等待時間
KeepAlive
設定服務器是否開啟連續請求功能,真實服務器一般都要開啟
Port
設定http服務的默認端口。
User/Group
設定 服務器程序的執行者與屬組,這個一般是apache

下面我們就針對Apache做幾個實驗
1:我們測試把默認網站目錄改到root家目錄下
新建/root/website目錄
#mkdir -p /root/website
#echo "website page" >> /root/website/index.html
#vi /etc/httpd/conf/httpd.conf
找到 DocumentRoot "/var/www/html" 這一段 //apache的根目錄
把/var/www/html 這個目錄改到 /root/website
在找到 <Directory "/var/www/html"> //定義apache /var/www/html這個區域
把 /var/www/html改成/root/website
這樣我們就把apahce的默認路徑改掉了
然後重啟服務
#service httpd restart
//這裡在你重啟服務的時候,可能會報錯,說找不到目錄,這個主要是由於selinux導致的
那怎麼解決呢?有2個辦法,關掉selinux
#setenforce 0
或者更改/root/website這個文件的selinux屬性,讓它匹配httpd這個服務器的要求
怎麼改?我們可以復制/var/www/html這個目錄的selinux屬性
#chcon -R --reference /var/www/html /root/website
然後在重啟服務,之後你就看到它沒有報錯了
不過你去訪問localhost的時候,會發現訪問拒絕 這是為什麼呢?主要是因為你的/root的權限是750,ahache這個用戶沒有權限訪問,你需要更改掉權限,可以這樣改
#chmod -R 755 /root
然後去訪問 發現正常了

Copyright © Linux教程網 All Rights Reserved