前期做這個實驗的時候:
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的靜态頁面進行配置,有哪些方式,如何進行調整等。