天天看點

windows下 php由5.2更新 5.4.20的蛋疼過程。。

       在IDC 工作大半年了,還沒有畢業,剛剛答辯完畢,感覺有蛋疼了,每天面對客戶奇葩問題,面對奇葩客戶【PS:不是裝逼的-.-,隻是發現小白客戶真可怕】,現在每天處理一些瑣碎的事情,感覺人生的經驗槽正在慢慢積蓄能量了,不禁一種舒爽的感覺啊~,IDC的大家應該了解點,小問題不會的問百度,問我哥(谷歌),大問題備份資料重裝一下下~反正有模闆。

今天遇到一個問題就是客戶模闆程式要用到 php 5.4版本以上的,客戶用的獨立伺服器,PHP更新速來麻煩的蛋疼【當然這是我以為的,新手小問題自己也不免興師動衆的樣子..】,5.2版本的PHP 算是老版本了吧,但是我們這邊的IDC很多預設都是安裝的這個,然後就要進行各種操作。

       這邊我就列一下今天進行的步驟,已記錄此次操作過程,也為以後檢視提供點便捷。。。

1.Php5.4.20    

2.Microsoft Visual C++ 2008

3.FastCGI 1.5

安裝流程

   先解壓php-5.4.20-Win32-VC9-x86.zip  或者 php-5.4.20-nts-Win32-VC9-x86 【解壓到C根目錄下php目錄下】

   安裝vcredist_x86.exe

   在安裝fcgisetup_1.5_rtw_x86_XiaZaiBa.zip

為什麼是有兩個呢? 他的不同點就是多了 nts 這三個字母,會導緻的結果也很不通。

Non Thread Safe就是非線程安全;

 Thread Safe 是線程安全;

官方并不建議你将Non Thread Safe 應用于生産環境,但是不使用的話有時會出現一些蛋疼的問題。。。

1.然後需要配置PHP    

首先将php目錄中的php.ini-development或php.ini-production

   php.ini-development 适合開發程式使用(測試用)

   php.ini-production 擁有較高的安全性設定,則适合上線當産品使用

   打開php.ini修改以下内容

       1、找到; extension_dir = ”./”這行,修改為extension_dir = ” D:\php\php5\ext”  (注意去掉前面的“;“)

       2、;date.timezone =  修改為date.timezone =”asia/shanghai” (注意去掉前面的“;“引号為英文引号)

       3、short_open_tag 設定為On(注意去掉前面的“;“引号為英文引号)

       4、extension=php_mbstring.dll(寬字元支援,推薦選中 去掉前面的“;“)

       5、extension=php_gd2.dll(PHP的GD庫支援,必選 去掉前面的“;“)

       6、extension=php_mysqli.dll(去掉前面的“;“)

       7、extension=php_mysql.dll(使PHP支援MySQL,必選去掉前面的“;“)

   然後儲存退出

2.修改fcgiext.ini 檔案

打開C:\WINDOWS\system32\inetsrv\fcgiext.ini

   在最後添加以下内容

   [Types]

       php=PHP

       [PHP]

       ExePath=D:\php\php5\php-cgi.exe  // (這裡的路徑是你的php解壓後的路徑)

   儲存退出

3.打開Internet 資訊服務(IIS)管理器

點選确認,重新開機IIS  然後就可以用探針測試了。。

探針寫法應該都會,這邊也提供一下。

<?php

phpinfo():

?>

然後就能測試了。

假如說這麼順利的話,也不用寫這篇文章了,這是後探針打開應該是正常的,如果是模闆程式的話也可以進行安裝,但是打開頁面會提示

會提示要zend,提示要加載zend,但是我記得5.4的不要zend的啊,然後就搜尋,發現是需要Zend Guard Loader 這個元件,需要去官網下載下傳,他是一個隻有0.06M的東西,是目前市面上最成熟的PHP源碼加密産品。

   然後下載下傳下來繼續進行配置

   下載下傳好後解壓壓縮包,找到目錄下的 ZendLoader.dll 檔案,将它放到你的php目錄下ext下,再編輯php.ini文    件,添加一段代碼(如):

[Zend.loader] zend_loader.enable=1 zend_loader.disable_licensing=1 zend_loader.obfuscation_level_support=3 zend_loader.license_path= zend_extension="你的PHP安裝目錄\ext\ZendLoader.dll"

做完這些,默默地重新開機IIS 然後在測試,打開還是不行仍然提示錯誤,錯誤類型仍然如此。

   繼續檢視網上同樣問題的朋友們,發現zend loader 他隻能用于 非線程安全 的PHP版本中,也就是說PHP 要重裝,而且要裝帶有 nts的字段的 php 包,什麼情況下可以判斷呢,在探針中出現

<code>       PHP Extension 20090626</code>

<code>  Zend Extension 220090626</code>

<code>  Zend Extension Build API220090626,TS,VC9</code>

再找一下 Thread Safety 選項,如果對應是 enable 就是 ts的 是disenable 就是 nts的,然後在返工重做吧.....

這裡提供一下我的軟體包 , 希望對同蛋疼的朋友有幫助。

本文出自 “” 部落格,請務必保留此出處