鳥哥的linux私房菜之WWW服務器--摘錄

一、相關概念


HTTP(Hyper Text Transport Protocol,HTTP),超文本傳輸協議
HTTPd,HTTP daemon之意,爲自由軟件,後來由於HTTPd這個服務器一直沒有妥善的發展,於是一羣社羣朋友便發起一個計劃,這個計劃主要在改善原來的HTTPd服務器軟件,稱這個改良過的軟件爲Apache,取其(一個修修改改的服務器 A patch server)之意,Apache在1996年以後便成爲WWW服務器上市佔率最高的軟件了。
Mozilla:是一個自由軟件的開發計劃


網址列的意義:
URL(Uniform Resource Locator),以斜線作爲分段,它可以這樣被解釋,如下:
<協定>://<主機地址或主機名>[:port]/<目錄資源>
協定:如http,https,ftp,telnet等
主機地址或主機名:
目錄資源:


WWW server/client間數據傳輸的方式
GET, POST, HEAD(服務器端響應給Client端的一些數據文件頭而已),OPTIONS(服務器端響應給Client端的一些允許的功能與方法),DELETE(刪除某些資源的舉動)


WWW服務器的類型:系統、平臺、數據庫與程序(LAMP)
1)僅提供用戶瀏覽的單向靜態網頁(目前主要的免費虛擬主機大多是這種類型)
2)提供用戶互動接口的動態網站,動態網站的網頁程序語言與數據庫接口,這就是所謂的服務器端工作任務接口(Server Side Include,SSI),變動的是數據庫內的數據,網頁程序其實並沒有任何改變的


https:加密的網頁數據(ssl)及第三方公正單位
SSL(Secure Socket Layer),CA(Certificate Authorities),所謂的CA就是一個公認的公正單位


客戶端常見的瀏覽器
IE,firefox,chrome(窗口接口)
links與lynx,wget(文字接口)(服務器篇:第五章)


二、LAMP所需軟件與其結構(yum安裝)
httpd(提供Apache主程序)
mysql(MySQL客戶端程序)
mysql-server(MySQL服務器程序)
php(PHP主程序含給apache使用的模塊)
php-devel(PHP的發展工具,這個與php外掛的加速軟件有關)
php-mysql(提供給php程序讀取MySQL數據庫的模塊)


yum安裝如下,(針對apache2.2.x)
以下是一些主要的配置文件說明:(apache
/etc/httpd/conf/httpd.conf(主要配置文件),不過很多其他的distribution都將這個檔案拆成數個小檔案來分別管理不同的參數。
/etc/httpd/conf.d/*.conf(很多的額處參數檔,擴展名是.conf)
/usr/lib64/httpd/modules/,/etc/httpd/modules/:Apache支持很多的外掛模塊,例如php以及ssl都是apache外掛的一種,所有你想要使用的模塊檔案默認都是放置在這個目錄當中的


/var/www/html:CentOS默認的apache所在目錄。
/var/www/error:如果因爲服務器設定錯誤,或者是瀏覽器端要求的數據錯誤時,在瀏覽器上出現的錯誤訊息就以這個目錄的默認訊息爲主
/var/www/icons:這個目錄提供Apache默認給予的一些小圖標
/var/www/cgi-bin:默認給一些可執行的CGI(網頁程序)程序放置的目錄
/var/log/httpd:預設的Apache登錄檔都放在這裏,對於流量比較大的網站來說,這個目錄要小心,務必要修改一下你的logrotate讓登錄檔被壓縮
/usr/sbin/apachectl: 這個就是Apache的主要執行檔(其實是shell script而已)
/usr/sbin/httpd:主要的Apache二進制執行文件
/usr/bin/htpasswd(Apache密碼保護)


至於MySQL方面,你需要知道的幾個重要目錄與檔案有:(mysql
/etc/my.cnf,這個是MySQL的配置文件,包括你想要進行MySQL數據庫的優化,或者針對MySQL進行一些額外的參數指定
/var/lib/mysql/:這個目錄則是MySQL數據庫放置的所在處,當你有啓動任何MySQL的服務時,請務必記得在備份時,這個目錄也要完整的備份下來


至於php方面,(php
/etc/httpd/conf.d/php.conf 系統主動將php設定參數寫入這個檔案中了。
/etc/php.ini 就是php的主要配置文件
/usr/lib64/httpd/modules/libphp5.so php這個軟件提供給Apache使用的模塊
/etc/php.d/mysql.ini,/usr/lib64/php/modules/mysql.so php支持MySQL的接口
/usr/bin/phpize,/usr/include/php/如果你未來想要安裝類似php加速器以讓瀏覽速度加快的話,那麼這個檔案與目錄就得要存在,否則加速器軟件無法編譯成功,這兩個數據也是php-devel軟件所提供的




三、Apache的基本設定(具體可察看Apache2.2核心文件)


vim /etc/hosts  
127.0.0.1 localhost.localdomain  localhost
(這樣在啓動你的Apache時纔不會發生找不到完整主機名的錯誤訊息)




<IfModule prefork.c>  /usr/sbin/httpd
<IfModule worker.c>   /usr/sbin/httpd.worker(這兩個比較陌生




/etc/sysconfig/httpd,就能夠知道系統默認提供prefork模塊


php的預設參數修改


Apache的說明文件給自己的WWW服務器的話,可以安裝一下httpd-manual這個軟件,你就會發現在這個目錄當中又會新增檔案(manual.conf)


出現錯誤,解決之道
/etc/init.d/httpd configtest測試語法,更佳的解決方案是參考/var/log/httpd/error_log內的數據,可以取得更詳盡的解決之道。


mysql的基本設定
效能調校  /etc/my.cnf
(關於內存的設定,內存的簡單計算方式爲:key_buffer+(sort_buffer+read_buffer)*max_connection),且總量不可高於實際的物理內存量
pid-file?這是個什麼東東
防火牆設定與SELinux的規則放行)(暫略過)


出現錯誤,檢查,/var/log/httpd/error_log以及/var/log/messages的內容


四、Apache服務器的進階設定
1.啓動用戶的個人網站(權限是重點)
vim /etc/httpd/conf/httpd.conf
<IfModule mod_userdir.c>
    #UserDir disable
    UserDir www
</IfModule>
/etc/init.d/httpd restart


2.啓動某個目錄的CGI(perl)程序執行權限
3.瀏覽權限的設定動作(order,limit)
4. .htaccess與認證網頁設定
5.虛擬主機的設定(dig)
虛擬主機的常見用途
主機代管,服務器數據備援系統,將自己的資料分門別類


6.php強化模塊(eaccelerator)與Apache簡易效能測試
eaccelerator的官方網站在底下:http://eaccelerator.net/,注意要配合到正確的php版本


7.syslog與logrotate
我們的Apache登錄文件主要記錄兩個東西,分別是:
/var/log/httpd/access_log:用戶端正常要求的記錄信息
/var/log/httpd/error_log:用戶錯誤要求的數據,包括服務器設定錯誤的信息等。


vim /etc/logrotate.d/httpd
/var/log/httpd/*log {}
此外,透過分析登錄檔其實我們可以知道我們的網站到底是哪一個網頁最熱門,並且也能夠知道客戶端是來自哪裏呢。


8.兩個常見的分析軟件
登錄文件分析軟件:webalizer awstats 


9.建立聯機加密網站(https)及防砍站腳本
發佈了49 篇原創文章 · 獲贊 1 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章