让你的PHP4和PHP5共存
來源:http://www.sudu.cn/info/html/edu/20071226/35135.html
一,本文涉及軟件極其版本:?
windows 2000 professional/xp?
apache 1.3.28 for win?
microsoft internet server information(iis6)?
php 4.3.3(4.3.5), php 5.0.0 beta(5.0.0rc1)?
mysql 3.23.57(3.23.58)?
二,大致步驟:(二,三任選)?
1.分別安裝各版本的php?
2.安裝apache,設(shè)置apache 和 php?
3.安裝iis,并在iis中設(shè)置php各版本[注1]?
4.安裝mysql?
三,安裝前準備:?
將所須程序copy至各文件夾,本文按照以下目錄結(jié)構(gòu)進行,你可以根據(jù)需要自行修改^^:?
c:/httpd/apache?
c:/httpd/mysql?
c:/httpd/php4?
c:/httpd/php5?
c:/httpd/php-includes?
c:/httpd/phpmyadmin?
c:/httpd/tmp?
c:/httpd/www?
到c:/winnt/system32/drivers/etc(xp是c:/windows/system32/drivers/etc)文件夾下,找到hosts文件(沒有?! @_@ 那么.... :d ),在底下增加?
127.0.0.1 php4 # waiter php 4?
127.0.0.1 php5 # waiter php 5?
吼吼...如果你懂~~自己修改其他名字吧 8d 我們繼續(xù)...?
保存文件...?
四,安裝各版本php?
假設(shè)你已經(jīng)下載你需要的各版本php...(哪下載?? :p 自己找吧...)?
這里以4.3.3和5.0.0-beta為例...(4.3.5vs5.0.0rc1我也試了.如果和你環(huán)境不一樣不要怪我 :( ,大同小異,自己琢磨吧) ;)?
㈠安裝php4.3.3?
①解壓縮下載文件(:) 地球人都知道)?
②將php4.3.3中的php.exe, php.ini-recommended, phpêmbed.lib, php4ts.dll, php4ts.lib, dll/*.* 和 extensions/*.* 拷貝到c:/httpd/php4?
③修改php.ini-recommended:?
extension_dir = "c:/httpd/php4/extensions/"?
cgi.force_redirect = 0?
保存為php.ini(就在c:/httpd/php4/下)?
㈡安裝php5.0.0beta?
①解壓縮...?
②將php.exe, php.ini-recommended, phpêmbed.lib, php4ts.dll, php4ts.lib, dll/*.* 和 extensions/*.*拷貝至c:httpdphp5?
如果是php5.0.0rc1,那么沒有dll和extensions目錄,只有ext--就是extensions拉?
如果...你是mysql的忠實用戶,別忘了把libmysql.dll也拷過去[注2].?
③修改php.ini-recommended:?
extension_dir = "c:/httpd/php5/extensions/"?
cgi.force_redirect = 0?
如果是php4.0.0rc1,那么extension_dir = "c:/httpd/php5/ext/"?
保存為php.ini(就在c:/httpd/php5/下)?
五,配置apache?
打開c:/httpd/apache/conf/httpd.conf,在底下追加一些設(shè)置:?
<virtualhost *:80>?
serveradmin test@php433?
servername php4?
serveralias www?
documentroot "c:/httpd/www"?
<directory "c:/httpd/www">?
options indexes followsymlinks multiviews?
allowoverride none?
order allow,deny?
allow from all?
</directory>?
scriptalias /php4/ "c:/httpd/php4/"?
addtype application/x-httpd-php .php?
action application/x-httpd-php "/php4/php.exe"?
</virtualhost>?
<virtualhost *:80>?
serveradmin test@php500?
servername php5?
documentroot "c:/httpd/www"?
<directory "c:/httpd/www">?
options indexes followsymlinks multiviews?
allowoverride none?
order allow,deny?
allow from all?
</directory>?
scriptalias /php5/ "c:/httpd/php5/"?
addtype application/x-httpd-php .php?
action application/x-httpd-php "/php5/php-cgi.exe"?
</virtualhost>?
六,關(guān)于php5和mysql?
mysql的安裝,我就不多說了,自己下了裝吧...(跳過這段沒意見吧? )?
你可以通過修改php.ini,來加載mysql... (難過...)?
七,測試...?
啟動apache(如果httpd.conf配置有錯,會有出錯提示...),然后地址欄輸入http://php4和http://php5就分別啟動php4和php5咯...爽嗎? :d :d :d [注3]?
相信對廣大php程序員,以及想學php5又不想放棄php4的同志來說,這會是個不錯的方法.enjoy it!?
總結(jié)一下:?
其實思路很簡單,利用cgi方式實現(xiàn)php4和php5的共存.我找了很多資料,這個算最簡單最實用了.不過只適合大家本機玩,千萬別在服務(wù)器上這么搞...否則~后果自負...別找我?
如果你按上面方法有問題,可以嘗試其他途徑,這里羅列一些國外的成功案例:?
http://wiki.coggeshall.org/37.html?
http://www.circle.ch/blog/p1387.html?
http://www.schlitt.info/applications/blog/..._5_prallel.html?
有興趣的可以繼續(xù)學習下...?
繼續(xù)關(guān)于本方案的一點重要補充:?
php4和php5共存,存在一個php.ini沖突的問題...?
大家都知道,一般做法是需要將php.ini復制到系統(tǒng)文件夾下(c:winnt or c:windows).如果同時安裝多版本,勢必會造成沖突...?
其實,如果大家仔細閱讀php安裝文檔,會有如下一段文字:?
does where c i cut to could the php.ini? the php.ini files is only searched in two places: 1) in your apache installation directory (e.g. c:apacheapache) 2) in your %systemroot% directory.?
而我們正是使用的第一種方式...(是不是官方早料到有這種情況??god knows...)?
上兩張安裝后的 phpinfo 的圖:?
我在上述環(huán)境下測試成功了...如果你遇到困難可以留言或到討論區(qū)一起討論。?
結(jié)語:?
偶不太會寫教程之類的東東...自己看了懂,卻不是很容易讓別人理解,大家只好忍讓了.?
雖然過程比較簡單,不過費了我不少時間(有兩個地方...我找的資料有誤,把我害慘了),這個大a作證拉...( :d 大a睡了一覺起來上廁所,我還在...此處少兒不宜,刪去500字)?
php5時代越來越近,趕緊深入了解去吧...?
-------------------------------------------------------------------------?
[注1]:?
本來想寫for iis的...可實在不想在自己機器上裝個沒用的東西(對我而言 :( ),so...標題列了,卻放棄寫了...對部分看客說聲抱歉...?
[注2]:?
這里說點題外話:在php5.0.0rc1中,不知道大家看到ext下有個mysqli.dll,以及php.exe同層目錄下有個libmysqli.dll么?奇怪這是干嘛的?其實這是官方針對mysql的新版(4.1.0好象是...吧)的一個升級,對于高版本mysql玩家可以試試...據(jù)說支持mysql一些新特性哦?
[注3]:?
在啟動apache時,如果看到什么"overlap on port 80"...不要著急,在httpd.conf中,把namevirtualhost *:80前的注釋去了即可...(這個地方難了我好長時間...只怪apache設(shè)置不熟悉.不過這次算好好把apache的設(shè)置看了遍,還是有收獲)?
總結(jié)
以上是生活随笔為你收集整理的让你的PHP4和PHP5共存的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 取代visio的绘图神器Diagrams
- 下一篇: 动态规划算法php,php算法学习之动态