1、安裝php運(yùn)行環(huán)境
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、重慶小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了新巴爾虎右免費(fèi)建站歡迎大家使用!
2、安裝數(shù)據(jù)庫(kù)
3、將網(wǎng)站目錄指向網(wǎng)站源碼所在的文件夾
詳細(xì)步驟如下:
===========
===========
===========
Windows 2000/XP/2003 下 IIS+PHP+MySQL+Zend Optimizer+GD庫(kù)+phpMyAdmin安裝配置
關(guān)鍵詞:Windows IIS下配置支持PHP+MYSQL
Apache下支持PHP的配置方法比較簡(jiǎn)單,這里就不寫了
一般WIN主機(jī)推薦PHP環(huán)境組合:PHP4.4.x+MySQL4.0.x,故以下關(guān)于PHP4.4.x+MySQL4.0.x組合的安裝以藍(lán)色文字顯示,如果你只需要安裝PHP4.4.x+MySQL4.0.x的組合只看藍(lán)色文字的相關(guān)內(nèi)容即可
當(dāng)然喜歡體驗(yàn)的或者WIN2003系統(tǒng)也可體驗(yàn)嘗試最新的版本,推薦組合PHP5.1.x+MYSQL5.0.x/MySQL4.1.x
一、軟件準(zhǔn)備:以下均為截止2006-1-20的最新正式版本,下載地址也均長(zhǎng)期有效
1.PHP,推薦PHP4.4.0的ZIP解壓版本:
PHP(4.4.0):
[供選用]:
PHP(5.1.2):
2.MySQL,配合PHP4推薦MySQL4.0.26的WIN系統(tǒng)安裝版本:
MySQL(4.0.26):
... p/from/pick#mirrors
[供選用]:
MySQL(4.1.16):
... p/from/pick#mirrors
MySQL(5.0.18):
... p/from/pick#mirrors
3.Zend Optimizer,當(dāng)然選擇當(dāng)前最新版本拉:
Zend Optimizer(2.6.2):
(Zend軟件雖然免費(fèi)下載,但需要注冊(cè)用戶,這里提供本人注冊(cè)好的帳戶名:
xqincom
和密碼:
xqin.com
,方便大家使用,請(qǐng)不要修改本帳號(hào)或?qū)⒈編粲糜谄渌M(fèi)正當(dāng)途徑,謝謝?。?/p>
登陸后選擇Windows x86的Platform版本,如最新版本2.6.2
;zbid=995
4.phpMyAdmin,當(dāng)然同樣選擇當(dāng)前最新版本拉,注意選擇for Windows 的版本哦:
phpMyAdmin(2.7.0):
假設(shè) C:\ 為你現(xiàn)在所使用操作系統(tǒng)的系統(tǒng)盤,如果你目前操作系統(tǒng)不是安裝在 C:\ ,請(qǐng)自行對(duì)應(yīng)修改相應(yīng)路徑。同時(shí)由于C盤經(jīng)常會(huì)因?yàn)楦鞣N原因重裝系統(tǒng),數(shù)據(jù)放在該盤不易備份和轉(zhuǎn)移
選擇安裝目錄,故本文將所有PHP相關(guān)軟件均安裝到D:\php目錄下,這個(gè)路徑你可以自行設(shè)定,如果你安裝到不同目錄涉及到路徑的請(qǐng)對(duì)應(yīng)修改以下的對(duì)應(yīng)路徑即可
二、安裝 PHP :本文PHP安裝路徑取為D:\php\php4\
(為避混淆,PHP5.1.x版本安裝路徑取為D:\php\php5\)
(1)、下載后得到 php-4.4.0-Win32.zip ,解壓至D:\php目錄,將得到二級(jí)目錄php-4.4.0-Win32,改名為 php4,也即得到PHP文件存放目錄D:\php\php4\[如果是PHP5.1.2,得到的文件是php-5.1.2-Win32.zip,直接全 部接壓至D:\php\php5目錄即可得PHP文件存放目錄D:\php\php5\
];
(2)、再將D:\php\php4目錄和D:\php\php4\dlls目錄[
PHP5為D:\php\php5\
]下的所有dll文件拷到c:\Windows\system32(win2000系統(tǒng)為 c:/winnt/system32/)下,覆蓋已有的dll文件;
(3)、將php.ini-dist用記事本打開,利用記事本的查找功能搜索并修改:
搜索
CODE:
[Copy to clipboard]
register_globals = Off,將 Off 改成 On ,即得到register_globals = On;
注:這個(gè)對(duì)應(yīng)PHP的全局變量功能,考慮有很多PHP程序需要全局變量功能故打開,打開后請(qǐng)注意-PHP程序的嚴(yán)謹(jǐn)性,如果不需要推薦不修改保持默認(rèn)Off狀態(tài)
再搜索
CODE:
[Copy to clipboard]
extension_dir =,并將其路徑指到你的 PHP 目錄下的 extensions 目錄,比如:修改extension_dir = "./"為extension_dir = "D:/php/php4/extensions/" ;
PHP擴(kuò)展功能目錄[PHP5對(duì)應(yīng)修改為extension_dir = "D:/php/php5/ext/"]
在D:\php下建立文件夾并命名為tmp
查找
CODE:
[Copy to clipboard]
;upload_tmp_dir =將;upload_tmp_dir該行的注釋符,即前面的分號(hào)“;”去掉,使該行在php.ini文檔中起作用。upload_tmp_dir是用來定 義上傳文件存放的臨時(shí)路徑,在這里你還可以修改并給其定義一個(gè)絕對(duì)路徑,這里設(shè)置的目錄必須有讀寫權(quán)限。
這里我設(shè)置為upload_tmp_dir = D:/php/tmp (即前面建立的這個(gè)文件夾呵)
搜索找到
CODE:
[Copy to clipboard]
;Windows Extensions將下面一些常用的項(xiàng)前面的;去掉
CODE:
[Copy to clipboard]
;extension=php_mbstring.dll
CODE:
[Copy to clipboard]
;extension=php_curl.dll
CODE:
[Copy to clipboard]
;extension=php_dbase.dll
CODE:
[Copy to clipboard]
;extension=php_gd2.dll
這個(gè)是用來支持GD庫(kù)的,一般需要,必選
CODE:
[Copy to clipboard]
;extension=php_ldap.dll
CODE:
[Copy to clipboard]
extension=php_zip.dll去掉前面的";"
對(duì)于PHP5的版本還需要查找
CODE:
[Copy to clipboard]
;extension=php_mysql.dll并同樣去掉前面的";"
這個(gè)是用來支持MYSQL的,由于PHP5將MySQL作為一個(gè)獨(dú)立的模塊來加載運(yùn)行的,故要支持MYSQL必選
查找
CODE:
[Copy to clipboard]
;session.save_path =去掉前面;號(hào),本文這里將其設(shè)置置為
session.save_path = D:/php/tmp
其他的你可以選擇需要的去掉前面的;然后將該文件另存為為php.ini到C:\Windows ( Windows 2000 下為 C:\WINNT)目錄下,注意更改文件后綴名為ini,得到C:\Windows\php.ini ( Windows 2000 下為 C:\WINNT\php.ini)
本人配置成功后的PHP.INI文件示例可供大家參考:
對(duì)應(yīng)版本為PHP4.4.0
對(duì)應(yīng)版本為PHP5.1.12
若路徑等和本文相同可直接保存到C:\Windows ( Windows 2000 下為 C:\WINNT)目錄下使用若路徑等和本文相同可直接保存到C:\Windows ( Windows 2000 下為 C:\WINNT)目錄下使用
一些朋友經(jīng)常反映無(wú)法上傳較大的文件或者運(yùn)行某些程序經(jīng)常超時(shí),那么可以找到C:\Windows ( Windows 2000 下為 C:\WINNT)目錄下的PHP.INI以下內(nèi)容修改:
max_execution_time = 30 ; 這個(gè)是每個(gè)腳本運(yùn)行的最長(zhǎng)時(shí)間,可以自己修改加長(zhǎng),單位秒
max_input_time = 60 ; 這是每個(gè)腳本可以消耗的時(shí)間,單位也是秒
memory_limit = 8M ; 這個(gè)是腳本運(yùn)行最大消耗的內(nèi)存,也可以自己加大
upload_max_filesize = 2M ; 上載文件的最大許可大小 ,自己改吧,一些圖片論壇需要這個(gè)更大的值
(4)、配置 IIS 使其支持 PHP :
首先必須確定系統(tǒng)中已經(jīng)正確安裝 IIS ,如果沒有安裝,需要先安裝 IIS ,安裝步驟如下:
Windows 2000/XP 下的 IIS 安裝:
用 Administrator 帳號(hào)登陸系統(tǒng),將 Windows 2000 安裝光盤插入光盤驅(qū)動(dòng)器,進(jìn)入“控制面板”點(diǎn)擊“添加/刪除程序”,再點(diǎn)擊左側(cè)的“添加/刪除 Windows 組件”,在彈出的窗口中選擇“Internet 信息服務(wù)(IIS)”,點(diǎn)下面的“詳細(xì)信息”按鈕,選擇組件,以下組件是必須的:“Internet 服務(wù)管理器”、“World Wide Web 服務(wù)器”和“公用文件”,確定安裝。
安裝完畢后,在“控制面板”的“管理工具”里打開“服務(wù)”,檢查“IIS Admin Service”和“World Wide Web Publishing Service”兩項(xiàng)服務(wù),如果沒有啟動(dòng),將其啟動(dòng)即可。
Windows 2003 下的 IIS 安裝:
由于 Windows 2003 的 IIS 6.0 集成在應(yīng)用程序服務(wù)器中,因此安裝應(yīng)用程序服務(wù)器就會(huì)默認(rèn)安裝 IIS 6.0 ,在“開始”菜單中點(diǎn)擊“配置您的服務(wù)器”,在打開的“配置您的服務(wù)器向?qū)А崩镒髠?cè)選擇“應(yīng)用程序服務(wù)器(IIS,ASP.NET)”,單擊“下一步”出 現(xiàn)“應(yīng)用程序服務(wù)器選項(xiàng)”,你可以選擇和應(yīng)用程序服務(wù)器一起安裝的組件,默認(rèn)全選即可,單擊“下一步”,出現(xiàn)“選擇總結(jié)界面”,提示了本次安裝中的選項(xiàng), 配置程序?qū)⒆詣?dòng)按照“選擇總結(jié)”中的選項(xiàng)進(jìn)行安裝和配置。
打開瀏覽器,輸入:
,看到成功頁(yè)面后進(jìn)行下面的操作:
PHP 支持 CGI 和 ISAPI 兩種安裝模式,CGI 更消耗資源,容易因?yàn)槌瑫r(shí)而沒有反映,但是實(shí)際上比較安全,負(fù)載能力強(qiáng),節(jié)省資源,但是安全性略差于CGI,本人推薦使用 ISAPI 模式。故這里只解介紹 ISAPI 模式安裝方法:(以下的截圖因各個(gè)系統(tǒng)不同,窗口界面可能不同,但對(duì)應(yīng)選項(xiàng)卡欄目是相同的,只需找到提到的對(duì)應(yīng)選項(xiàng)卡即可)
在“控制面板”的“管理工具”中選擇“Internet 服務(wù)管理器”,打開 IIS 后停止服務(wù),對(duì)于WIN2000系統(tǒng)在”Internet 服務(wù)管理器“的下級(jí)樹一般為你的”計(jì)算機(jī)名“上單擊右鍵選擇“屬性”,再在屬性頁(yè)面選擇主屬性”WWW 服務(wù)“右邊的”編輯“
對(duì)于XP/2003系統(tǒng)展開”Internet 服務(wù)管理器“的下級(jí)樹一般為你的”計(jì)算機(jī)名“選擇”網(wǎng)站“并單擊右鍵選擇“屬性”
在彈出的屬性窗口上選擇“ISAPI 篩選器”選項(xiàng)卡找到并點(diǎn)擊“添加”按鈕,在彈出的“篩選器屬性”窗口中的“篩選器名稱”欄中輸入:PHP ,再將瀏覽可執(zhí)行文件使路徑指向 php4isapi.dll 所在路徑,如本文中為:D:\php\php4\sapi\php4isapi.dll[PHP5對(duì)應(yīng)路徑為D:\php\php5\ php5isapi.dll
]。
打開“站點(diǎn)屬性”窗口的“主目錄”選項(xiàng)卡,找到并點(diǎn)擊“配置”按鈕
在彈出的“應(yīng)用程序配置”窗口中的”應(yīng)用程序映射“選項(xiàng)卡找到并點(diǎn)擊“添加”按鈕新增一個(gè)擴(kuò)展名映射,在彈出的窗口中單擊“瀏覽”將可執(zhí)行文件指向 php4isapi.dll 所在路徑,如本文中為:D:\php\php4\sapi\php4isapi.dll[
PHP5對(duì)應(yīng)路徑為D:\php\php5\php5isapi.dll
],擴(kuò)展名為 .php ,動(dòng)作限于”GET,HEAD,POST,TRACE“,將“腳本引擎”“確認(rèn)文件是否存在”選中,然后一路確定即可。如果還想支持諸如 .php3 ,.phtml 等擴(kuò)展名的 PHP 文件,可以重復(fù)“添加”步驟,對(duì)應(yīng)擴(kuò)展名設(shè)置為需要的即可如.PHPX。
此步操作將使你服務(wù)器IIS下的所有站點(diǎn)都支持你所添加的PHP擴(kuò)展文件,當(dāng)然如果你只需要部分站點(diǎn)支持PHP,只需要在“你需要支持PHP的Web站 點(diǎn)”比如“默認(rèn)Web站點(diǎn)”上單擊右鍵選擇“屬性”,在打開的“ Web 站點(diǎn)屬性”“主目錄”選項(xiàng)卡,編輯或者添加PHP的擴(kuò)展名映射即可或者將你步需要支持PHP的站點(diǎn)中的PHP擴(kuò)展映射刪除即可
再打開“站點(diǎn)屬性”窗口的“文檔”選項(xiàng)卡,找到并點(diǎn)擊“添加”按鈕,向默認(rèn)的 Web 站點(diǎn)啟動(dòng)文檔列表中添加 index.php 項(xiàng)。您可以將 index.php 升到最高優(yōu)先級(jí),這樣,訪問站點(diǎn)時(shí)就會(huì)首先自動(dòng)尋找并打開 index.php 文檔。
確定 Web 目錄的應(yīng)用程序設(shè)置和執(zhí)行許可中選擇為純腳本,然后關(guān)閉 Internet 信息服務(wù)管理器
對(duì)于2003系統(tǒng)還需要在“Internet 服務(wù)管理器”左邊的“WEB服務(wù)擴(kuò)展”中設(shè)置ISAPI 擴(kuò)展允許,Active Server Pages 允許
完成所有操作后,重新啟動(dòng)IIS服務(wù)。
在CMD命令提示符中執(zhí)行如下命令:
net stop w3svc
net stop iisadmin
net start w3svc
到此,PHP的基本安裝已經(jīng)完成,我們已經(jīng)使網(wǎng)站支持PHP腳本。
檢查方法是,在 IIS 根目錄下新建一個(gè)文本文件存為 php.php ,內(nèi)容如下:
CODE:
[Copy to clipboard]
打開瀏覽器,輸入:
,將顯示當(dāng)前服務(wù)器所支持 PHP 的全部信息,可以看到 Server API的模式為:ISAPI 。
或者利用PHP探針檢測(cè)
下載后解壓到你的站點(diǎn)根目錄下并訪問即可
三、安裝 MySQL :
對(duì)于MySQL4.0.26下載得到的是mysql-4.0.26-win32.zip,解壓到mysql-4.0.26-win32目錄雙擊執(zhí)行 Setup.exe 一路Next下一步,選擇安裝目錄為D:\php\MySQL和安裝方式為Custom自定義安裝,再一路Next下一步即可。
安裝完畢后,在CMD命令行中輸入并運(yùn)行:
CODE:
[Copy to clipboard]
D:\php\MySQL\bin\mysqld-nt -install如果返回Service successfully installed.則說明系統(tǒng)服務(wù)成功安裝
新建一文本文件存為MY.INI,編輯配置MY.INI,這里給出一個(gè)參考的配置
(
可以下載后直接保存到WINDOWS或者WINNT目錄使用)
CODE:
[Copy to clipboard]
[mysqld]
basedir=D:/php/MySQL
#MySQL所在目錄
datadir=D:/php/MySQL/data
#MySQL數(shù)據(jù)庫(kù)所在目錄,可以更改為其他你存放數(shù)據(jù)庫(kù)的目錄
#language=D:/php/MySQL/share/your language directory
#port=3306
set-variable = max_connections=800
skip-locking
set-variable = key_buffer=512M
set-variable = max_allowed_packet=4M
set-variable = table_cache=1024
set-variable = sort_buffer=2M
set-variable = thread_cache=64
set-variable = join_buffer_size=32M
set-variable = record_buffer=32M
set-variable = thread_concurrency=8
set-variable = myisam_sort_buffer_size=64M
set-variable = connect_timeout=10
set-variable = wait_timeout=10
server-id = 1
[isamchk]
set-variable = key_buffer=128M
set-variable = sort_buffer=128M
set-variable = read_buffer=2M
set-variable = write_buffer=2M
[myisamchk]
set-variable = key_buffer=128M
set-variable = sort_buffer=128M
set-variable = read_buffer=2M
set-variable = write_buffer=2M
[WinMySQLadmin]
Server=D:/php/MySQL/bin/mysqld-nt.exe保存后復(fù)制此MY.INI文件到C:\Windows ( Windows 2000 下為 C:\WINNT)目錄下
回到CMD命令行中輸入并運(yùn)行:
CODE:
[Copy to clipboard]
net start mysqlMySQL 服務(wù)正在啟動(dòng) .
MySQL 服務(wù)已經(jīng)啟動(dòng)成功。
將啟動(dòng) MySQL 服務(wù);
DOS下修改ROOT密碼:當(dāng)然后面安裝PHPMYADMIN后修改密碼也可以通過PHPMYADMIN修改
格式:mysqladmin -u用戶名 -p舊密碼 password 新密碼
例:給root加個(gè)密碼xqin.com
首先在進(jìn)入CMD命令行,轉(zhuǎn)到MYSQL目錄下的bin目錄,然后鍵入以下命令
mysqladmin -uroot password xqin.com
注:因?yàn)殚_始時(shí)root沒有密碼,所以-p舊密碼一項(xiàng)就可以省略了。
D:\php\MySQL\binmysqladmin -uroot password xqin.com回車后ROOT密碼就設(shè)置為xqin.com了
如果你下載的是 MySQL5.x或者M(jìn)ySQL4.1.x,例mysql-5.0.18-win32:解壓后雙擊執(zhí)行 Setup.exe ,Next下一步后選擇Custom自定義安裝,再Next下一步選擇安裝路徑這里我們選擇D:\php\MySQL,繼續(xù)Next下一步跳過Sign UP完成安裝。
安裝完成后會(huì)提示你是不是立即進(jìn)行配置,選擇是即可進(jìn)行配置。當(dāng)然一般安裝后菜單里面也有配置向?qū)ySQL Server Instance Config Wizar,運(yùn)行后按下面步驟配置并設(shè)置ROOT密碼即可
Next下一步后選擇Standard Configuration
Next下一步,鉤選Include .. PATH
Next下一步,設(shè)置ROOT密碼,建議社設(shè)置復(fù)雜點(diǎn),確保服務(wù)器安全!
Apply完成后將在D:\php\MySQL目錄下生成MY.INI配置文件,添加并啟動(dòng)MySQL服務(wù)
如果你的MySQL安裝出錯(cuò),并且卸載重裝仍無(wú)法解決,這里提供一個(gè)小工具系統(tǒng)服務(wù)管理器
,用于卸載后刪除存在的MYSQL服務(wù),重起后再按上述說明進(jìn)行安裝一般即可成功安裝
四、安裝 Zend Optimizer :
下載后得到 ZendOptimizer-2.6.2-Windows-i386.exe ,直接雙擊安裝即可,安裝過程要你選擇 Web Server 時(shí),選擇 IIS ,然后提示你是否 Restart Web Server,選擇是,完成安裝之前提示是否備份 php.ini ,點(diǎn)確定后安裝完成。我這里安裝到D:\php\Zend
以下兩步的目錄根據(jù)你自己的默認(rèn)WEB站點(diǎn)目錄來選,當(dāng)然也可以選擇到D:\php\Zend目錄
Zend Optimizer 的安裝向?qū)?huì)自動(dòng)根據(jù)你的選擇來修改 php.ini 幫助你啟動(dòng)這個(gè)引擎。下面簡(jiǎn)單介紹一下 Zend Optimizer 的配置選項(xiàng)。以下為本人安裝完成后 php.ini 里的默認(rèn)配置代碼(分號(hào)后面的內(nèi)容為注釋):
zend_extension_ts="D:\php\Zend\lib\ZendExtensionManager.dll"
;Zend Optimizer 模塊在硬盤上的安裝路徑。
zend_extension_manager.optimizer_ts="D:\php\Zend\lib\Optimizer-2.6.2"
;優(yōu)化器所在目錄,默認(rèn)無(wú)須修改。
zend_optimizer.optimization_level=1023
;優(yōu)化程度,這里定義啟動(dòng)多少個(gè)優(yōu)化過程,默認(rèn)值是 15 ,表示同時(shí)開啟 10 個(gè)優(yōu)化過程中的 1-4 ,我們可以將這個(gè)值改為 1023 ,表示開啟全部10個(gè)優(yōu)化過程。
調(diào)用phpinfo()函數(shù)后顯示:
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies with Zend Extension Manager v1.0.9, Copyright (c) 2003-2006, by Zend Technologies with Zend Optimizer v2.6.2, Copyright (c) 1998-2006, by Zend Technologies 則表示安裝成功。
PHP和ASP都不是同一種語(yǔ)言
什么是ASP語(yǔ)言?
Active server pags ( 動(dòng)態(tài)服務(wù)器主頁(yè), 簡(jiǎn)稱ASP ), 內(nèi)含于 Internet Information
Server(IIS)當(dāng)中,提供一個(gè)服務(wù)器端 (server-side) 的scripting 環(huán)境,讓你產(chǎn)生和執(zhí)行動(dòng)態(tài), 交互式, 高效率的站點(diǎn)服務(wù)器的應(yīng)用程序。你不必?fù)?dān)心瀏覽器是否能執(zhí)行你設(shè)計(jì)出來的Active Server Pages,你的站點(diǎn)服務(wù)器會(huì)自動(dòng)將Active Server Pages的程序碼,解釋為標(biāo)準(zhǔn)HTML格式的住頁(yè)內(nèi)容,在送到用戶端的瀏覽器上顯示出來。用戶端只要使用常規(guī)可執(zhí)行HTML碼的瀏覽器,
即可瀏覽Active Server Pages所設(shè)計(jì)的主頁(yè)內(nèi)容。
什么是PHP語(yǔ)言
PHP,一個(gè)嵌套的縮寫名稱,是英文“超級(jí)文本預(yù)處理語(yǔ)言”(PHP:Hypertext Preprocessor)的縮寫。PHP 是一種 HTML 內(nèi)嵌式的語(yǔ)言,PHP與微軟的ASP頗有幾分相似,都是一種在服務(wù)器端執(zhí)行的“嵌入HTML文檔的腳本語(yǔ)言”,語(yǔ)言的風(fēng)格有類似于C語(yǔ)言,現(xiàn)在被很多的網(wǎng)站編程人員廣泛的運(yùn)用。PHP 獨(dú)特的語(yǔ)法混合了 C、Java、Perl 以及 PHP 自創(chuàng)新的語(yǔ)法。它可以比 CGI 或者 Perl 更快速的執(zhí)行動(dòng)態(tài)網(wǎng)頁(yè)。用PHP做出的動(dòng)態(tài)頁(yè)面與其他的編程語(yǔ)言相比,PHP是將程序嵌入到HTML文檔中去執(zhí)行,執(zhí)行效率比完全生成HTML標(biāo)記的CGI要高許多;與同樣是嵌入HTML文檔的腳本語(yǔ)言JavaScript相比,PHP在服務(wù)器端執(zhí)行,成分利用了服務(wù)器的性能;PHP執(zhí)行引擎還會(huì)將用戶經(jīng)常訪問的PHP程序駐留在內(nèi)存中,其他用戶在一次訪問這個(gè)程序時(shí)就不需要誠(chéng)信編譯程序了,只要直接執(zhí)行內(nèi)存中的代碼就可以了,這也是PHP高效率的體現(xiàn)之一。PHP具有非常強(qiáng)大的功能,所有的CGI或者JavaScript的功能PHP都能實(shí)現(xiàn),而且支持幾乎所有流行的數(shù)據(jù)庫(kù)以及操作系統(tǒng)。
PHP 最初是1994年Rasmus Lerdorf創(chuàng)建的,剛剛開始只是一個(gè)簡(jiǎn)單的用Perl語(yǔ)言編寫的程序,用來統(tǒng)計(jì)他自己網(wǎng)站的訪問者。后來又用C語(yǔ)言重新編寫,包括可以訪問數(shù)據(jù)庫(kù)。在1995年以Personal Home Page Tools (PHP Tools) 開始對(duì)外發(fā)表第一個(gè)版本,Lerdorf寫了一些介紹此程序的文檔,并且發(fā)布了PHP1.0。在這早期的版本中,提供了訪客留言本、訪客計(jì)數(shù)器等簡(jiǎn)單的功能。以后越來越多的網(wǎng)站使用了PHP,別且強(qiáng)烈要且增加一些特性,比如循環(huán)語(yǔ)句和數(shù)組變量等等,在新的成員加入開發(fā)行列之后,在1995年中,PHP2.0發(fā)布了。第二版定名為PHP/FI(Form Interpreter)。PHP/FI加入了對(duì)mSQL的支持,從此建立了PHP在動(dòng)態(tài)網(wǎng)頁(yè)開發(fā)上的地位。到了1996年底,有15000個(gè)網(wǎng)站使用 PHP/FI;時(shí)間到了1997年中,使用PHP/FI的網(wǎng)站數(shù)字超過五萬(wàn)個(gè)。而在1997年中,開始了第三版的開發(fā)計(jì)劃,開發(fā)小組加入了 Zeev Suraski 及 Andi Gutmans,而第三版就定名為PHP3。2000年,PHP4.0又問世了,其中增加了許多新的特性。
PHP的特性包括:
開放的源代碼:所有的PHP源代碼事實(shí)上都可以得到。
PHP是免費(fèi)的。
基于服務(wù)器端:由于PHP是運(yùn)行在服務(wù)器端的,即使再多的用戶,再?gòu)?fù)雜的程序也不會(huì)影響運(yùn)行的速度。
跨平臺(tái):PHP可以運(yùn)行在UNIX、LINUX、WINDOWS下。
嵌入HTML:因?yàn)镻HP可以嵌入HTML語(yǔ)言,所以學(xué)習(xí)起來并不困難。
簡(jiǎn)單的語(yǔ)言:PHP堅(jiān)持腳本語(yǔ)言為主,與Java以C++不同。
效率高:PHP消耗相當(dāng)少的系統(tǒng)資源。
圖像處理:用PHP動(dòng)態(tài)創(chuàng)建圖像
PHP 3與PHP 4的比較
PHP3跟Apache服務(wù)器緊密結(jié)合的特性;加上它不斷的更新及加入新的功能;而且?guī)缀踔С炙兄髁髋c非主流數(shù)據(jù)庫(kù);再以它能高速的執(zhí)行效率,使得PHP在1999年中的使用站點(diǎn)已經(jīng)超過了150000萬(wàn)。加上它的源代碼完全公開,在 Open Source意識(shí)抬頭的今天,它更是這方面的中流砥柱。不斷地有新的函數(shù)庫(kù)加入,以及不停地更新的活力,使得PHP無(wú)論在UNIX、LINUX或是Windows的平臺(tái)上都可以有更多新的功能。它提供豐富的函數(shù),使得在程序設(shè)計(jì)方面有著更好的支持。
PHP4.0整個(gè)腳本程序的核心大幅更動(dòng),讓程序的執(zhí)行速度,滿足更快的要求。在最佳化之后的效率,已較傳統(tǒng)CGI或者ASP等程序有更好的表現(xiàn)。而且還有更強(qiáng)的新功能、更豐富的函數(shù)庫(kù)。無(wú)論您接不接受,PHP 都將在 Web CGI 的領(lǐng)域上,掀起巔覆性的革命。對(duì)于一位專業(yè)的Web Master 而言,它將也是必修課程之一。
PHP 4.0是更有效的,更可靠的動(dòng)態(tài)Web頁(yè)開發(fā)工具,在大多數(shù)情況運(yùn)行比 PHP 3.0要快,其腳本描述更強(qiáng)大并且更復(fù)雜, 最顯著的特征是速率比的增加。PHP4.0這些優(yōu)異的性能是PHP 腳本引擎重新設(shè)計(jì)產(chǎn)生的結(jié)果:引擎由 AndiGutmans 和 Zeev Suraski從底層全面重寫。PHP4.0 腳本引擎 ——Zend 引擎,使用了一種更有效的“編譯——執(zhí)行”方式, 而不是PHP 3.0 采用的“執(zhí)行 ——當(dāng)解析時(shí)”模型。
PHP4在3.0版的基礎(chǔ)上增加或增強(qiáng)了許多有用的特征,主要如下:
(1)別名:在PHP4中,可以利用引用為變量賦值,這給編程帶來了很大的靈活性。
(2)擴(kuò)充了API 模塊:PHP 4.0 為擴(kuò)展的 API 模塊的提供了擴(kuò)展PHP接口模塊, 它比舊的 API 版本顯著地快。 PHP 模塊已有的及最常用的接口多數(shù)被轉(zhuǎn)換到使用這個(gè)擴(kuò)展的接口。
(3)自動(dòng)資源釋放:PHP4增加了引用計(jì)數(shù)功能,這種新技術(shù)的引入使PHP4具有了自動(dòng)內(nèi)存管理功能,減輕了開發(fā)人員的負(fù)擔(dān)。
(4)布爾類型:PHP 4.0 支持布爾類型。
(5)進(jìn)程生成:在 UNIX 環(huán)境下的 PHP 4.0 提供了一個(gè)很智能和通用的生成進(jìn)程, 使用了一種名為基于automake/libtool的系統(tǒng)生成技術(shù)。
(6)COM/DCOM 支持:PHP 4.0 提供 COM/DCOM 支持 ( 僅用于Windows 環(huán)境 ) 可以無(wú)縫地存取和訪問 COM 對(duì)象。
(7)與PHP 3.0 兼容性很好:PHP 4.0 是與 PHP 3.0 代碼向后兼容性接近100% 。由于 PHP 4 的改進(jìn)的體系結(jié)構(gòu),兩者有一些細(xì)微的差別,但是大多數(shù)人將可能永遠(yuǎn)不可能遇上這種情況。
PHP介紹
(8)配置:PHP4重新設(shè)計(jì)和增強(qiáng)了PHP。ini文件,這使得用PHP。ini來配置PHP顯得極為容易,這個(gè)文件可以在運(yùn)行時(shí)被Apache(unix系統(tǒng))或由Windows 注冊(cè)(Windows 環(huán)境)。
(9)加密支持:PHP4實(shí)現(xiàn)了完整的加密, 這些加密功能是一個(gè)完整的mycrypt庫(kù),并且 PHP 4.0 支持哈希函數(shù)。Blowfish,TripleDES,MD5,并且SHA1 也是可使用的一些加密算法。
(10)類型檢查:PHP 4.0 支持同一操作符用于評(píng)類型檢查:“===“( 3 等號(hào)運(yùn)算符 ), 為在兩個(gè)值和其類型之間作檢查。例如,“ 3 ” ===3 將視為假 ( 類型是不同的 ), 而“ 3 ” ==3 ( 相等判斷 ) 將視為真。
(11)FTP 支持:PHP 4.0 支持 FTP 。通常, 你會(huì)為通過一個(gè)調(diào)制解調(diào)器連接下載一個(gè)大文件提供一個(gè)接口。然而, 如果你確實(shí)有需要,可以使用PHP 。
(12)PHP4新增函數(shù)或功能增強(qiáng)函數(shù):PHP 4.0 新增了許多函數(shù),同時(shí)也將許多現(xiàn)有的函數(shù)功能進(jìn)行了增強(qiáng),以下是一些例子。 array_count_values() eval() foreach() nclude() ob_end_clean() ob_end_flush() ob_get_contents() ob_start() strip_tags() unset()
(13)“here”打?。篜HP 4.0 的“Here”打印是與Perl類似的, 盡管完全不相同?!癏ere”是打印大容量文章的一個(gè)有用的方法,例如在 HTML文件中,不會(huì)漏掉任何一個(gè)字符,例如目錄標(biāo)記。
(14)HTTP Session fallback 系統(tǒng):為 HTTP Session管理的一個(gè) fallback 系統(tǒng)在 PHP 4.0被實(shí)現(xiàn) 。缺省情況下,Session標(biāo)識(shí)符由cookies存儲(chǔ)。如果沒有cookies支持或一項(xiàng)cookies任務(wù)失敗,Session標(biāo)識(shí)符自動(dòng)被創(chuàng)建并在 URL 的查詢字符串中被攜帶。
(15)ISAPI 支持:PHP 4.0 能作為一個(gè)個(gè)性化的 ISAPI 模塊作為 IIS插件 。這比 PHP 3.0 更有效, 它作為一個(gè)外部的程序來運(yùn)行。
(16)內(nèi)存:PHP 4.0 能更有效的使用內(nèi)存, 導(dǎo)致較少的內(nèi)存占用消耗,這主要?dú)w功于引用計(jì)數(shù)技術(shù)的實(shí)現(xiàn)。
(17)其他類成員函數(shù):在 PHP 4.0 你能在成員函數(shù)本身的作用域或全局范圍內(nèi)調(diào)用其他類的成員函數(shù)。例如,你能用一個(gè)子函數(shù)覆蓋父函數(shù),并在子函數(shù)中調(diào)用父函數(shù)。
(18)多維數(shù)組:在 PHP 4.0 ,利用GET,POST,Cookies的進(jìn)行的數(shù)據(jù)傳輸支持多維數(shù)組。
(19)個(gè)性化的 HTTP Session支持:HTTP Session處理, 包括 fallback 系統(tǒng)管理,在 PHP 4.0被它的新庫(kù)函數(shù)實(shí)現(xiàn) 。在版本 3.0 中處理Session要求使用 PHPLIB 和第三方的庫(kù)函數(shù), 它比把Session直接地由 PHP 支持慢了許多。
(20)個(gè)性化的 Java 支持:PHP 4.0 支持和java的交互。這種個(gè)性化的Java 支持為PHP 在 Java 對(duì)象上創(chuàng)建和使用方法提供一個(gè)簡(jiǎn)單并且有效的工具。
21)對(duì)象和數(shù)嵌套組:PHP 4.0 實(shí)現(xiàn)了功能更加強(qiáng)大的對(duì)象, 移去了 PHP 3.0存在的種種句法限制。對(duì)象能在數(shù)組以內(nèi)被嵌套并且反過來也如此, 可以根據(jù)你的需要實(shí)現(xiàn)嵌套。
(22)面向?qū)ο蟮木幊蹋篜HP 4.0 為面向?qū)ο蟮木幊毯蜆?gòu)造類及對(duì)象提供擴(kuò)展的功能和新特征。PHP4實(shí)現(xiàn)了對(duì)象重載,引用技術(shù)等新技術(shù)。
(23)對(duì)象重載支持:對(duì)象重載語(yǔ)法允許第三方的基于面向?qū)ο蟮念悗?kù)使用 PHP4 的面向?qū)ο蟮奶卣鞔嫒∷麄冏陨淼墓δ?。使用這個(gè)特征的一個(gè) COM 模塊已經(jīng)被實(shí)現(xiàn)了。
(24)輸出緩沖支持:PHP 提供了一個(gè)輸出緩沖函數(shù)集合。輸出緩沖支持允許你寫包裹函數(shù)功能壓縮緩沖區(qū)。在 PHP4 的輸出緩沖支持允許 HTML 頭信息存放, 無(wú)論 HTML的正文是否輸出。頭信息( (header(), content type, and cookies ) 不采用緩沖 。
(25)增加了PCRE 庫(kù):PHP 4.0 包括一個(gè) Perl 兼容的正則表達(dá)式 (PCRE ) 庫(kù), 和正常regex庫(kù)一起與 PHP 綁定。split 和replace PCRE 功能被支持。PCRE 和 Perl 正規(guī)表達(dá)式之間有一些細(xì)微差別。
(26)PHP.ini 文件:PHP.ini文件在 PHP4.0 被重新設(shè)計(jì), 使用的 PHP 的配置PHP.ini是更容易并且更有效的。全部文件能被Apache 在運(yùn)行時(shí)間操作 ( 在 Apache環(huán)境 下 ) 或由 Windows 注冊(cè)表 ( 在 Windows 下面 ) 。被加入PHP.ini文件的配置指令自動(dòng)地在所有相關(guān)的模塊中被支持。
(27)引用計(jì)數(shù):PHP 4.0 為系統(tǒng)中的每個(gè)數(shù)值提供了引用計(jì)數(shù), 包括資源。一旦一個(gè)資源不再被任何變量引用,它自動(dòng)地被釋放以節(jié)省內(nèi)存資源。利用這個(gè)特征的最明顯的例子一個(gè)內(nèi)置SQL查詢的循環(huán)語(yǔ)句。在PHP 3.0中 ,每次遞歸另外的 SQL 結(jié)果集合重復(fù)申請(qǐng)內(nèi)存,直到腳本執(zhí)行完畢,這些結(jié)果集合占用的內(nèi)存才被釋放。
(28)支持引用:通過引用可以改變一個(gè)變量的值。
(29)函數(shù)的運(yùn)行時(shí)綁定:PHP 4.0 的運(yùn)行時(shí)間綁定功能允許你在他們被聲明以前調(diào)用, 無(wú)論聲明是否在代碼以后或是在運(yùn)行時(shí)間。
(30)類的運(yùn)行時(shí)信息:PHP 4.0 支持在運(yùn)行時(shí)刻存取下列類信息:一個(gè)對(duì)象的類名,一個(gè)對(duì)象的父類的類名字,以及對(duì)象函數(shù)所在的名字。
(31)服務(wù)器抽象層:為支持Web服務(wù)器提供了增強(qiáng)型 SAPI ( 服務(wù)器 API ) 接口,是 PHP 4。0 不可分的一部分。這個(gè)服務(wù)器抽象層,提供了通用的WEB服務(wù)器接口支持,支持多線程WEB服務(wù)器,為大多數(shù)的WEB服務(wù)器提供透明的支持, 這些服務(wù)器包括 Apache ,IIS ( ISAPI ), 以及 AOL 服務(wù)器。
(32)語(yǔ)法的點(diǎn)亮顯示:PHP 4.0 語(yǔ)法的點(diǎn)亮顯示允許開發(fā)者看見源代碼而不是腳本, 這個(gè)功能比PHP 3。0中的更有效。它跑得更快,更執(zhí)行得更好,并且產(chǎn)生更緊湊的HTML代碼。
(33)由引用改變變量的值:PHP 4.0 由引用支持可變的賦值, “關(guān)聯(lián)”的2個(gè)變量之中個(gè)的任何一個(gè)的值被改變,另外的變量的值同樣被改變,這類似與C中的指針類型。
(34)在引用字符串中的變量引用:PHP 4.0 增強(qiáng)了在引用字符串中的變量引用。例如, 這個(gè)例子在 PHP 3.0中 是不可能做到的 : print “${a[0]-bingo}“
PHP 在數(shù)據(jù)庫(kù)方面的豐富支持,也是它迅速走紅的原因之一,它支持下列的數(shù)據(jù)庫(kù)或是數(shù)據(jù)文件:
· Adabas D
· DBA
· dBase
· dbm
· filePro
· Informix
· InterBase
· mSQL
· Microsoft SQL Server
· MySQL
· Solid
· Sybase
· ODBC
· Oracle 8
· Oracle
· PostgreSQL
而在 Internet 上它也支持了相當(dāng)多的通訊協(xié)議 (protocol),包括了與電子郵件相關(guān)的 IMAP, POP3;網(wǎng)管系統(tǒng) SNMP;網(wǎng)絡(luò)新聞 NNTP;帳號(hào)共用 NIS;全球信息網(wǎng) HTTP 及 Apache 服務(wù)器;目錄協(xié)議 LDAP 以及其它網(wǎng)絡(luò)的相關(guān)函數(shù)。
除此之外,用 PHP 寫出來的 Web 后端 CGI 程序,可以很輕易的移植到不同的操作系統(tǒng)上。例如,先以 Linux 架的網(wǎng)站,在系統(tǒng)負(fù)荷過高時(shí),可以快速地將整個(gè)系統(tǒng)移到 SUN 工作站上,不用重新編譯 CGI 程序。面對(duì)快速發(fā)展的 Internet,這是長(zhǎng)期規(guī)劃的最好選擇。
在加入其它的模塊之后,提供了更多樣的支持如下:
· 英文拼寫檢查
· BC 高精確度計(jì)算
· 西洋歷法
· PDF 文件格式
· Hyperwave 服務(wù)器
· 圖形處理
· 加密與解碼功能
· 散列處理
· WDDX 功能
· qmail 與 vmailmgr 系統(tǒng)
· 壓縮文件處理
· XML 解析
除此之外,一般語(yǔ)言有的數(shù)學(xué)運(yùn)算、時(shí)間處理、文件系統(tǒng)、字符串處理、行程處理等功能,它一樣都不缺。再加上它是免費(fèi)的系統(tǒng),使得成本與效益比,幾乎等于無(wú)限大!
3.3 PHP 及其語(yǔ)言比較
無(wú)可置疑的,寫 CGI 的方式有很多種,而 PHP 只是其中的一種選擇罷了。對(duì)資深的網(wǎng)站站長(zhǎng)來說,CGI 的寫作語(yǔ)言應(yīng)是隨著需求而更動(dòng)。畢竟,在一個(gè)對(duì)系統(tǒng)反映速度要求極嚴(yán)格的系統(tǒng)而言,恐怕只有 NSAPI 語(yǔ)言寫的 CGI 程序才能符合要求了。在其它的場(chǎng)合,相信使用 PHP 來作為 CGI 的語(yǔ)言是游刃有余,而且是最適合的。
以下是幾種語(yǔ)言的比較:
程序語(yǔ)言 PHP ASP CGI NSAPI ISAPI
操作系統(tǒng) 均可 Win32 均可 均可 Win32
Web服務(wù)器 幾種 IIS 均可 Netscape Server IIS
執(zhí)行效率 快 快 慢 極快 極快
穩(wěn)定性 佳 中等 最高 差 差
開發(fā)時(shí)間 短 短 中等 長(zhǎng) 長(zhǎng)
修改時(shí)間 短 短 中等 長(zhǎng) 長(zhǎng)
程序語(yǔ)言 PHP VB 不限 C/C++ C/Delphi
網(wǎng)頁(yè)結(jié)合 佳 佳 差 差 差
學(xué)習(xí)門檻 低 低 高 極高 高
函數(shù)支持 多 少 不定 中等 少
系統(tǒng)安全 佳 極差 最佳 佳 尚可
使用站點(diǎn) 超多 多 多 極少 少
改版速度 快 慢 無(wú) 慢 慢
其中的 PHP 可用在幾種 Web 服務(wù)器上;傳統(tǒng) CGI 就不限是哪種操作系統(tǒng)或 Web 服務(wù)器平臺(tái);NSAPI 一定要在 Netscape 的服務(wù)器 (如 Netscape Enterprise Server 或 FastTrack Server) 上才可以執(zhí)行,但可支持多種操作系統(tǒng) (UNIX 或 Win32);ASP 及 ISAPI 只在 IIS 上有完整的功能。
在穩(wěn)定性上,由于 NSAPI 或 ISAPI 是動(dòng)態(tài)連結(jié)的方式,因此在執(zhí)行若出現(xiàn)問題,會(huì)使得 Web 服務(wù)器一起癱瘓。而 ASP 在吾人實(shí)際應(yīng)用經(jīng)驗(yàn)上,隔陣子就會(huì)使系統(tǒng)不穩(wěn)定,需要重開操作系統(tǒng)。PHP 在許多的站點(diǎn)使用上,不但長(zhǎng)期使用都沒有問題,而且程序的穩(wěn)定性也不錯(cuò)。當(dāng)然最穩(wěn)的還是傳統(tǒng) CGI 程序,因?yàn)樗怯刹僮飨到y(tǒng)負(fù)責(zé)控制,不會(huì)因 CGI 程序的錯(cuò)誤導(dǎo)致 Web 服務(wù)器的不穩(wěn)定。
在開發(fā)及維護(hù)時(shí)間上,PHP 及 ASP 都有不錯(cuò)的表現(xiàn)。而 NSAPI 及 ISAPI 則需要長(zhǎng)時(shí)間的開發(fā)過程,在穩(wěn)定上線后,這二種語(yǔ)言反倒是效率最佳的方法。傳統(tǒng)的 CGI 程序則要視開發(fā)工具語(yǔ)言而定了,用 Perl 或是 shell script 不需要編譯的過程,直接就可以執(zhí)行,若用 Delphi 或 VC/BCB 甚至用組合語(yǔ)言等都要經(jīng)過編譯才能執(zhí)行,至于用 VB 來寫傳統(tǒng) CGI,唉....。
要比較和網(wǎng)頁(yè)結(jié)合的能力,PHP 和 ASP 是并駕齊驅(qū)的,其它的方式就不能內(nèi)嵌 HTML 語(yǔ)法了。而這也是影響開發(fā)時(shí)間的因素之一。
就系統(tǒng)安全性而言,ASP 是最差的,在沒有經(jīng)過微軟的 IIS Service Pack 處理過,使用 ::$DATA 就可以看到 ASP 的源代碼,這真是叫人不敢領(lǐng)教。當(dāng)然,傳統(tǒng) CGI 的程序,由于是由操作系統(tǒng)直接管理,要破解的難度最高,黑客必須由操作系統(tǒng)下手,而不能由 Web 服務(wù)器下手。PHP 在許多商業(yè)及非商業(yè)使用時(shí),也沒有聽過有什么安全的問題。
在新增功能及改版方面,傳統(tǒng)的 CGI 由于不受任何語(yǔ)言限制,沒有這方面的問題。PHP 是最有活力的,數(shù)天至數(shù)周就有一個(gè)新版本出現(xiàn),每次的新版,就代表更多的功能及更改更多的錯(cuò)誤。其它的 ASP、NSAPI、ISAPI 就視它的 Web 服務(wù)器改版速度了,ASP要等到 IIS 5.0 出現(xiàn)時(shí),才會(huì)有 ASP 3.0。
總而言之,在 Web 的后端 CGI 程序,就像魚與熊掌一般,沒有高效能又開發(fā)方便的選擇。不過相信 PHP 是處于開發(fā)容易、效能亦不錯(cuò)的平衡點(diǎn)上。
如果說ASP是一個(gè)COM,那么PHP說的更精確了可以說PHP是一個(gè)純粹的Script翻譯器。這也是PHP由3.0升級(jí)為4.0的一個(gè)重大原因,在4。0這個(gè)版本中,由于重寫了語(yǔ)法分析器,從而加快了PHP整體的效能。而且從中你也就會(huì)明白為什么PHP需要支持這種或是那種擴(kuò)充功能時(shí)它一定要與相應(yīng)系統(tǒng)的lib庫(kù)進(jìn)行再編繹的原因。正因?yàn)樗钦诘摹胺g器”,所以它是將script翻譯成為需要執(zhí)行的函數(shù),再去執(zhí)行它們,外部擴(kuò)充不能由一些“動(dòng)態(tài)加載”的方式進(jìn)行,所以只能靜態(tài)的編繹進(jìn)PHP中(這只能在windows中除外)。
幫你測(cè)試了下,你里面有句寫少了
$backColor=ImageColorAllocate($im,rand(220,255),rand(220,255));
RGB值是3個(gè)的,再加個(gè)rand(220,255)變成
$backColor=ImageColorAllocate($im,rand(220,255),rand(220,255),rand(220,255));
這樣就OK了
你這里應(yīng)該是運(yùn)行到?$backColor=ImageColorAllocate這里就出錯(cuò)了,所以圖片沒有生成,所以出現(xiàn)你看到的錯(cuò)誤,因?yàn)檫@個(gè)函數(shù)你少寫了個(gè)參數(shù)。
?
phpinfo();
?
這樣可以看到php相關(guān)信息,你看看GD相關(guān)的信息
開啟的話GD?Support??是enabled?的