php編譯器v字母開頭哪個叫啥
『壹』 請問大家C/C++、JAVA、php、pascal、python、perl等程序語言的常用編譯器是什麼謝謝大家了
pascal
1、關於Turbo Pascal
Pascal是一種計算機通用的高級程序設計語言。它由瑞士Niklaus Wirth教授於六十年代末設計並創立。
以法國數學家命名的Pascal語言現已成為使用最廣泛的基於DOS的語言之一,其主要特點有:嚴格的結構化形式;豐富完備的數據類型;運行效率高;查錯能力強。
正因為上述特點,Pascal語言可以被方便地用於描述各種演算法與數據結構。尤其是對於程序設計的初學者,Pascal語言有益於培養良好的程序設計風格和習慣。IOI(國際奧林匹克信息學競賽)把Pascal語言作為三種程序設計語言之一, NOI(全國奧林匹克信息學競賽)把Pascal語言定為唯一提倡的程序設計語言,在大學中Pascal語言也常常被用作學習數據結構與演算法的教學語言。
在Pascal問世以來的三十餘年間,先後產生了適合於不同機型的各種各樣版本。其中影響最大的莫過於Turbo Pascal系列軟體。它是由美國Borland公司設計、研製的一種適用於微機的Pascal編譯系統。該編譯系統由1983年推出1.0版本發展到1992年推出的7.0版本,其版本不斷更新,而功能更趨完善。
下面列出Turbo Pascal編年史
出版年代 版本名稱 主要特色
1983 Turbo Pascal 1.0
Turbo Pascal 2.0
Turbo-87 Pascal 提高實數運算速度並擴大值域
1985 Turbo Pascal 3.0 增加圖形功能
Turbo BCD Pascal 特別適合應用於商業
1987 Turbo Pascal 4.0 提供集成開發環境(IDE),引入單元概念
1988 Turbo Pascal 5.0 增加調試功能
1989 Turbo Pascal 5.5 支持面向對象的程序設計(OPP)
1990 Turbo Pascal 6.0 提供面向對象的應用框架和庫(Turbo Vision)
1992 Turbo Pascal 7.0 面向對象的應用系統、更完善的IDE
Turbo Vision 2.0
1993 Borland Pascal 7.0 開發 Object Windows庫、
__(For Windows) 提供對OLE多媒體應用開發的支持
1995 Delphi
Visual Pascal
Turbo Pascal語言是編譯型程序語言,它提供了一個集成環境的工作系統,集編輯、編譯、運行、調試等多功能於一體
ps:高級語言發展過程中,PASCAL是一個重要的里程碑。PASCAL語言是第一個系統地體現了E.W.Dijkstra和C.A.R.Hoare定義的結構化程序設計概念的語言。1971年,瑞士聯邦技術學院尼克勞斯·沃爾斯(N.Wirth)教授發明了另一種簡單明晰的電腦語言,這就是以電腦先驅帕斯卡的名字命名的PASCAL語言。PASCAL語言語法嚴謹,層次分明,程序易寫,具有很強的可讀性,是第一個結構化的編程語言。它一出世就受到廣泛歡迎,迅速地從歐洲傳到美國。沃爾斯一生還寫作了大量有關程序設計、演算法和數據結構的著作,因此,他獲得了1984年度「圖靈獎」。
Pascal有5個主要的版本,分別是Unextended Pascal、Extended Pascal、Object-Oriented Extensions to Pascal、Borland Pascal和Delphi Object Pascal。其中,Unextended Pascal、Extended Pascal和Object-Oriented Extensions to Pascal是由Pascal標准委員會所創立和維護的,Unextended Pascal類似於瑞士Niklaus Wirth教授和K.Jensen於1974年聯名發表的Pascal用戶手冊和報告,而Extended Pascal則是在其基礎上進行了擴展,加入了許多新的特性,它們都屬於正式的Pascal標准;Object-Oriented Extensions to Pascal是由Pascal標准委員會發表的一份技術報告,在Extended Pascal的基礎上增加了一些用以支持面向對象程序設計的特性,但它屬於非正式的標准。Borland Pascal和Delphi Object Pascal是由Borland公司專門為其開發的編譯工具設計的Pascal語言,前者是用於DOS的Turbo Pascal系列和Windows 3.x的Turbo Pascal for Windows的傳統高級語言,後者是用於Windows的Delphi和linux的Kylix的面向對象程序設計語言,它們都不是正式的Pascal標准,具有專利性。但由於Turbo Pascal系列和Delphi功能強大並且廣為流行,Borland Pascal和Delphi Object Pascal已自成為一種標准,為許多人所熟悉。
看到這里,你可能會發覺我的回答與你最初的設想不同。你原來可能是想問Turbo Pascal有幾個版本,然而我卻回答了Pascal語言有幾個版本。這就是初學者常有的一個錯誤認識:Pascal是一種編程工具。實際上,Pascal是一種程序設計語言的名稱(從一般意義上說,Pascal也可以是指人名,它的取名原本就是為了紀念十七世紀法國著名哲學家和數學家Blaise Pascal),而不是編程工具。剛才我是純粹從字面意思上來回答這個問題。
在中國的信息學奧林匹克競賽中,過去比較常用的Pascal編程工具是Turbo Pascal。Turbo Pascal是DOS下的一種16位編程工具,在Delphi出現之前,它是世界上最多人使用的Pascal編程工具,擁有編譯速度極快的先進編譯器和功能強大而又簡便易用的集成開發環境(IDE),在微機程序員中廣為流行,正是它的出現奠定了Pascal在DOS/Windows平台上不可動搖的根基,現在常見的版本有Turbo Pascal 5.5、Turbo Pascal 6.0和Borland Turbo Pascal with Objects 7.0。Turbo Pascal 6.0與Turbo Pascal 5.5相比,主要是IDE更為強大,而其程序設計功能改變不大,只是增加了一些新的功能,例如可以內嵌asm匯編語句等。而Borland Turbo Pascal with Objects 7.0(簡稱Borland Pascal 7.0)則有了新的飛躍,首先是IDE進一步加強,提供了程序瀏覽器,然後是程序設計功能有了很大的提升,新增了一些十分有用的標准子程序,支持比較完善的面向對象程序設計功能,並提供了DOS實模式、DOS保護模式和Windows模式三種程序編譯模式,能夠編寫出可以使用擴充內存(XMS)的保護模式應用程序或者在Windows 3.x下運行的Windows程序,另外還提供了一個對象窗口庫(OWL),使用它可以快速的開發出具有一致的視窗界面(DOS或Windows 3.x)的應用程序。Borland Pascal 7.0在1992年推出,是Turbo Pascal系列在DOS下的最後版本。
現在,隨著Turbo Pascal逐漸被淘汰,全國信息學奧林匹克競賽決賽(NOI)和國際信息學奧林匹克競賽(IOI)已經指定Free Pascal為比賽使用的Pascal編程工具。Free Pascal是由一個國際組織開發的32位Pascal編程工具,屬於共享軟體,可用於各種操作系統。根據編譯選項的不同,它可以使用Borland Pascal兼容語法、Delphi 2 Object Pascal語法或者其它語法進行編寫程序。由於它擁有32位的編譯器,而且一直在更新發展中,因此它的功能比Borland Pascal更加強大,擁有許多現代程序設計的特徵,但同時也很不成熟,存在很多漏洞。Free Pascal正處於發展初期,相應的函數庫十分少,對程序員的吸引力遠比不上擁有VCL和CLX的Delphi和Kylix。
2、帕斯卡(Pascal,Blaise,1623年6月19日-1662年8月19日)是法國數學家、物理學家、思想家。生於克萊蒙費朗,早逝於巴黎。父親是數學家、「梅森學會」成員,對他的早期教育影響很大。他自幼聰穎,求知慾極犟,12歲始學幾何,即通讀歐幾里得(Euclid)的《幾何原本》(Elements)並掌握了它。16歲時發現著名的帕斯卡六邊形定理:內接於一個二次曲線的六邊形的三雙對邊的交點共線。據說他後來由此推出400多條推論。17歲時寫成《圓錐曲線論》(1640),是研究德札爾格(Girard Desargues)射影幾何工作心得的論文,包括上述定理。這些工作是自希臘阿波羅尼奧斯(Apollonius of Perga)以來圓錐曲線論的最大進步。1642年他設計並製作了一台能自動進位的加減法計算裝置,被稱為是世界上第一台數字計算器,為以後的計算機設計提供了基本原理。1654年他開始研究幾個方面的數學問題,在無窮小分析上深入探討了不可分原理,得出求不同曲線所圍面積和重心的一般方法,並以積分學的原理解決了擺線問題,於1658年完成《論擺線》。他的論文手稿對萊布尼茨(Gottfried Leibniz)建立微積分學有很大啟發。在研究二項式系數性質時,寫成《算術三角形》向巴黎科學院提交,後收入他的全集,並於1665年發表。其中給出的二項式系數展開後人稱為「帕斯卡三角形」,實際它已在約1100年由中國的賈憲所知。在與費馬(Pierre Fermat)的通信中討論賭金分配問題,對早期概率論的發展頗有影響。他還製作了水銀氣壓計(1646),寫了液體平衡、空氣的重量和密度等方向的論文(1651-1654)。自1655年隱居修道院,寫下《思想錄》(1658)等經典著作。
基本符號以及保留字:
pascal語言只能使用一下幾類基本符號:
(1)大小寫英文字母
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
(2)數字
1 2 3 4 5 6 7 8 9 0
(3)其他符號
+ - * / = <> <= >= < > ( ) [ ] { } := , . ; : .. '
注意,pascal語言除了可以使用以上規定的字元外,不得使用其他任何符號。
補充說明FreePascal(FP):
Free Pascal是一個在多種版本Pascal和Delphi下的產物,目前比較成熟的版本是由FreePascal.org發布的1.0.10版本,由於是Pascal上的改版,在FP里加入了很多以前沒有的東西,例如:FillChar系列內存塊賦值語句,用Power代替了**(乘方),但是**還是可以使用。
另外FP加強了與內存的互容性,增大對內存的支持,FP里的內存限制是TP和BP里的將近上萬倍。
FP還進一步加強了單元支持、面向對象程序設計的支持、顯卡(音效卡)的支持、圖形高級覆蓋的支持、Windows\Linux\OS/2\..等眾多系統的支持。在FP的較穩定版本中,可以方便的利用Win32編譯模式,編譯出Windows應用程序,與Delphi的功能相當。同時對動態連接庫、控制項、資料庫、文件、網路、OpenGL的深入支持,使得FP脫穎而出。
更值得提出的是,FP支持Delphi及C++的部分語言,例如:A+=2這樣的C Style語言,在FP里完美支持。
FP中支持單目、雙目操作符,即所有版本的Pascal的符號和「@」等特殊符號。
FreePascal.org現在正在修訂FP 2.0的版本,但使用起來並沒有1.0.10那樣輕松,穩定性也下降不少
『貳』 求一點PHP對TXT文件和文章的操作教程
PHP教程.安裝PHP
安裝PHP
本章將按下列步驟編譯安裝以下軟體:
* Apache v.1.3.4 -- 世界上最流行的Web伺服器。
* gcc v.2.8.1 -- 來源於GNU的C和C++編譯器。
* Mysql v.3.22.16b-gamma -- 世界范圍內許多人使用的資料庫。
* PHP v.3.0.11 -- 本書所主要介紹的軟體。從http://www.php.net(或此站點的鏡象站點)直接下載可以得到較新的版本。本章的其它步驟仍然適用。
* expact -- 用於讀取和處理XML文檔的函數庫。
* phplib -- 用於進行會話管理的PHP函數庫。
* libiodbc -- 主要用於存取在非UNIX計算機中資料庫的ODBC函數庫。
* MyODBC -- PHP、iODBC和MySQL之間的函數庫。
即便如此,本章也並不是介紹編譯應用程序所需要的那些指令,而只是簡單的進行描述。總之,本書的重點是介紹PHP語言,而不是C語言。每一個應用程序的編譯對我來說都十分清楚,希望每個讀者也能沒有困難的進行編譯。假如你確實碰到了一些問題,可以在某個IRC頻道中有禮貌的詢問,或者可以嘗試使用新聞組(可以從http://www.dejanews.com訪問)得到幫助來解決問題。然而,最好的幫助還是來自http://www.php.net 上的PHP郵件列表。
在開始編譯過程之前,讓我們先討論一下如何從錯誤中恢復。在得到有關錯誤的幫助以後,可以採用以下的命令重新初始化源碼目錄:
* rm config.cache--幾乎所有的Linux應用程序都使用configure命令來檢查自己的系統,以尋找有關如何剪裁編譯過程的信息。檢查的結果將存貯在一個名為config.cache的文件中。如果移走此文件,將迫使配置程序從頭開始重新檢查系統。
* make distclean--所有的用C語言編寫的Linux應用程序都是用make程序編譯的。make程序會尋找每一個源文件,以確認是需要編譯還是已經編譯過的。make distclean命令可以「重置」所有的源程序,以便能重新編譯它們。
* make clean--有的應用程序不支持make distclean命令,而用make clean命令來代替。make clean命令「重置」所有的源程序,以便能重新編譯它們。
即使要安裝的一些應用程序不支持以上的每個命令,但是試一下這些命令也不會有什麼害處。
注意:Red Hat v5.2使用glibc庫。如果用戶從互聯網中下載或更新在本章中安裝的程序時,必須知道glibc的信息。使用者可以使用rpm -q glibc命令來查出已經安裝的glibc庫的版本號。在作者的系統中,使用rpm -q glibc命令將顯示glibc-2.0.7.29。
2.1 基本概念
也許讀者以前從沒有編譯過Linux應用程序,在這里介紹一些基本概念,以便在出現問題時有可能診斷出問題所在。
tar
tar,即tape archiver,它可以把幾個文件組合成一個文件,並可以選擇是否進行壓縮。這個命令過去通常用來進行備份,以便使數據存儲在磁帶中。當tar文件被壓縮時,它們有一個.gz的後綴;當tar文件沒有壓縮時,它們有一個.tar的後綴。
gcc
gcc 是GNU的C編譯器。它的工作是把人可以看懂的源代碼文件編譯成機器可以讀懂的目標文件。C源文件通常有.c的後綴名,目標文件通常有.o的後綴名。如果編譯工作不能正常進行,就是碰到了一個編譯期的錯誤,或者說:語法錯誤。在大多數情況下,不徹底的編譯通常是編譯器找不到一個或幾個包含文件而產生的。包含文件都有一個.h的擴展名,通常用來定義不同的系統信息,以及將多個不同的.c文件所共有的信息收集在一起。
make
make是一個常用的工具程序,是用來幫助進行編譯的。它的工作是用來只編譯那些還沒有編譯過的源文件。編譯.c文件將生成一個.o文件,如果.c文件比.o文件更新,也就是說到上次編譯之前,源文件被編輯過,那麼make將會重新編譯.c文件。make指令一般是尋找一個Makefile文件,在這個文件中包含有一個或多個能執行的目標,例如,make clean會告訴make執行清除目標。
ld
ld是GNU的鏈接程序。它的工作是把所有的目標文件和庫鏈接起來,創建一個單一的可執行文件。幸運的是,基本上不用手工運行這個程序,因為Makefile將會考慮到所有的編譯細節。
ldconfig
ldconfig會為在多個庫目錄(在/etc/ld.so.conf中指定)中尋找共享庫。共享庫常被多個的應用程序使用,它們的文件名中的某個地方有.so,例如,libqt.so.1.42是一個共享庫。在編譯完畢之後,有可能需要在/etc/ld.so.conf文件中增加一個目錄,並且運行ldconfig -v命令。
./configure
configure將會在計算機中尋找一些關鍵信息,例如,安裝的是哪一種C編譯器,包含文件在哪裡等等。然後,configure將會按照所用的計算機配置重新修改Makefile文件。應該使用./configure來在當前目錄下運行程序,以避免偶然運行$PATH環境變數中的目錄下的其他程序。
符號連接
符號連接允許使用者可以為一個已經現有的文件指定另一個不同的名字。例如,使用者有可能想把一個名為libqt.so.1.42的文件稱為libqt.so.1。符號連接基本上可以使用戶把一個文件復制到另一個不同的目錄下面,但事實上並沒有真正復制此文件。第二個文件實例只是簡單地指向第一個文件實例。使用符號連接至少可以有兩點好處,第一點是符號連接可以節省硬碟空間,少到只有16位元組;第二點有一點微妙,讓我們先看一下一個名為libqt.so.1且指向libqt.so.1.42的符號連接。如果需要升級到libqt.so.1.88,該怎麼辦呢?用戶只要簡單地改變符號連接,使libqt.so.1指向libqt.so.1.88,而非libqt.so.1.42即可。這意味著涉及到libqt.so.1的程序將自動地使用這個庫的新版本。按照慣例,符號連接常用於完整的發布版本號。換句話說,libqt.so.1.88和libqt.so.2.32應該有兩個不同的動態連接(分別為libqt.so.1和libqt.so.2)。
2.2 編譯前的准備工作
以下步驟將為系統做好編譯前的准備工作。
1. mkdir /usr/local/src -- 我選用/usr/local樹作為所安裝應用程序的根目錄。其他人可能選用/usr/opt、/opt或/var目錄。為了更方便的按照本章中的指令操作,請選用/usr/local目錄作為根目錄。當編譯完成以後,用戶可以把這些文件復制到不同的目錄中。
注意:為了能完成本章中的其它步驟,使用者必須具備root許可權。
2. cd /usr/local/src--轉到源文件目錄下。
3. 下載以下文件(可以從http://www.mtolive.com/phpbook站點下載),或者從本書隨機附帶的光碟中,復制這些文件到/usr/local/src目錄下:
. apache_1.3.4.tar.gz
. gcc-2.8.1.tar.gz
. mysql-3.22.16b-gamma.tar.gz
. php-3.0.11.tar.gz
. expat.tar.gz
. phplib.tar.gz
. libiodb-2.50.3
. myodbc-2.50.24-src
4. 使用tar命令解壓縮以上文件。tar的x選項為解開選項,v選項將在屏幕上顯示文檔中解出來的文件名,z選項為解壓縮選項,f選項用於在命令行中指定.tar文件名。
tar xvzf apache_1.3.4.tar.gz
tar xvzf gcc-2.8.1.tar.gz
tar xvzf mysql-3.22.16b-gamma.tar.gz
tar xvzf php-3.0.11.tar.gz
tar xvzf expat.tar.gz
tar xvzf phplib.tar.gz
5. gcc -v
確定系統中現有gcc的版本。如果你的系統不是v2.7.2.3,在下面的操作步驟中採用你的gcc版本號替換v.2.7.2.3。
6. cp `which gcc` /usr/bin/gcc-2.7.2.3
如果需要,把現有的gcc備份,以便以後使用。Linux的另一個優點是可以很容易在目錄下存儲一個程序的多個版本。
7. httpd -v
確定系統中的Apache的版本號。如果你的系統中的Apache不是v1.3.4,在下面的操作步驟中使用你的版本號替換v1.3.4。
8. mv `which httpd` /usr/sbin/httpd-1.3.4
如果需要,把現有的Apache備份,以便以後使用。
2.3 編譯C編譯器gcc
使用者應該安裝、編譯程序的第一個程序就是C編譯器。隨Red Hat v5.2附帶的C編譯器是gcc v2.7.2.3,由於它的版本比較低,以至於不能正確的編譯PHP。然而gcc v.2.7.3可以用來編譯版本較高的gcc v2.8.1。
編譯新版本的gcc需要執行:
1. cd /usr/local/src/gcc-2.8.1
轉到gcc的頂級目錄下。
2. ./configure -prefix=/usr/local/gcc
運行配置程序,強制安裝程序在後面的安裝過程中使用/usr/local/gcc作為gcc的安裝目錄。
3. make bootstrap LANGUAGES="c c++" BOOT_CFLAGS="-g -02"
編譯新的C和C++編譯器。
4. make install LANGUAGES="c c++" BOOT_CFLAGS="-g -02"
安裝新的C和C++編譯器。
5. mv /usr/local/gcc/bin/gcc /usr/local/gcc/bin/gcc-2.8.1
把新的gcc編譯器重新命名,使它的名字中含有版本號。
6. ln -s \
/usr/local/gcc/bin/gcc-2.8.1 \
/usr/bin/gcc-
給新編譯過的gcc可執行文件創建一個符號連接/usr/bin/gcc。
7. gcc -v
顯示gcc的版本號。如果編譯和安裝都正常的話,將顯示v.2.8.1。
2.3 編譯MySQL
現在來編譯MySQL。在編譯工作完成之後,就可以使用MySQL的應用程序來測試安裝。
1. cd /usr/src/mysql-3.22.16a-gamma
轉到MySQL的頂級目錄下。
2. ./configure --prefix=/usr/local/mysql
運行配置程序,強制安裝程序在後面的安裝過程中使用/usr/local/mysql作為MySQL的安裝目錄。
3. make
編譯MySQL。
4. make install
安裝MySQL。
5. echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
將MySQL庫所在的目錄添加進配置文件中。這樣,當Linux啟動或者執行ldconfig命令時,將會在該配置文件中的目錄里搜索庫文件。
6. ldconfig -v | grep libmysqlclient
ldconfig命令能讀取/etc/ld.so.conf文件中列出的目錄,並對在那些目錄里找到的庫文件進行緩沖。grep命令在ldconfig命令的大量輸出結果中查找MySQL庫文件,並限定文本以類似下面方式進行顯示:
libmysqlclient.so.6 => libmysqlclient.so.6.0.0.
7. echo "/usr/local/mysql/bin/safe_mysqld > /dev/null &" >> /etc/rc.d/rc.local
將MySQL啟動指令添加到/etc/rc.d/rc.local文件中,這樣每次啟動Linux後就會自動運行MySQL。
8. ./scripts/mysql_install_db
初始化資料庫。
9. /usr/local/mysql/bin/safe_mysqld > /dev/null &
啟動MySQL伺服器作為後台程序,為了測試安裝,MySQL伺服器必須啟動。
10. ln -s \
/usr/local/mysql/bin/mysql \
/usr/bin/mysql
我比較喜歡在/usr/bin目錄下為安裝目錄建立符號鏈接。這一方法減少了PATH環境變數中的目錄數量,還可以將不希望其他人運行的MySQL工具程序隱藏起來,(例如,mysqladmin命令)。另一方法是將命令PATH="$PATH:/usr/local/mysql/bin"放在/etc/profile文件中。以上兩種方法都很可以採用。
11. ln -s\
/usr/local/mysql/bin/mysqlshow \
/usr/bin/mysqlshow
該指令是讓一般用戶都可以運行mysqlshow命令。
2.4 測試MySQL
在繼續Apache和PHP編譯之前,首先來測試MySQL的安裝是否成功。正式發布的MySQL帶有許多有用的工具,這里我們只使用mysql和mysqlshow命令來進行測試。(如果對資料庫不熟悉,請不用擔心,諸如用戶、表、記錄等資料庫的概念將在第六章「資料庫和SQL」中加以介紹。)
mysqladmin的作用是建立和刪除資料庫、檢查SQL的狀態,以及其他一些用途。首先,通過檢查版本號以確認是否已經正確安裝了MySQL:
>PATH="usr/local/mysql/bin:$PATH"
>mysqladmin version
Ver 7.8 Distrib 3.22.16a-gamma, for pc-linux-gun on i686 TCX Datakonsult AB, by Monty
Server version 3.22.16a-gamma
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /tmp/mysql.sock
Uptime: 2 hours 30 min 39 sec
Threads: 1 Questions: 7 Slow queries: 0
Opens: 6 Flush tables: 1 Open tables: 2
可以用以下命令觀看mysqladmin的所有功能.
mysqladmin --help | less
也許mysqlshow是更讓人激動的工具,它能夠列出資料庫、表和欄位名,如下所示:
清單2.1 mysqlshow--顯示資料庫,表和欄位名清單
Page 18(第13行)-19(倒數第10行) , 清單 2.1
最後要介紹的MySQL工具是mysql,這個程序將深入到MySQL的中心,並且可以使你可以立刻在Linux命令行提示下執行SQL語句。在shell模式下運行mysql。
Page 19(倒數第5行)-20(倒數第5行)
小心:設置密碼要使用password()函數。如果需要進一步了解,請查閱MySQL文檔。
小心:在系統進入正常工作模式的時候,請選用一個比「password」更好的root密碼。
2.5 編譯iODBC和MyODBC
iODBC是一個實現開放性資料庫互連(Open Database connectivity)協議的函數庫。它主要用於連接運行於Microsoft Windows的資料庫引擎。
1. cd /usr/local/src/libiodbc-2.50.3
轉到iODBC目錄。
2. ./configure \
--prefix=/usr/local/iodbc \
--with-iodbc-inidir=/usr/local/etc
運行配置程序,並強制設置iODBC為安裝到目錄/usr/local/iodbc下。此外,應確認odbc的初始化文件為/etc/odbc.ini。
3. make
4. make install
把庫文件復制到目錄/usr/local/iodbc/lib下,並且把包含文件復制到目錄/usr/local/iodbc/include下。
5. cd /usr/local/src/myodbc-2.50.24
轉到MyODBC目錄下。
6. ./configure \
--prefix=/usr/local/myodbc \
--with-mysql-sources=/usr/local/mysql-3.22.16a-gamma \
--with-odbc-ini=/etc/odbc.ini \
--with-iodbc=/usr/local/iodbc
運行MyODBC配置程序。
7. make
8. make install
把庫復制到目錄/usr/local/myodbc/lib下。
2.6 編譯PHP
編譯PHP比編譯以前的應用程序更復雜,這是因為編譯PHP事實上是expat、Apache和PHP的組合。編譯的結果將生成一個帶有PHP的Apache版本。為了要編譯PHP,可以採用以下步驟:
1. cd /usr/local/src/expat
轉到expat目錄。
2. make
編譯expat源文件。
3. 把以下命令加到Makefile文件中,必須保證在輸入ar和ralib之前使用的是Tab鍵。
libexpat.a: $(OBJS)
ar -rc $@ $(OBJS)
ranlib $@
4. make libexpat.a
把expat目標文件組合成庫文件。
5. mv libexpat.a /usr/local/lib
PHP配置文件在/usr/local/lib目錄下尋找libexpat.a文件。把libexpat.a文件移到PHP配置文件已知的目錄下,可以為以後的操作減少麻煩。
6. cd /usr/local/src/php-3.0.11
轉到PHP的頂級目錄下。
7. mkdir /usr/local/include/xml
確認/usr/local/include/xml目錄是存在的。
8. ln -s \
/usr/local/src/expat/xmltok/xmltok.h \
/usr/local/include/xml/xmltok.h
當能創建符號連接時,為什麼還要復制呢?
9. ln -s \
/usr/local/src/expat/xmlparse.h \
/usr/local/include/xml/xmlparse.h
這是PHP為了能夠正確地被編譯所需要的另一個包含文件。
10. cd /usr/local/src/apache_1.3.4
轉到Apache的頂級目錄下。
11. ./configure -prefix=/usr/local/apache
運行配置程序,強制設置Apache安裝目錄為/usr/local/apache。
12. cd /usr/local/src/php-3.0.11
轉到PHP的頂級目錄下。
13. ./configure \
--with-apache=../apache_1.3.4 \
--with-iodbc=/usr/local/iodbc \
--with-mysql=/usr/local/mysql \
--with-xml
運行配置程序,並且告訴配置程序支持Apache、MySQL和XML。
14. make
編譯PHP源文件。
15. make install
安裝已編譯的文件。PHP庫文件會被放在Apache的模塊目錄下,這樣可以在編譯Apache時能找到它們。
16. cd /usr/local/src/apache_1.3.4
轉到Apache的頂級目錄下。
17. ./configure \
--prefix=/usr/local/apache \
--active-mole=src/moles/php3/libphp3.a
再一次配置Apache,這次告訴Apache要載入PHP模塊。
18. make
編譯Apache源文件。
19. make install
安裝已編譯的文件。
20. mv \
/usr/local/apache/bin/httpd \
/usr/local/apache/bin/httpd-1.3.4
重新命名新創建的httpd可執行文件,這樣就能夠安裝多種版本。
21. ln -s \
/usr/local/apache/bin/httpd-1.3.4 \
/usr/sbin/httpd
建立一個指向新的可執行文件的符號鏈接。
22. httpd -v
證實可以訪問新的可執行文件。該命令的執行結果將顯示版本1.3.4,而且建立日期也應該正確無誤。
23. 編輯/usr/local/apache/conf/http.conf文件,搜索AddType並確認下列行未加註釋。
AddType application/x-httpd-php3 .phtml
AddType application/x-httpd-php3 .php3
AddType application/x-httpd-php3-source .phps
24. 接著編輯/usr/local/apache/conf/http.conf文件,搜索DirectoryIndex並將index.php3放在行尾。
25. 創建一個名為/usr/local/local/php3.ini的文件,該文件應包含如下的命令行:
include_path=.:/usr/local/apache/php/
auto_prepend_file=/usr/local/apache/php/prepend.php3
track_vars = on
magic_quotes_gpc = on
sendmail_path /usr/sbin/sendmail -t
26. ln -s \
/usr/local/src/php-3.0.11/doc/manual.html \
/usr/local/src/php-3.0.11/doc/index.html
建立一個符號鏈接,這樣絕大多數Web瀏覽器就會正確地自動顯示PHP文件起始頁。
27. ln -s \
/usr/local/src/php-3.0.11/doc \
/usr/local/apache/htdocs/phpdocs
建立一個符號鏈接,這樣就可以通過http://localhost/phpdocs/, 來訪問PHP文檔。
28. 創建一個叫做/usr/local/apache/htdocs/robots.txt的文件,這樣就可避免搜索引擎為PHPLIB,phpMyAdmin和PHP文件建立索引,新創建的文件應包括如下設置行:
#robots.txt for (hostname)
User-agent *
Disallow: /phpdocs/
Disallow: /php/
Disallow:/phpMyAdmin/
2.7 安裝PHPLIB
在閱讀第15章「處理並發的訪問」之前,應先安裝PHPLIB,可以按照下列步驟進行安裝:
1. 以root用戶或其他任何可以在/usr/local/apache目錄下寫文件的用戶注冊。
2. cd /usr/local/apache/
在開始下載文件之前,進入到Web伺服器的頂級目錄下。
3. 從如下Web網址下載最新版本的文件,注意gz後綴的文件名,以免它的文件名phplib.tar.gz被改動。
http://phplib.shonline.de/
4. tar xv2f phplib.tar.gz
解壓縮PHPLIB模塊。
5. 編輯/usr/local/lib/php3.ini文件,應包括下列設置內容:
include_path=.:/usr/local/apache/phplib-6.1/php
auto_prepend_file = /usr/local/apache/phplib-
6.1/php/prepend.php3
track_vars = on
magic_quotes_gpc = on
sendmail_path /usr/sbin/sendmail -t
6. 建立一個名為poe_sessions的mysql資料庫。我一般使用phpMyAdmin,如果願意,也可以使用SQL命令創建資料庫。
7. cd /usr/local/apache/phplib-6.1/stuff
進入建表目錄下。
8. mysql php_book --user=root --password <
create_database.mysql
創建PHPLIB所需要的資料庫表。
9. 使用以下值在mysql資料庫表中增加一條新記錄:
host: %
password: <-- no password.
select_priv: Yes
insert_priv: Yes
update_priv: Yes
delete_priv: Yes
for users named "kris","user01",and "user02".
注意:也可以使用如下SQL語句:
INSERT INTO
user
(
Host
,User
,Password
,Select_priv
,Insert_priv
,Update_priv
,Delete_priv
)
VALUES (
'%'
, 'kris'
, ''
, 'Y', 'Y', 'Y', 'Y'
)
10. 使用以下值在mysql資料庫的db表中增加一條新記錄:
host: %
db: poe_sessions
select_priv: Yes
insert_priv: Yes
update_priv: Yes
delete_priv: Yes
for users named "kris","user01",and "user03".
注意:也可以使用如下SQL程序。
INSERT INTO
db
(
Host
,Db
,User
,Select_priv
,Insert_priv
,Update_priv
,Delete_priv
)
VALUES (
'%'
, 'poe_sessions '
, 'kris'
, 'Y', 'Y', 'Y', 'Y'
)
11. /usr/local/mysql/bin/mysqladmin -u root -p reload
重新裝載MySQL許可權表。
12. 在php_book資料庫中創建兩個PHPLIB已認證的用戶(user01和user02),可以使用如下SQL語句:
INSERT INTO
auto_user
(
uid
,username
,password
,perms
) VALUES (
''
,'user01'
,'test'
,'admin'
)
INSERT INTO
auth_user
(
uid
,username
,password
,perms
) VALUES (
''
,'user02'
,'test'
,'admin'
)
13. mv\ /use/local/apache/phplib-6.1/pages \
/use/local/apach/htdocs
將演示子目錄置於Web伺服器的根目錄下,這樣就可以用瀏覽器訪問它。
14. 編輯文本文件/usr/local/apache/htdocs/robots.txt,使它包括如下內容:
Disallow: /phplib/
15. 使用Web瀏覽器訪問http://localhost/phplib/。將會看到如圖2.1所示頁面。
Page 29 圖2.1
圖2.1 重新裝載兩次以後出現的PHPLIB演示頁面
2.8 測試Linux環境下的ODBC
對所裝軟體進行基本測試是很重要的,特別是需要手工編輯配置文件時。如下的測試可確保你的MySQL驅動程序運行正常,並且編譯的iODBC庫文件也是正確無誤的。
1. 使用清單2.1所列的內容,建立一個名為/usr/local/etc/odbc.ini的文件。
清單 2.2 /usr/local/etc/odbc.ini- 系統ODBC 配置文件
;
;odbc.ini
;
[ODBC Data Sources]
mysql = mysql
[php_book]
driver = /usr/local/myodbc/lib/libmyodbc.so
host = localhost
database = mysql
user = root
2. cd /usr/local/src/libiodbc-2.50.3/samples
3. ./odbctest
運行ODBC測試程序。
4. DSN=mysql;PWD=password
告訴測試程序要訪問的數據源。
5. select host,user from user
在提示符下執行一個SQL語句,如果有回應,說明iODBC和MySQL已經可以使用了。
現在,在計算機中已經安裝好了ODBC,由於它的安裝步驟不太清晰而且文檔又很少,所以本章中講述了其安裝和測試指令,然而鑒於ODBC主要是一項Microsoft技術,且很少在Linux中用到,所以這里是本書中最後一次有關介紹。
2.9 總結:
本章講述了如何獲取PHP,及在計算機中進行安裝所需要的步驟,編譯了內建PHP的特定版本Apache 伺服器。同時,還安裝了將在第15章「中場四:處理並發訪問」中用所到的PHPLIB。
『叄』 大家給推薦一個php開發工具 哦 !
PHP開發工具匯總
這里個人推薦一些 PHP IDE 工具,非常見的 Editplus 之類的,都是專門為 PHP 開發的,個人感覺方便容易入手啊簡單操作,找出自己用得順手的就可以了,呵呵,自己最近再考慮試試嘗試下 Zend Studio 作為開發工具,因為調試和編寫都很方便,代碼檢測功能和手冊查閱功能,所以想試試 嘿嘿。
下面有提供些為PHP設計的IDE,editplus,Ultra Edit等常用文本工具我就不介紹了!其中一些介紹是從那些下載站里復制過來的!
Zend Studio
開發商:
http://www.zend.com/store/procts/zend-studio.php
目前公認的最強大的PHP開發工具,這種集成軟體包包括了用於編輯,調試,配置PHP程序所需要的客戶及伺服器組件,軟體包具有工業標準的PHP開發環境,代碼完成引擎,功能齊全的調試器等
NuSphere PHPEd
http://www.nusphere.com/
PhpED 通過無與倫比的PHP調試和壓縮能力,以及一個新的NuSOAP web服務向導成為了PHP領域的領軍產品。更加強大的Project Manager使得發布站點和應用程序比以前更加容易。現在可以在線程級別對正在運行或者開發中的程序進行測試和調校。支持 CVS 版本控制,而且,對PostgreSQL和MySQL資料庫的本地支持為PHP使用開源資料庫提供了一個廣泛的環境。但對中文支持不太好,漢字都當作單位元組處理了。PHPED還有Linux版本。
PHP Coder
http://www.phpide.de/
PHPCoder用於快速開發和調試PHP應用程序,它很容易擴展和定製,完全能夠符合開發者的個性要求.1:結合了PHP編譯器和參考文檔,可以對編輯中的PHP腳本進行即時預覽2:支持高亮顯示HTML和PHP代碼;3:自動完成功能,可以自動完成用戶自定義代碼片斷;4:標准函數提示;5:有專門的工程項目管理器;6:對象瀏覽器搜尋編輯中文件的包含信息,自定義函數,並以樹形顯示.7:支持查找對稱的語句標記符;8:支持高級搜索和替換;9:自帶FTP功能;10:支持運行和斷點調試11:......總之,PHPCoder是一個非常實用的,功能強大的編程環境,而且它是免費的!
Ankord PHP Expert Editor
http://www.ankord.com/phpxedit.html
PHP Expert Editor是一個容易使用的 PHP 開發工具,它的功能照顧到初級者及專業開發人員。 PHP Expert Editor 內建 http server 用作測試及除錯(你也可以使用其他 http server), PHP 語法檢查, FTP 功能, 程式碼樣板等功能。
DzSoft PHP Editor
http://www.dzsoft.com/dzphp.htm
專為 PHP 所設計的網頁程序編輯軟體 - DzSoft PHP Editor,具有 PHP 編輯、偵錯、瀏覽、原始碼檢視、檔案瀏覽、可自訂的原始碼樣本..等功能,無須架設網站主機就可以測試 PHP 指令碼,是一套功能強大的 PHP 編程軟體。
DzSoft PHP Editor和Ankord PHP Expert Editor非常相識,幾乎找不到他們的主要區別,關於這兩個軟體之間的具體內幕我也不太清楚!
Dev-PHP IDE
http://devphp.sourceforge.net/
非常好用的php編輯器,支持php-gtk,內建許多快速html表單,非常的好用,本身含繁體語言包,另附暗地論壇的中文語言包
Master PHP
http://www.gsoftwares.com/
一款支持PHP, PHP3, PHTML, CSS, JS, HTML, HTM and SQL的編輯器,它允許用戶編輯多種一次編輯多種文件,允許插入,運行和最優化程序的腳本,用戶可以通過工具欄定製按鈕和窗體,可以導出html和rtf格式,支持18種語言
Komodo
http://www.activestate.com/Procts/Komodo/
Komodo支持在Windows與Linux上,Perl、Python及JavaScript等的程序語言開發,以及多種程序語言語法不同顏色標注。這款功能強大的IDE竟然不支持中文,連中文文件名的文件都打不開!
Maguma Studio
http://www.maguma.com/
Maguma Studio包含了編輯和調試 PHP 程序所有必須的工具。無論您是經驗豐富的開發者、或是初學者它都適合您。帶有十分完整的斷點、分步等調試功能。支持以樹形方式顯示文件中的函數和類成員。
PhpLens
http://phplens.com
PhpLens是一款專為PHP開發人員准備的快速資料庫開發程序。通過使用PhpLens,可以快速的設計、發布和維護資料庫驅動的網路產品。它允許你以HTML表格的形式對資料庫進行瀏覽、編輯、創建、刪除和查找。不用寫任何代碼,它就允許你完成上述操作。
簡單推薦到此吧,有什麼好滴東西,大家都拿出來共享下咯,嘿嘿,上面的這些軟體都很強大,但我個人而言還是比較習慣用editplus。一方面自己水平不夠,這些軟體的很多功能都還不懂得如何充分利用,浪費丫,另一方面自己的英文太差,想靈活應用這些工具還有必要先提高下自己的E文啊 見笑啦,同時自己使用editplus的時間也比較常,比較順手吧 ^_^
『肆』 php 編譯器
Notepad++
『伍』 PHP程序編譯中常見錯誤信息及解釋
編寫程序時 無論怎樣小心謹慎 犯錯總是在所難免的 這些錯誤通常會迷惑PHP編譯器 如果開發人員無法了解編譯器報錯信息的含義 那麼這些錯誤信息不僅毫無用處 還會常常讓人感到沮喪 編譯PHP腳本時 PHP編譯器會盡其所能報告它遇到的第一個問題 這樣就產生一個問題 只有當錯誤出現時 PHP才能將它識別出來(本文後面對此問題進行了詳細描述) 正是由於這個緣故 編譯器指出出錯的那行 從表面上看來可能語法正確無誤 或者可能是根本就不存在的一行!更好地理解錯誤信息可以大大節省確定並改正錯誤內容所花費的時間 因此 在本文中 我將努力闡明多種不同類型的PHP報錯信息 以及在開發過程中如何正確理解各種報錯信息的含義 本文中所講述的內容與您所應用的PHP的版本無關 因為本文所描述的各種錯誤並不限定於某一特殊版本的特定錯誤 另外我們假定您是一位初級或者中級程序員 並已經從事編程工作有半年或一年的時間 編譯器的工作方式要搞清楚編譯器為什麼會報告某一行上存在錯誤 首先必須明確編譯器解析PHP代碼的機制 我並不打算在本文中對此進行詳細論述 但是 我們將會討論一些更易於引發錯誤的簡單概念 變數聲明如果在一條語句中聲明一個變數 具體方式如下所示 $variable = value ;編譯器首先求出語句右半部分的值(即等號右邊的所有內容) 在一些編程書籍中 將此表示為語句的 RHS (右半部分) 恰恰正是語句的這一部分常常會引發錯大逗誤 如果使用的語法不正確 就會出現解析錯誤 解析錯誤Parse error:解析錯誤 unexpected T_WHILE in c://program files//apache group//apache//htdocs//script php on line 每次確定了前一錯誤時 解析錯誤一個接一個地不斷出現 因為PHP在第一個解析錯誤之後就停止執行腳本 調試並糾正這一系列的錯誤往往會讓人覺得特別厭煩 而且 解析錯誤具有很少的信息 幾乎不報告錯誤所在的行號 具體原因就是當出現錯誤時 編譯器判定好幾行的語法看起來應該是有效的 直至遇到無效的語法 最可能的情形就是表達式中使用了預定義的字詞 例如;while = ; // Bad ? while 就是一個預定義字詞 不能分配給一個值預定義的字詞包括 while function等 如果PHP使用 uses to evaluate your code 您不能使用這些預定義字詞來命名變數 而且如果您非要這樣做的話 PHP就會報出更多的慎胡錯誤 這是您無法忍受 關於這個問題 下面的示例可能會對您有所幫助 請咨詢閱讀一下下面所示的PHP 代碼 $b = somevalueif($b == somevalue){print Hello world!;}?>錯誤位於$b =一行(在語句的末端缺少分號) 所以錯誤應該是解析錯誤:第 行缺少分號對吧?而不應該依據解析器判定的 Parse error: parse error unexpected T_IF in c://program files//apachegroup//apache//htdocs//ereg php on line 在第 行 if() 語句的語法是正確的 那麼 編譯器是被什麼給搞糊塗了呢?線索就是unexpected T_IF 部分 出現 unexpected T_???錯誤時 它所表示的含義為 編譯器發現在預定義字不應該出現的位置出現 T_IF 代表 if() T_WHILE 代表 while() T_FOR 代表 for()等 值得慶幸的是 一些錯誤的原因也很簡單 語句沒有使用分號(;)結束 比如上面的示例 字元串中缺少引號 其他一些常見的錯誤我見過的最常見的錯誤就是 當沒有使用大括弧( } )結束一個函數或者一個循環時出現的錯誤 這很可能是最常見 最讓人煩的錯誤 具體代碼如下滾孝賣 function UselessFunction() {for($i < ; $i < ; $i++){}將產生下列錯誤 Parse error: parse error unexpected $ in c://program files//apachegroup//apache//htdocs//ereg php on line 由於函數 UselessFunction 沒有使用大括弧( } )來結束 PHP編譯器不斷查找表示結束的大括弧直至到達文件末尾為止 因為編譯器未找到一個匹配的大括弧 就會報告文件末尾處有錯誤 如果正確地反映了代碼的層次結構 錯誤信息就會變得非常明顯 如果沒有標明代碼的層次結構 那麼最後要想查清楚到底忘記了什麼也會變得幾乎是不可能的 所以 請記住 一定要標明代碼的層次結構 Tab鍵可以很容易地實現這一點 對後續的開發人員來說 把握代碼框架並對其進行修改也會更容易一些 MySQL 錯誤另一極其令人討厭的錯誤信息就是最常見的MySQL錯誤 這常常使 PHP新手感到頗為頭疼 Warning: Supplied argument is not a valid MySQL result resource in 上面所報告有錯的一行可能是 while($row = mysql_fetch_array($result)) {參數 $result並不是一個有效的資源 在英語中它表示因為查詢失敗 將無法處理mysql_fetch_array 任一查詢的語法無效(您應該將查詢復制 粘貼到MySQL 控制台參考來進行測試) 或者與資料庫的連接失敗(這種情況下您應該再次檢查用戶名和口令等) 防止錯誤發生第一步 智能代碼器可採取以下幾步來消除下列錯誤出現 · 在每一條語句的末尾處 不必考慮添加分號——這應該成為一種習慣 · 總是要盡可能標明代碼的層次結構 這可以使您能夠查看是否忘記在if 調用或函數末端等位置添加大括弧 · 請使用可突出顯示語法的編輯器(如 HTML Kit) 有了這類編輯器的輔助 您就能確定是否忘記了添加引號 是否缺少分號等 lishixin/Article/program/PHP/201311/21338