PHP基楚入門
本章重點
■ 決定外包還是自建
■ 尋找適當的ISP
■ 避開常見的主機陷阱
■ 安裝PHPPHg中,我們會討論有關各種不同Web 虛擬主機選項的優缺點:外包,自建和不同的折衷方安案。接著再討論安裝PHP的詳細內容,最後則是關於尋找適當開發工具的一些建議。到本章結束時,你應該就能開始進行自己寫的第一份script了。
虛擬主機與DIY的比較
你需要確定的第一個重要決策是:誰將掌握及管理支援PHP的Web網站,是你本人,還是提供Web虛擬主機服務的廠商?另外,是否需要一個單獨的開發安裝;如果需要,誰會掌握它?如果你已經做好了決定,就可以跳過這份內容,直接翻閱本章關於安裝的部分。
選擇ISP
由於許多ISP公司開始提供支援PHP的Web服務,遠端虛擬主機(Remote Hosting)已逐漸成為主流的選擇。以下是一些必須記記的基本概念。
優點
外包的虛擬主機有不少優點。從理論上講,ISP有責任(理論上)要掌握許多關鍵的技術和管理細節,好讓這個站能維持正常的運轉,這些細節包括:
■ 硬件
■ 軟體升級
■ InterNIC註冊、IP尋址、DNS
■ 郵件伺服器(POP/IMAP與SMTP)
■ 寬頻
■ 電源供應
■ 備份
■ 安全
■ 備份
■ 安全
人員的手機半夜都得開機;了解這一點之後使用者能更安穩地入睡了。潛伏的怪客(cracker)、停電、備份磁帶出了問題,所有這些令人頭痛的事現在都交給了提供虛擬主機服務的公司。
在大多數情況下,Web虛擬主機其成本效益是比較好的。 Linux或某個BSD上的PHP費用非常低,而且很容易取得。目前隻的少數公司提供NT伺服器平台的PHP,當然有些價格還很不便宜。反正多看多比較,找找適合的ISP服務提供者。
缺點
當然,ISP虛擬主機也有一些嚴重的缺點。
還好這些缺點大多都是可以控制的。當使用ISP時,使用者本身基本上就是個[客人],必須遵循別人的規則。也許你是個付費且受歡迎的好客人,但在別人家怎麼說還是不如在自己家裡那麼方便和隨意。
最令人關切的議題是PHP模組和CGI的對比。 PHP做為模組執行的效果最佳也最快,換句話說,模組是內建在Web伺服器本身,而不是當作單獨的行程在執行。只要有可能,幾乎每個有都願意使用模組版本。然而,許多ISP公司更喜歡執行CGI版本,因為對它的安全管理是比較簡單。所幸市面上有越來越多的虛擬主機的服務提升了,使得你可以更簡易找到模組的方式。
目前,使用委外PHP虛擬主機的最大問題就是無法取得其它程序資源,顯然ISP非常鼓勵你在他們的伺服器上設計程序,但是有許多PHP的參數必須介於一些服務與通訊協定之間,無法在上面執行一些未經授權的執行格式或連結到你所在目錄的程式庫。
有一條不變的法則是:需求越常見,就越可能且越適合外包虛擬主機,如果需求越特殊,則越可能需要自己架設。當然,實際上還有一條不成文的規則:你的網站規模越大,需要花的錢就越多,交給別人管理的權衡比重就越大。
下面的幾個因素會使得在尋找虛擬主機服務上更加困難:
■ 一般來說有爭議性的內容(暴力、色情)。
■ 未經請求而主動遞送的郵件,又稱垃圾郵件。
■ 吸引怪客(cracker)的內容(安全資訊)。
■ 會造成問題的潛在非法內容。
■ 需要不常見的伺服器硬體、作業系統或軟體的需求。
■ 對超大寬頻(特別不是不可預測寬頻)的需求。
如果你正是以上這些情況之一,則需要事先告知。如果能找到不錯且符合的虛擬主機服務,別再猶豫了,趕快抓住機會用了再說,以後再慢慢尋找更好的處理方式。
最後,必須提及所有負面因素中最重要的一點:糟糕的虛擬主機服務會造成你很大的挫折和憂慮。無法形容當你的網頁正列於Slashdot但是卻無法顯示網頁的咬牙切齒、胃腸抽、驚聲尖叫的書面,使得你看似公諸於世但卻失去所有演出的機會。 🎜🎜更別提其它常見的問題,比如說像是莫名其妙遺失電子郵件、DNS不見了,網站不明斷線,資料庫資料遺失(這只在我們發生過),缺乏備份、或者等上一個小時的電子話就為了和他們的技術支援人員談一談,而這些人好像從未走近過伺服器,也從未對你的禮貌郵件做出回應,而你只有在付費時才會得到些許優待…(我們不是在謳諷,總是我們的律師說我們不能提太多)。
選擇虛擬主機服務的底線是:其實在選擇虛擬主機服務時,也就等於讓自己開始面對危險了。一定要隨時搬走的準備,這也意味著不要選那種沒有長期合約和(或)採取預付款方式的服務,就算他們有多便宜或是功能多齊全都一樣。相反地,在和他們打交道時不要急躁,如果以前從未外包過虛擬主機,要花些時間了解一下和評判Web虛擬主機服務公司(小心很爛又糟糕的技術支援)和根本的Internet流量問題之間的差別。
細節
如果決定要採用虛擬主機,你要知道在目前的市場上是很多種選擇的。然而,採購新手應該小心,因為[ISP]一詞幾乎可以包含一切,進而讓你什麼都搞不清楚。表3-1中的指南提供了專業化範圍和最適合的用途(其中提到的公司只是例子,並不表示對其服務的認可或推薦)。
表3-1 各種不同的ISP
雖然想要對找一個好的Web虛擬主機服務有時像尋找終身伴侶一樣困難,但下列的一些資源可使這個過程更容易一點:
http://hosts.php.net
http:/ /www.od-site.com/php
http://www.ispcheck.com
要對使用者及市場的評價多留意,不論是好的評價還是壞的評價都要注意。向你的朋友或同事詢問他們的使用經驗。到網路上找一找PHP使者社群或討論群組,大家偶爾會對自己的好與壞經驗做些建意與評論。
在簽約時可能引起爭議的問題就是網站流量。小心這種廣告說詞「無限流量/頻寬/點閱」,對於沒經過具公信力單位測試的頻寬級別,是不能確保它是否達到了要求。所以在簽約之前,需要自己連連看、試一試,並評估可能結果。
如果評估頻寬需要量?每月1GB的流量等於瀏覽100,000個平均10K的檔案(包括圖形、文字、廣告等等這些除了第三方提供服務支援之外的所有一切,它是從一個用戶角度來評估計算的、而不是從伺服器的角度)。
要留意你的網站計劃中所需的磁碟空間總量,尤其是對於大型的網站或圖形很多的站台。如果超出了限制,一般每月會為超額的空間支付額外而昂貴的費用。解決這個問題的方法之一是小心外理日記檔案(log file);定期將它刪除,或把它們下載到比較便宜的儲存設備上。
選擇自行建構主機的各項功則
隨著連線費用的下降,自建主機已逐漸成為許多網站的選擇。這給你最高控管和命令權力,如果配合經驗加以充分的運用,它還能提供真正的安全性優勢。自己的安裝意味著問題解決的速度更快,因為不必浪費時間與技術支援通熱線電話,而且也會覺比較有趣,無論何時有需要,都可以直接操控實際的伺服器。最後,如果你自己有什麼不尋常的、產生異議或比較不一樣的需求,無論自己願不願意,也得要自己為自己的網站服務。
另一方面,自建主需要做更多準備工作,並且旨用可能更高一點,尤其是對中小型規模的網站更是如此。而且,自建主機站的好壞是取決於你自己的技術能力有關。因此,如果你的團隊中沒有人對安全性有多一點的了解,則在安全性問題上就要小心了。不過你可以自己累積經驗並學起來,不像交給別人管,也許他們公司主管安全性的工程師離職而出了安全問題時,我們也只能看著辦而已。
更現實的問題是,如果出了問題,你也只能怪自己而已。如果在早上起床時,站在鏡子前對自己說:「全部靠我自己了!這種感覺真好!」那麼你就具有自行建構主機所需的自信。
折衷的解決方案
當然,外包和自建主機實際上是在這個議題的兩端。除這種之外,有幾種「折衷」的解決方案可提供這兩方面最佳的部分。
託管意味著包裝好自己的伺服器主機,並把它送到提供虛擬主機服務的公司,對方將把它掛接到他們的網路上,並且替你監視它。你負責購買、辦理許可證、上保險、安裝、配置以及維護所有的軟體和硬件,除了不間斷電源之外。虛擬主機服務供應根本不會擾亂你的設備,除偶爾的重新啟動之外,而這通常也得額外付費。如果需要額外的技術支援,必須自己到現場去,或付費來得到作業人員和幫助。如果你採取託管方式,很有可能使用了對方作業人員沒有操作經驗的產品。
專用服務器
專用服務器就如字面意思一樣:主機服務會購買一台服務器,把它調整成適合你的情況(當然要付費),然後把它接到他們的網路上,之後所有的處理相關則是都歸你使用。一般來說,你會得到技術支援,這比使用共用伺服器環境更安全,對於中大型態的網站來說,這樣相對來說成本效益更高。
外包製作、自己開發
這種選擇涉及到兩種完整的安裝:一個外包製作的網站和等同於在自家開發的服務器(一部或多部),按照這種想法來分割,能夠取得雙方面的最佳內容,既有人得半夜聽呼叫器(隨時聽命差遣),而自己又能夠直接管控自己的伺服器。如果你所在的地區只存在有限的連接選擇,那麼這是種還不錯的方案。對於需要有較多開發人員的大型網站,這也是最佳選擇之一。
安裝PHP
如果決定完全外包PHP主機服務,則可以跳過本章其餘部分不看。然而,我們仍然建議你先安裝你自己的軟體,即使只安裝在你自己的工作機器,因為你會有更多經驗與了解設計的環境。
開始之前的準備工作
◆ 在任何平台上安裝PHP之前,你需要的東西是:
◆ 一部有足夠的RAM讓你的作業系統使用的伺服器主機。
◆ 已安裝了UNIX、MAC OS X 或Windows作業系統。
◆ 如果這已是個正式站,需要有一個正在執行的Internet專線連接,若還在開發階段,可安裝在Intranet上,或者讓它單獨安裝(雖然沒有Internet連接,但還是需要有其它安裝軟體套件來配合)。
關於這些先決條件已超出了本書的範圍。可從下列網站尋找相關的詳細資訊:
World of windows Networking (http://www.wown.com)
Linux Document Project(http://www.linuxdoc …)
如果打算在Windows上安裝PHP,還要具備以下條件:
◆ 一部支援PHP的Web伺服器。在PHP3下,IIS/PWS是最容易的選擇,因為有可用於該形式下的PHP模組版本,但PHP4提供了Windows下更多更廣泛的模組選擇。
◆ 安裝了支援PHP的資料庫(如果打算使用資料庫的話)。
◆ 若是Windows 95,必須有DCOM更新,可從下列站台免費下載:http://download.microsoft.com/msdownload/dcom/95/X86/en/dcom95.exe
◆ PHP Windows二進位執行檔版(可從www.php.net/downloads.php下載)。
◆ 解壓縮程式(可到有名的下載網站找,例如http://download.cnet.com尋找PC檔案壓縮程式)。
如果打算在UNIX上安裝PHP,需要具備以下條件:
◆ PHP原始碼版本(http://www.php.net/downloads.php).
◆ 最新的Apache原始程式碼版本(從http://www.apache.org/dist/尋找副檔名為.tar.gz檔案的最高位基數編號即是最新版本)。
◆ 如果打算使用資料庫,則要有支援PHP的資料庫。
◆ PHP必須連接到的所有其它支援軟體(郵件伺服器、BCMath套件、JDK之類等等)。
◆ ANSI C語言編譯程序。
◆ GNU make(從PHP4開始,不能用其它make版本,這尤其對於非GPL援權的Unix如Solais與BSD更是重要的,可從www.gnu.org/software/make免費下載它)。
◆ Bison和flex(確定在/usr目錄下然後鍵入「find .-name bison -print」和「find .-name flex -print」,檢查是否已經有這些內容,或者讓gcc在make過程中進行檢查。
進行到這裡就算是完成了實際安裝PHP時所需的準備工作。
請記住,PHP要連接到的任何其它伺服器或軟體程式庫都必須在建立之前先將它們安裝好。資料庫是最常見的擴充服務器類型。其它範例還有BC math套件、IMAP伺服器、mcrypt程式庫和Expat XML剖析器(除非使用Apache,它已內含這些元件)。
現在你已經準備好正式安裝PHP了,建立Apache模組和建立CGI可執行檔之間的差異很小。實際上,其差異就只是在設定時使用—with-apache或—with-apax 旗標。許多使用者為了方便使用,同時編譯了模組版本和CGI版本。
在過去,有許多機構提供一起安裝Apache、PHP,甚至有時MySQL的程序(例如PHPTriad、Nusphere MySQL與Zend Launchpad),但不幸的,要在使用與論上這些程序似乎都有問題,Nusphere嚴重違反MySQL的使用援權,PHPTriad的維護者宣稱他將不再維護產品,Zend Launchpad更早已從網站上消失了。
安裝過程
由於PHP對於跨平如可操作性的承諾,有太多種具體的安裝方法可採用,這裡沒辦法全部列出,我們試圖在介紹時涵所有在看來都適用PHP的最受歡迎平台,但全寫出對於每種可能的作業系統和Web服務器的安裝指南會讓這一章內容過長。
再者,雖然安裝PHP於Unix已經穩定了許多年,但是由於PHP 4.0的發行使得安裝在Windows實在有一點更異,部分原因為PHP團隊、部分原因是因為Windows產品的上市,例如Windows XP與IIS可能的更新,PHP現在了可以在Macintosh OS X上執行,而在上面安裝的過程在本書饌寫時仍然十分不穩定。
根據這樣的快速改變,我們只能夠提醒你應該參見PHP網站(http://www.php.net/docs.php)
上每種下載的最清楚安裝資訊,即使你過去曾經反覆安裝過許多次,有可能在你安裝多次後會出現一些新的變化。
UNIX與Apache
第一次以原始碼建立自己的HTTP daemon時,可能會有一點擔心。不過這個過程相當直觀,而且自己編譯Web服務器而不依靠其它人的RPM,是十分什得學習的經驗,別人的RPM可能是幾週或幾個月之前的版本,要想用新的就等別人準備好。當一切都是自己動手搞定,而且都能運轉起來,你一定會覺得自己是個天才!
對於那些已經使用先前版本的PHP完成這個過程的人來說,整個過程是完全相同的,只是所需的時間可能比先前的更要長一些。
Reb Hat或Mandrake Linux安裝版可能附有Apache和PHP的RPM版本。在編譯自己的新PHP之前必須先把這些軟體套件移除掉。另外,可以有其它服務器廠商的 RPM版本,諸如MySQL或PostgreSQL等,這與原始碼對應版本的安裝是不同的。如果遇到了問題,請參閱安裝來源的說明檔。
在下面的說明中,原始碼片段都是在shell提示符號下輸入的。
如果你安裝時使用個人目錄時,請記得先用root來登入系統。
要開始進行,請根據下列步驟:
1.如果以前沒有這樣做過,那麼就先對Apache原始版本進行unzip和untar的解壓縮處理。除非有理由不這樣做,否則請把它解到/usr/local這樣標準位置。
Gunzip –c apache_1.3.x.tar.gz
Tar –xvf apache_1.3.x.tar.gz
2.初始調整Apacche伺服器時,如果你安裝於/usr/local之外的位置,現在你必須使用以下的- -prefix選項,如果你安裝在/usr/local,不需緊張底下Apacche目錄是產存在的,他只在build過程中使用。
Cd apache_1.3.x
./configure - -prefix=/usr/local/apache
3.對PHP原始碼版本進行unzip和untar解壓縮。除非有理由不這樣做,否則請把它們解到/usr/local這個標準位置。如果Apache和PHP在不同一個目錄下,必須將下方的「..」位置替換成軟體套件的完整路徑。
cd..
gunzip –c php-4.x.tar.gz
tar –xvf php -4.x.tar
cd php -4.x
4.設定你自己的編譯連結(設定你自己的編譯連結(設定你自己的編譯連結(設定你自己的編譯連結(設定你自己的編譯連結(設定你自己的編譯連結(設定你自己PHP算是一個非常大的主題,也非常駐重要,請參考本書第三十一章有詳細的資訊)。最常見的選擇是建立成一個 Apache模組,而且可支援特定資料庫。 Java 與XML的支援也逐漸流行起來,以下的示範就是Apache模組附帶MySQL和XML支援,但讀者所使用的旗標可以完全不同。
./configure - -with-apache=../apache_1.3x - -with –mysql- -with-xml—enable-track-vars
5.進行make並安裝PHP模組。
Make
Make install
6.進行Apache daemon 的設定與make。不用緊張libphp4.a不存在這個位置,Apache會為你產生。
cd…/apache_1.3x
./configure-activae-module=src/modules/php4/libphp4.a
Make
7.如果你已經有httpd的行檔,你現在應該關閉並忘記他,在現在Apache版碼),並會內含你應使用的二進位與組態檔。
Make install
8.設定php.ini檔案。要編輯這個檔案,可參考本書第三十一章所列的選項,我們極力建議新使用者把錯誤報告設定為E_ALL(15)。
cd../..php-4.x
cp php.ini-dist/usr/local/lib/php.ini
9.告訴Web伺服器要用什副檔名來辨識PHP檔案( .PHP是標準副檔名,但也可以使用.html.phtml或任何想用的副檔名)。請找到HTTP設定檔在/usr/local/apache/cont或你自己設定的其它路徑下)並用文字編輯器打開httpd:conf搜尋DocumentRoot字樣(應該出現兩次)並將兩者的路徑改為你想要放置檔案的目錄(以我們為例,/home/httpd),我們建議家目錄而不要使用預設的/usr/local/apache/htdocs,因為這樣比較不安全。至少新增…解析為PHP:(這會需要一些執行效率付出,尤其如果你只想使用. html 為副檔名的HTML檔案的話)而確定Apache知道網域別名或是讀取的IP位址也是現在適當做的事。 (如果你不知道這是什麼意思,搜對httpd.conf檔案內的ServerName,並在其後加上localhost,在你較清楚後才使用你的網域名稱)
AddType application/x-ttpd- php.php
AddType application/x-httpd-php.html
10.重新啟動服務器。每次更改HTTP設定或php.ini檔案時,必須停止並再次啟動伺服器才能產生作用。只用HUP訊號是不夠的。
cd../bin
./apachectl start
11.將檔案根(root)目錄的權限設定成可執行的。 PHP檔案權限性只需設為可讀(644)。如果需要,把/home/httpd取代成為下面的檔案根目錄:
Chmod 755/home/httpd/html/php
12.打一開文字編輯器。鍵入“”。把它儲存在Web伺服器的檔案根目錄(document root),取名為info.php 。啟動任何一個網頁瀏覽器來瀏覽這個檔案,必須使用URL(http://www.testdomain.com/info.php),或使用HTTP 路徑http://localhost/info.php或http://127.0. 0.1/info.php,而不能直接用檔案路徑(/home/httpd/info.php),這樣應該會看到一個關於PHP4安裝的長條資訊表格。恭喜你安裝成功!
許多Apache伺服器產品不使用php.ini檔案,因為它可能不期待在兩個不同的地方需要不同的組態檔案,你可以將許多組態指令由php.ini移到Apache的httpd. conf檔案,最起碼你應該需要設定include路徑與錯誤回報水準,因為這些檔案的預設設定是不令人滿意的,請參考本書第三十七章。
Mac OS X與Apache
最近Open source世界最令人興奮的就是Macintosh平台的部分開放,大多數用戶認為OS X是位於實行完整BSD系統上最高級的GUI界面,有可能這樣的組合可以使Unix機器能用在每台家用電腦。
在使用的方式上,Mac使用者可以選擇以執行格式或是以原始碼方式來安裝,事實上,你的OS X機器可能已安裝了Apache 與PHP,這有可能是早期的版本,仍然缺乏一些少數的常用支持,然而,如果你需要的是Apache+PHP+MySQL/PostgresSQL安裝在你的計算機上的話,這是最簡單的方式,你所需要做的就是編輯你的Apache組態並且開啟你的Web伺服器,所以只要按照以下步驟(再次說明,以下的指令就是你在每個步驟所需輸入的指令):
1. 用適當文書編輯器以root開啟Apache組態?
Sudo open – a TextEdit/etc/httpd/httpd.conf
2. 編輯該檔案,將以下各行的註解移除:
Load Module php4_module
AddModule mod_php4.c
AddType application/x-httpd-php-php
.你也可能想要移除部分的註解,否則告訴Apache哪一個目錄要提供服務。
4. 重新開啟你的Web伺服器。
Sudo apachectl graceful
5. 現在開啟一個文書編輯器,並輸入,將檔案儲存為info.php於你的網站資料夾內,開啟任何Web瀏覽器並瀏覽檔案,你必須永遠使用HTTP request方式來將檔案解析正確(http://www.testdomain.com/-username/info.php或是http: //localhost/-username/info.php或是http://127.0.0.1/-username/info. php )而不能只用檔案名稱(/home/username/info.hph),你應該會看到一些長長的表格記錄你新的PHP安裝次訊,恭喜。
如果你覺得你沒有PHP模組使用,或是你要將你的模組升級到新的版本,你可以在Internet許多地方下載,例如瑞士的Marc Liyanage,這是我們底下所使用的網站,如果你有偏好的發行文件,將指令內的網址做取代:
crl –o http://www2.entropy.ch/download/libphp4.so.gz
gnzip libphp4.so.gz
sdo apxs –i –a –n libphp4.so
sdo apachectl graceful
在OS X上編寫原始檔案可能需要一點技巧,檔案結構與一些相關工具並不相同,而Apple自己的內含執行格式並非標準,所以目前對缺少Unix經驗的新PHP使用者而言,由原始碼編者按譯的方式較不被建議,如果你仍想要試一方試,在Stepwise.com有一篇好的文章:
http://www.stepwise. com/Articles/Workbench/2001-10-11.01.html
以後在OS X上安裝方式可能是被迫會隨時更動的,永遠在安裝一個新的版PHP之一前到OS X系統安裝網頁查閱一下:
http://www.php.net/manual/en/install.macosx.php
Windows NT/2000/XP和IIS
在Windows上使用IIS4或5的伺服器上安裝PHP4比在Unix上較方便許多,因為它擁有經過編譯的二進制元格式而不需要重新編譯。
現在使用Windows有兩種二進位格式的選擇:自動安裝的Installshield與壓縮?方式,這種方式是比較簡易的,但是擁有許多缺點,它只能夠在IIS4或多或5與Xitami等Web伺服器上使用,而且它只提供CGI執行版本而無法使用模組方式,它缺少extensions的自動設定過程,它是明顯較不安全的,所以任何嚴謹的PHP安裝在Windows上應選擇手動安裝方式。
請依照下列步驟進行安裝:
1. 使用自己的解壓縮工具,把二進位壓縮檔解壓縮,把所有檔案放在C:PHP檔案夾。
2.從你的PHP目錄複製一些。 Dll檔案到你的系統資料夾(通常是C:Winnt/System32),你必須複製php4ts.dll,你也可能需要複製你的Web伺服器模組所需檔案— C:PHPSapiphp4isapi.dll,也有可能需要其它來自dlls子資料夾的檔案,但是先將上述前兩部分的檔案複製之後再加入你所額外需要的。
3.複製php.ini-dist或是php.ini-optimized(後者較建議)到你的Windows目錄(C:Winnt或C:Winnt40 ),並重新命名為php.ini。使用文字編輯器開啟該檔案(例如使用記事本),編輯檔案來使用組態指令,你可以參考第37章所列的選項。我們強列建議新使用者在此時工作的機器上將錯誤回報設為E_ALL(15),目前最重要的步驟就是在Paths與Directories部分的doc_root指令,將此指令向你的IIS Inetpub資料夾(或是其它你想要提供服務之處)。
4. 將WWW服務關閉重新開啟,由開始功能表、設定、控制台、服務,並不拉倦軸到IIS Admin Service,選取它並點選關閉,等待關閉之後(狀態訊息會告訴你),選擇World Wide Web Publishing Service並點選開啟,但使用Internet服務管理員來關閉並重新開啟是沒有用的(藉由right-click圖示),由於這在Windows 上使用PHP,所以你可能需要重新開機。
5. 開啟一個文書編輯器(例如記事本),輸入,並在你的Web伺服器文件根目錄內儲存檔info.php, 開啟網頁瀏覽器並瀏覽檔案,你必須永遠使用HTTP request方式(http://www .testdomain.com/info.php或是http://localhost/info.php或是http://127.0.0.1/info.php)而不能使用檔案名稱(C:inetpubwwwrootinfo.php)才能正確執行檔案,你會看到一列長長表記錄著你的PHP4安裝資訊,恭喜。
一些Windows使用者報告說他們必須把php.ini 檔案和php.exe可執行檔案放在同一個目錄中才能使用CGI版本的PHP。就安全性…會更好,現在PHP提供對於Windows Web伺服器更好的模組方式,如果可以的話使用這種方式。
Windows 95/98/Me與PWS
在本書編輯改版之時,Microsoft宣布將不再免費發行Personal Web Server(PWS)產品,這是桌上使用的簡易Internet Information Server版本。
根據考慮,這應該是正向的網路發展,PWS過去被安裝用來當作Windows/95/98/Me機器上以最低費用與風險(或是被認為)使用PHP的方式,但是這些作業系統並非用來當作伺服器平以,它信也無法長久穩固的運作,所以如果要安裝Web伺服器與其它廠商的scripting引擎,過去必須經過相當大量的手動調整登入資料庫(Registry),但這些卻導致許多系統的嚴重破壞,也不能相當容易的乾淨移除。
過去可能必須要等Microsoft新的Web伺服器平台已相當穩定才能在桌上型機器使用,而現在我們建議Windows使用者稱為Apache HTTP server友善而價廉的工作平台,你在Apache所撰寫的PHP程式事實上了可以在IIS上執行(或是.NET Web Server等其它最終名稱)。
雖然在Windows下可以使用有空格的資料夾名稱,但我們還是建議對啟用PHP的目錄不要這樣做,因為這會造成安裝程式出問題。
Windows 95/98/We與Apache
PHP 4.0推出了等待已久的Windows Apache模組,在此之前Apache的Windows用戶只能使用PHP的CGI版本,這是比較慢而且不安全的。而PHP 4.1更在這個模組的使用上顯著提升了效能與穩定度,Apache開啟者也在Windows HTTP伺服器上下工夫明顯提升效能,根據這些理由,實在沒有比嘗試Apache更好的時機了,即使在Win95/98/Mc機器上仍是如此。
要在Windows95/98/Me上安裝PHP:
1.由http://www.apache.org/dist/httpd/binaries/win32下載Apache伺服器,尋找現行穩定並有附no_src.msi副檔名的發行版本(如果有的話也可以試試。Exe版本,但是它無法在所有系統都能運作且較不容易安裝),Double- click此安裝檔案開始安裝,C://Program Flies是常見安裝的位置,安裝工具也會詢問你是否要將Apache以一個服務來執行(需要較多步驟,但是你可以在系統槽找到它),或以命令列模式、 DOS提示字元等等說法方式來使用,我們建議不要以服務的方式來安裝, 因為這樣會在某些電腦的開機與關機時候造成問題。
2. 使用你的壓縮軟體將PHP解壓縮到資料夾內,C://PHP是常用的位置。
3.從你的PHP資料夾複製一些.dll檔案到你的系統目錄(通常是C://Windows),你必須複製php4ts.dll,你也有可能需要複製你的Web伺服器模組所需檔案—C: //PHP/Sapi/php4apache.dll到你的Apche模組資料夾內,也有可能需要其它來自dlls子資歷料夾的檔案,但是先將上述前兩部分的檔案複製之後再加入你所額外需要的。
4.複製php.ini-dist或php.ini-optimized(後者較建議)到你的Windows目錄(C://Winnt或C: //Winnt40),並重新命名為php.ini。使用文字編輯器開啟該檔案(例如使用記事本),編輯檔案來使用組態指令,你可以參考第37章所列的選項。我們強列建議新使用者在此時工作的機器上將錯誤回報設為E_ALL(15)。
5.告訴你的Apache伺服器你要在哪裡提供服務以及你要使用哪一種副檔名來辨識PHP檔案(.php是標準的副檔名,但是你也可以使用.html′. phpml,或任何你想要的副檔名),開啟你的HTTP設定位置(C:Program FilesApache GroupApachecont或是它你使用的位置),並使用文字編輯器開啟httpd.conf,搜尋DocumentRoot(應該會出現兩次)並更改為你想要對外提供服務的資料夾的位置(預設為C://Program FilesApache GroupApachehtdocs), 並根據以下語法來加入至少一個PHP副檔名:
LoadModule php4_module modules/php4apache.dll
AddType application /x-httpd-php.php.phpml
6.你也可能需要加入下列語法:
AddModule mod_php4.c
7.現在你也要確定Apache知道domain alias 或是所聽取的IP address(如果你不知道目前的dmain ,搜尋httpd.conf檔案內的ServerName,並在其後加入localhost,並在你找到一個domain後再使用你的domain名稱)。
8.關閉並重新開啟WWW服務。你可以經由開始功能表、組件、 Apache HTTP Server、Control Apache HTTP Server、Stop/Start,或是由MS-DOS提示定元執行Apache。
9.開啟文書編輯器(如記事本),並輸入,並在你的Web伺服器文件根目錄內儲存檔案為info.php,開啟網頁瀏覽器並瀏覽檔案,你必須永遠使用HTTP request方式(http:// www.testdomain.com/info.php或是http://localhost/info.php 或是http://127.0.0.1/info.php)而不能使用檔案名稱(C:inetpubwwwrootinfo.php)才能正確執行該檔案,你會看一列長長表格記錄著你的PHP4安裝資訊,恭喜。
如果你根據這些指令但是無法得到你想見的結果時不在驚慌,你可以翻閱本書第15章來參考常見問題,如果還是無法幫助你的話,請參閱PH線上文件的相關網頁所附隨的註解,有許多使用者會將他們在特殊安裝問題下使用特定技巧記錄在此。
其它Web伺服器
PHP4可執行城其它許多Web伺服器,儲如Netscape Entetprise Server,Xitami,Zens和thttpd.針對AOLServer,NSPAI與fhttpd的模組已經可取得了,你可以在PHP線上手冊內安裝部分參考相關網頁。
開發工具
當你需要使用開發工具時,不幸的PHP只適合原先設計其它程序語言的原始設計者以及那些已經相當熟練於HTML語法的人,你有可能在使用其它服務或檔案系統時需要撰寫到多達2000行複雜的程序,並且只輸出字串1給前端的瀏覽器。另一方面,有許多人使用PHP的主要功能就是在一靜態HTML網頁內加入共同用到的頁首與頁尾,對於這些使用多樣的情形上,可能良好的PHP開發環境對於設計者還算是家常便飯並且覺得夠友善,但是輕巧而功能強大原工具卻是難以找到的。
由靜態網頁設計者進入PHP開發的人可能必須經過一些工作的調整,不可能會存在一個開發工具使得你只要使用精靈並且拖拉圖示現內建圖形處理就可以完成你的工作,如果上述的開發方式是對你很重要的,你可以使用WYSIWYG軟體來做網頁排版並稍後藉由文書編輯器加入PHP的功能,當然這樣方式的缺點就上機器為你產生的程序碼是不容易閱讀的,而且某些更是十分冗長。
特別注意當你要使用Microsoft FrontPage來當作你的PHP編輯器時,因為有似乎有許多使用者發生問題。至少你需要啟動ASP格式的標籤(使用php.ini檔案內的選項,或是一對致使用JavaScript較為痛苦的標籤。
老練的程式設計師可能較不需客外學習,並且可以將PHP當作任何其它伺服端程式語言來主生HTML給瀏覽器以及使用其它用途上,大多數這些程式設計師更喜歡簡單的文字編輯器,通常這樣的軟體會提供你一些有用的工具,例如語法顏色強調,括號成對比對,或是tag自動結束,大多數這些功能只是用來幫助你的無心之過,但是卻不會真正幫你寫程式。現在使用PHP最令人興奮的工具已經出現了,它叫做Zend Studio,在本書撰寫時正值發行第二版,這個產品結合了一個強大的調試工具(雖然仍然不是一個WYSIWYG工具)編輯環境,這個聰明的主品可以幫助你明顯的節省用於檢查正確PHP函數語法重複時間,使得你可以迅速消除錯誤,由於開發時間就是金錢,所以這個產品的些微費用將可以使你更俱生產力,你可以真正發現這個IDE的符號知道PHP的語法,Zend Studio是第一個不只是重新設計來達到一些用途的開發工具,圖3-1是Zend Studio的使用介面圖示。
如同你在圖3-1所示:
Zend Studio允許你可以執行PHP程式並在視窗內預覽HTML的輸出,你可以不需要藉由使用瀏覽器來檢視原先檢視原始碼,而此方法並非標準結果亦非豪華的顯示書面,而調試工具可提供工具可提供你強大的輔助,你可以逐行檢查程序碼或是跳入或跳出函數檢查,設定中斷點,堆疊追蹤處理,追蹤所有該檔案的全局與私有變數或是檢查一個特定數的內容,在這樣簡易使用的GUI接口,你會被提醒使用到未經宣告變數的潛在危險,語法顏色強調與程序內縮編排可以被容易自由的調整,新使用者可以避免使用emacs或vi的控制不便,而且程式自動完成可以節省你反覆反覆的查閱PHP線上說明(例如到底是strreplace還是str_replace,而且參數順序內容又為何等等),你也可以在使用你的HTML時使用到程式自動完成功能,尤其當你必須熟記每一個標籤允許的屬性時,你甚至可以註冊自己定義的函數或是自動完成清單,使得它更容易使用而不需反覆參閱該函數定義,如果你習怪傳遞一連串參數給函數時這是非常方便的功能。當你使用越大,越複雜,越需大量函式使用的程式庫時,你會發現這個IDE可以幫助你越多。
記住你的開發端不下定要與服務的伺服器使用相同的作業系統,這是跨平台開發的最大價值,尤其如如果你使用Unix伺服器時(甚至為The Blues Brothers),我們都擁有兩種文書編輯器:emacs與vi,甚至Macintosh與Windows擁有更多友善使用介面的文書工具。另一方面, Unix使你容易支援多台機器的客戶端作業系統。許多開發廠商在這些工具設計有最佳優點的某些特性,emacs,vi與Zend Studio都是可以在許多主要平台上運作的編輯器,所以如果你的開發團隊使用上述標準工具的話,人們都可以在許多作業系統偏好下使用這些工具。
表3-2顯示一些大多數程式設計師所使用來自各大作業系統的編輯器。
如果你要在許多作業系統之間開發時,記得斷行與一些字符在W indows與Unix之宰是不相容的,Unix格式的斷行會再記事本上顯示一個黑色的色愧符號,而Windows斷行格式在Unix系統的編輯器看似∧M字符,你的PHP程序可能仍然動作正常,但是你可能會在使用相異平台所編輯的檔案時感到瘋狂,根據許多原因所產生的好主意,解決這類斷行問題的最佳方式就職使用一個舉如CVS之類的版本控制系統。
除了這些著名的選擇外,Keith Edmunds維護一個有關適合PHP的文字編輯器詳細列表,其中許多為免費或只需要一點費用。
http://phpeditors.dancinghippo.com/
做一個深呼吸吧,經過所有的安裝與設定,現在你應該可以動手撰寫你的第一個PHP程式了。
表3-2 不同平台較為普遍的PHP編輯器
摘要
在能使用PHP之前,我們需要先決定是由自己建構主機,摘要
在能使用PHP之前,我們需要先決定是由自己建構主機,摘要
在能使用PHP之前,我們需要先決定是由自己建構主機,摘要
以上就是PHP學習寶典-第三章的內容,更多相關內容請關注PHP中文網(www.php.cn)!