前期做這個實驗的時候:
httpd:SELINUX(事先讓其處於DISABLED狀態)
getenforce
setenforce 0
編輯/etc/sysconfig/selinux
selinux的3種選擇:disabled permissive enforcing 3種選擇;
Disabled就不用說了,permissive就是selinux有效,但是即使你違反了策略的話它讓你繼續操作,但是把你違反的內容記錄下來。
在我們開發策略的時候非常的有用。
httpd在redhat系統上是受selinux控制的,一定要將selinux處於permissive,disabled狀態。
httpd.x86_64:服務包
httpd-devel.i386:這個是開發包,不做開發就用不到它;
httpd-manual.x86_64:本地的手冊頁;
只需要安裝httpd這個包即可。
httpd:SELINUX
/usr/sbin/httpd(MPM: prefork) 默認是prefork的;
httpd進程啓動起來之後,有好幾個進程。下面說下出現這幾個進程出現的原因:
httpd: root, root (master process) 主導進程
在linux系統上,小於1024的端口,只有管理員有權限啓動它。因此第一個進程是管理員啓動的。它不響應用戶請求,它用於創建空閒進程,或者銷燬進程。
httpd: apche, apache (worker process)工作進程
同時它也有自己的服務腳本:
/etc/rc.d/init.d/httpd
Port: (80/tcp), (https: 443/tcp)
編譯的話,任務軟件的安裝目錄在/etc/httpd這個目錄裏面;
/etc/httpd: 工作根目錄,相當於windows下程序安裝目錄
/etc/httpd/conf: 配置文件目錄
主配置文件:httpd.conf
主配置文件的組成分還包含有如下部分,使用文件引用將其引用進來即可:
/etc/httpd/conf.d/*.conf
/etc/httpd/modules: #模塊目錄路徑;
/etc/httpd/logs --> /var/log/httpd: #日誌文件目錄
日誌文件有兩類:訪問日誌access_log,錯誤日誌:err_log
/var/www/ #web服務器響應用戶請求的頁面路徑;
html #apache提供靜態訪問時候的路徑;
cgi-bin #apache提供動態訪問時候的路徑;
cgi: Common Gateway Interface(通用網關接口)可以理解爲協議
作用:(讓web服務器能夠跟額外的應用程序通信的一種機制,能夠讓web服務器在必要的時候啓動一個應用程序,
來處理動態的請求)
Client --> httpd (index.cgi) --> Spawn(生成,產生)Process (index.cgi) --> httpd --> Client
到底什麼樣的程序語言能夠開發出動態的cgi:perl, python(默認情況下開發動態網頁非常實用),
java,(Servlet, JSP), php(開發動態站點用的語言)。
每一種程序開發語言都有自己的適應場景;
爲了儘可能降低web服務器的壓力,web服務器無論你是否使用動態調用,讓我們的動態服務器進程也實現出現,
動態進程也像web服務器一樣也實現聲明好。也有一個自己的服務名字個服務的名字就叫fastcgi。這個時候這些動態進程的創建跟回收,
由自己的服務器完成,這叫做fastcgi。這也是cgi的一種。這個時候我們就可以將我們的服務器
分離開,靜態內容一個服務器。如果是動態請求,通過TCP/IP協議,請求我們的動態服務器即可。這個時候靜態內容跟動態內容就分開了。這就是爲什麼處理動態內容的
服務器被稱爲應用程序服務器的原因。這樣靜態服務器跟動態服務器分離了。
程序是由指令和數據組成的,指令是cpu上要運行的命令。程序最主要的是幫我們處理數據的。如果數據量非常大的話,怎麼去管理?早期是放在文檔中的,管理起來非常忙。
後期引入了數據管理機制,叫做數據庫服務器。這種程序能夠專門幫我管理數據,而且能夠通過某種接口,將這種數據服務提供給額外的其他應用程序,或者是用戶。這種接口
我們稱爲數據庫的API。應用程序服務器越來越忙了之後,我們不能主觀的將應用程序服務器分成兩個,因爲用戶訪問的數據沒法同步。這時候就需要再次進行分層。如果要訪問
動態數據,首先訪問web服務器,web服務器再訪問應用程序服務器,應用程序服務器,應用程序服務器訪問數據庫服務器,應用程序服務器,完成數據的轉換,
將其轉換爲html文檔,再返回給web服務器,web服務器再將其返回給客戶。
前端我使用apache服務器,中間我使用php服務器,後端我使用mysql服務器。這就叫做lamp。
所以之後的所有內容全是圍繞web服務器展開的。那我們後期就可以使用hadoop集羣並行處理這些信息。這些服務器如何協同,如何鏈接。
fastcgi:外部服務器與cgi通信的機制,我們起名叫fastcgi。有了它之後,動態進程就會有專門的進程生成。
程序:指令和數據
數據,數據庫服務
下面先針對httpd的靜態頁面進行配置,有哪些方式,如何進行調整等。
以後日誌主線:如何搭建單個httpd服務器,如何搭建php,如何搭建mysql。如何將httpd與php結合起來。如何將mysql域httpd,php,關聯起來。如何在一臺服務器上搭建
lamp,如何將其拆開如何在三臺服務器上搭建,lamp。如何再將其進行擴展,擴展成lamp的集羣形式。