php靜態編譯禁用模塊
1. 怎樣區別APACHE動態和靜態編譯
關於apache的動態與靜態編譯的理解,引用某人的比喻如下:
好比有兩個人a和m,a代表apache,m代表mole,要想讓a使用m的東西,一個方法是把m的東西都放到a那裡去,a使用的時候就是現成的了,就是所謂的靜態編譯
還有一個方法,就是告訴a,m的住址,當a要使用m的東西的時候,a去找m,然後使用,不過,這種方法要注意的一個問題就是:m必須要有實際的住址,否則a會找不到m而產生錯誤的,這種方法也就是apache 的動態(DSO)編譯了。
下面說說在apache1.3和apache2.0動態與靜態編譯編譯的區別
首先是apache1.3.29+php4.3.4+mysql4.0.13的靜態編譯
apache第一次編譯,並不要安裝,因為php的編譯需要apache至少已經編譯過一次
tar zvxf apache_1.3.27.tar.gz
cd apache_1.3.27
./configure --prefix=/usr/local/apache
編譯php
tar zvxf php4.3.4.tar.gz
cd php4.3.4
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apache=../apache_1.3.27
make
make install
第二次編譯安裝apache:
cd ../apache_1.3.29
./configure --prefi=/usr/local/apache --activate-mole=src/moles/php4/libphp4.a
make
make install
cp ../php4.3.4/php.ini.dist /usr/local/php/lib/php.ini
修改/usr/local/apache/conf/httpd.conf
查找<IfMole mod_mime.c>
在此范圍添加
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
注意:apache和php的源碼包在同一個目錄,--with-apache=../apache_1.3.27是指向源碼解壓的目錄
ok!靜態編譯完成。
再看DSO動態編譯方法:
首先編譯安裝apache
tar zvxf apache_1.3.29
cd apache_1.3.29
./configure --prefix=/usr/local/apache --enable-mole=so --enable-mole=rewrite --enable-shared=max
make
make install
so模塊用來提供DSO支持的apachehe核心模塊,rewrite是地址重寫的模塊,如果不需要可以不編譯enable-shared=max是指除了so以外的所有標准模塊都編譯成DSO模塊。
然後編譯php
tar zvxf php4.3.4.tar.gz
cd php4.3.2
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs=/usr/local/apache/bin/apxs
make
make install
然後修改httpd.conf,方法同靜態編譯的方法
OK,DSO動態編譯就完成了!
接下來我們講apache2.0.46+php4.3.2的動態編譯方法
一樣先編譯安裝apache
tar zvxf httpd-2.0.46.tar.gz
cd httpd-2.0.46
./configure --prefix=/usr/local/apache2 --enable-so --enable-mods-shared=most
make
make install
大家注意了--enable-so相當與1.3.27的--enable-mole=so,而--enable-mods-shared=most又等同與以前的--enable-shared=max
然後還是編譯PHP
tar zvxf php4.3.2.tar.gz
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache2/bin/apxs
make
make install
注意這里是apxs2!!
修改httpd.conf與1.3.27也有所不同,大家尋找Add Type application/x-tar .tgz 在下面添加
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
另外要顯示中文的話,請修改:
AddDefaultCharset gb2312
2. 易語言靜態編譯失敗了 求解~~ 咋回事
你先下載連接器,在易語言論壇置頂貼中有.安裝到一個目錄中.
然後打開易語言安裝目錄下的\tools\link.ini文件.找不到你就搜索一下.
然後改裡面的路徑,比如:linker="D:\Program Files\VC98linker\Bin\link.exe"
就可以靜態編譯了.
3. PHP大型門戶站是用靜態好,還是偽靜態好
你好。大型門戶
一般是生成純靜態html,如果使用偽靜態會佔用一定的CPU使用率,對於大型門戶,這並不合適。
純靜態的好處:
1、載入的時候不需要調用資料庫,打開速度快。
2、減少了伺服器對數據響應的負荷。
3、從安全形度講,純靜態網頁不易遭受黑客攻擊。
4、從網站穩定性來講,即使網站代碼或資料庫出了問題,靜態網站也不會受到影響。
偽靜態的好處:
1、維護方便,網頁每天都自動變化,不用維護或者說極大地減少了維護量。
2、可以方便的實現對搜索引擎的優化,易於被搜索引擎收錄。
3、縮短了url的長度,隱藏文件實際路徑提高了安全性,易於用戶記憶和輸入。
4、占空間比較小,不像純靜態那樣多佔用近過多的空間。
5、安全性能通過url地址隱藏或加密,讓黑客無法找到真實的動態頁面,同時動態文件不需要太高的許可權,從而避免了木馬的注入。
結論:
偽靜態最大的缺點就是會佔用一定量的CPU使用率,增加伺服器的響應時間。
1、既然真偽靜態和偽靜態對搜索引擎的效果一樣,我們就可以選擇偽靜態了,畢竟它的優點是純靜態不可取代的。
2、大量使用偽靜態會照成CPU超負荷,所以我們只要不大量使用就可以了,設計在線使用了相應的編譯緩存技術,己經很好的優化並解決這個問題了。
4. 靜態網站和動態網站的區別,以及動態網站是怎麼實現的
動態網頁的一般特點簡要歸納如下:
(1)動態網頁以資料庫技術為基礎,可以大大降低網站維護的工作量;
(2)採用動態網頁技術的網站可以實現更多的功能,如用戶注冊、用戶登錄、在線調查、用戶管理、訂單管理等等;
(3)動態網頁實際上並不是獨立存在於伺服器上的網頁文件,只有當用戶請求時伺服器才返回一個完整的網頁;
(4)動態網頁中的「?」對搜索引擎檢索存在一定的問題,搜索引擎一般不可能從一個網站的資料庫中訪問全部網頁,或者出於技術方面的考慮,搜索蜘蛛不去抓取網址中「?」後面的內容,因此採用動態網頁的網站在進行搜索引擎推廣時需要做一定的技術處理才能適應搜索引擎的要求
什麼是靜態網頁?靜態網頁有哪些特點?
在網站設計中,純粹HTML格式的網頁通常被稱為「靜態網頁」,早期的網站一般都是由靜態網頁製作的。
也就是以.htm、.html、.shtml、.xml等為後後綴的。在HTML格式的網頁上,也可以出現各種動態的效果,如.GIF格式的動畫、FLASH、滾動字母等,這些「動態效果」只是視覺上的,與下面將要介紹的動態網頁是不同的概念。
我們將靜態網頁的特點簡要歸納如下:
(1)靜態網頁每個網頁都有一個固定的URL,且網頁URL以.htm、.html、.shtml等常見形式為後綴,而不含有「?」;
(2)網頁內容一經發布到網站伺服器上,無論是否有用戶訪問,每個靜態網頁的內容都是保存在網站伺服器上的,也就是說,靜態網頁是實實在在保存在伺服器上的文件,每個網頁都是一個獨立的文件;
(3)靜態網頁的內容相對穩定,因此容易被搜索引擎檢索;
(4)靜態網頁沒有資料庫的支持,在網站製作和維護方面工作量較大,因此當網站信息量很大時完全依靠靜態網頁製作方式比較困難;
(5)靜態網頁的交互性交叉,在功能方面有較大的限制
提起動態主頁的製作,就不能不說到ASP動態網頁技術。細心的讀者會發現很多網站的文件是以*.asp結尾,那麼這個ASP到底是什麼,它與HTML有什麼關系,又是如何工作的呢?不妨一起來看一看。
一、細說ASP
ASP 是Active Server Pages的簡稱,是微軟開發的伺服器端腳本環境,它內含於IIS或PWS中,提供一個用於伺服器端腳本執行的環境,以此來實現動態交互的目的,這也是許多動態網頁技術的共同特徵。本章內容均圍繞 IIS來進行講解,PWS的內容與此大致相同。
ASP的興起似乎是「一夜之間」,到底它有什麼「魔力「呢?
1.無須編譯或鏈接即可執行,可集成於HTML代碼中,有了它,可省去許多繁瑣重復的勞動。
2.與瀏覽器無關:用戶端只要使用可執行HTML代碼的任何瀏覽器(例如IE、Netscape等),即可瀏覽由ASP所設計的主頁內容。所有代碼都是在伺服器端執行,只要寫好代碼,工作伺服器就能搞定一切。
3. 可通過ActiveX Server Components(ActiveX伺服器組件)來擴充功能,而 ActiveX Server Component可使用Visual Basic、Java、Visual C++、COBOL等語言來實現,有了它就可隨意擴展功能。更令人興奮的是,現在網上有很多第三方組件可以隨意下載,想要什麼盡可去Search、去Download,然後放在你的ASP代碼中調用就OK啦。
4.ASP與任何ActiveX Scripting語言兼容。除了可使用VBScript或JavaScript語言來設計之外,還可通過Plug-in的方式,使用由第三方提供的例如REXX、Perl、Tcl等腳本語言,學過動態主頁製作的人都知道它們的重要性。
5.ASP源程序代碼不會在瀏覽過程中被下載到用戶的瀏覽器中,也就是說它對你的代碼進行了保密。太棒了,花了九牛二虎之力做好的東東可不能讓別人輕輕點一下滑鼠就拿走了。
ASP作為一種動態網頁製作技術易學易用,很是讓人心動。接下來我們就來看看ASP是如何工作的,一般來說,ASP文件由3個部分組成:
1.普通的HTML文本(也就是基本網頁的內容)。
2.客戶端的腳本代碼(<script>與</script>之間的程序代碼)。
3.服務端執行的程序代碼(<%……%>之間的程序代碼)。
我們先來看一個簡單的例子:
hello.asp
<% @language=VBScript%>
<html>
<head>
<title>每天不同時刻的問候語</title>
</head>
<body>
<%
dim says
if hour(now)<12 then
says="早上好!"
else
if hour(now)<18 then
says="下午好!"
else
says="晚上好!"
end if
end if
%>
<h1><% =says %></h1><body>
</html>
結果怎麼樣呢?如果瀏覽者是早晨10點打開這個網頁,將會看見「早上好!」的問侯語(圖1),如果是下午14點進入,頁面中則會出現「下午好!」。上面 <%……%>之間的程序由伺服器來執行,而我們常用的腳本則是由客戶端來執行。這個簡單的例子包含了ASP的典型結構,並且強調了ASP的服務端執行,對於我們初學ASP有一定的參考意義。
ASP動態網頁與普通的靜態網頁在顯示上有很大不同,它整個的運行過程可分成以下幾步:
第1步:用戶在瀏覽器的網址欄中輸入.asp文件名稱,並回車觸發這個ASP的請求。
第2步:瀏覽器將這個Active Server Pages的請求發送給IIS。
第3步:IIS接收這個請求並根據其.asp的後綴,意識到這是個ASP請求。
第4步:IIS從硬碟或內存中接收正確的ASP文件。
第5步:IIS將這個文件發送到一個叫ASP.dll的特定文件中。
第6步:ASP文件將會從頭至尾被執行,並根據命令要求生成相應的靜態頁面,生成HTML主頁。
第7步:HTML主頁將被送回瀏覽器。
第8步:HTML主頁將會被用戶瀏覽器解釋執行並顯示在用戶瀏覽器上。
為了清晰地說明問題,以上步驟已經進行了很大簡化。事實上,一個ASP並不一定每次都會重新編譯解釋,如果第二次接受以前的請求,而該請求沒有任何變化,ASP會從數據緩存中提取出以前的結果,而不是再次運行ASP程序,這樣可以大大提高運算速度。
對於伺服器來說,ASP與HTML有著本質的區別,HTML是不經任何處理就被送回給瀏覽器,而ASP的每一條命令都首先被用來生成HTML文件,這也正是ASP允許生成動態內容的原因之一,也是動態網頁復雜之所在。
另一方面,對於瀏覽器來說,ASP和HTML幾乎沒有區別,僅僅是後綴為*.asp和*.htm(或*.html)的不同,當客戶端提出ASP請求後,瀏覽器接受的其實是HTML格式的文件。通過以上一個簡單的ASP例子,有兩點必須記住:有些代碼是在伺服器端執行,有些是在客戶端瀏覽器端執行,而在瀏覽器端看到的是經過伺服器解釋之後輸出的代碼。
二、ASP的基本語法
VBScript是ASP的預設語言,當然也可在 ASP網頁中使用其它腳本語言,如JavaScript、Perl等。這里所有的ASP都使用VBScript,我們將要介紹的也主要是VBScript 的語法知識。相信通過前些期JavaScipt專題的學習,你一定對VBScript駕輕就熟了,其實VBScript跟JavaScript很類似,它是從Visual Basic中簡化出來的版本,作為一種解釋語言,也非常容易學習和使用。
1.將VBScript的腳本集成到ASP中
方法主要有3種:最簡單且最常用的方法是使用兩個特殊字元「<%」和「%>」,只要在使用的VBScipt腳本語句前後加上它們即可,例如:<% Response.write"VBScipt腳本" %>。
第二種方法是在特定的主頁中指定主要的腳本語言,要將這種語言名稱直接放在ASP程序的第一行,例如:
<% @language=VBScript %>
<html>
<body>...
</body></html>
第三種是方法是利用微軟的HTML<Script>拓展對象,這樣就可以在一個單獨的主頁中混合使用多種Script腳本。例如下面的例子:
<% @language="VBScript" %>
<html>
<head><title>ASP Script示例</title></head>
<body>
<script language="JScript" RUNAT="server">
function sayhello()
{
response.write(「混合使用多種script腳本」)
}</script>
<% for I=1 to 10
sayhello()
next
%>
</body>
</html>
需要注意的是,使用<script>包含的腳本會立即執行,無論它放在ASP的任何位置。此外,上面提到的第二和第三種方法,可以在ASP中靈活使用其他的腳本語言,而不只是局限於VBScript。