瀏覽器僅可以解碼HTML格式的文檔,對於非HTML格式的文檔,瀏覽器調用插件或者經過CGI接口調用其餘程序來解碼.php
動態網站: 咱們在服務器端或客戶端執行了一段腳本或者一段程序,這段程序執行的結果根據不一樣的用戶、客戶端、執行場景而不一樣!html
動態網站必定是可以根據用戶請求做出對應響應,甚至於對不一樣的用戶它返回的內容是不同的,根據客戶端不一樣的請求,返回的前端
結果是不同的。mysql
動態網站又分爲客戶端動態和服務器端動態sql
客戶端動態 :咱們服務器端的源程序要下載到本地,而且在本地執行,並把執行結果經過瀏覽器顯示出來。瀏覽器
服務器端動態 :在服務器內部執行源程序,並把執行結果經過瀏覽器返回給客戶端。緩存
php-mysql.i686 -->這個包是PHP訪問MySQL的驅動服務器
在php3.0時,引入了zend引擎,將咱們的執行過程分紅了兩段工具
第一段:詞法分析、語法分析、轉換爲opcode網站
第二段:執行opcode(放置在內存中)
爲了不他自身去清除opcode,而且實如今多個不一樣的進程之間共享操做碼,共享opcode功能,引入了緩存加速器!
緩存加速器:
APC
eAccelerator
XCache
php解釋器與mysql交互
真正與mysql交互的是使用php解釋器開發出來的程序(php程序)
<html> -->html標籤
<head> -->首部
<title> </title> -->標題(放在網頁上的標題)
</head>
<bady> -->主體(主體包含網頁內容)
</bady>
</html>
/etc/httpd/conf/httpd.conf
一、找到這個模塊,確認Apache支持CGI
二、找到這個選項 ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" 用於定於在哪一個目錄當中能夠執行CGI腳本
訪問路徑 目錄
三、而後在/var/www/cgi-bin/這個目錄下建立一個腳本
Apache支持DSO機制
DSO:動態共享對象
php解釋器與httpd交互的方式()
FastCGI :安裝一個PHP的服務器,自身能夠事先生成空閒進程 ,這些空閒進程由PHP服務器自身管理,前端Apache須要使用到PHP功能時
直接向PHP服務器發起請求就能夠了,PHP服務器分配一個空閒進程給Apache,當Apache請求結束了,進程還或被收回來,須要銷
毀時服務器會本身銷燬。基於相似一種服務器客戶端同樣的機制,Apache爲客戶端,PHP服務器爲服務器。
默認監聽在9000端口上
在紅帽5.4之後就自帶這個功能,名稱爲fpm(快速PHP模塊),
Apache與PHP結合的三種方式:
CGI
module (簡單)
fastCGI (配置麻煩)
如何配置Apache服務器使用PHP功能?
一、PHP安裝包
php-5.3.3-22.el6.i686.rpm -->不支持fpm,須要使用這個功能須要打補丁
二、php配置文件(Apache基於線程或進程工做時,他們所依賴的PHP模塊也是不同的 )
<IfModule prefork.c> -->基於進程工做
LoadModule php5_module modules/libphp5.so -->在進程模式下PHP,PHP以傳統意義上的方式工做
</IfModule>
<IfModule worker.c> -->基於線程工做
LoadModule php5_module modules/libphp5-zts.so -->在線程模式下,PHP必須以zts的方式工做
</IfModule>
無論是哪種,他會判斷你使用哪一個模式,並相應加載合適的模塊
AddHandler php5-script .php -->處理器,以.php結尾的文件,就是用這個工具來處理
AddType text/html .php -->添加了一種類別text/html
DirectoryIndex index.php -->默認主頁面
PHP程序的主配置文件(/etc/php.ini)
[名字] -->一個[名字]只對這一堆指令生效(分段式配置)
一大堆指令
[名字]
一大堆指令