win2008 R2 下 IIS7.5+PHP5.2.17+Mysql5.5.16+Zend3.3.3
前言
windows Server 2008 R2 下面IIS7.5已經(jīng)對fastcgi的支持有了很大改進(jìn),還在使用PHP-ISAPi模式的朋友可以試一下。
鑒于目前php5.3.1還不能完美的支持主流php系統(tǒng),不建議大家使用!
Windows版的PHP從版本5.2.1開始有Thread Safe(線程安全)和None Thread Safe(NTS,非
線程安全)之分,這兩者不同在于何處?到底應(yīng)該用哪種?這里做一個簡單的介紹。
從2000年10月20日發(fā)布的第一個Windows版的PHP3.0.17開始的都是線程安全的版本,這是由
于與Linux/Unix系統(tǒng)是采用多進(jìn)程的工作方式不同的是Windows系統(tǒng)是采用多線程的工作方式。如果
在IIS下以CGI方式運(yùn)行PHP會非常慢,這是由于CGI模式是建立在多進(jìn)程的基礎(chǔ)之上的,而非多線程。
一般我們會把PHP配置成以ISAPI的方式來運(yùn)行,ISAPI是多線程的方式,這樣就快多了。但存在一個
問題,很多常用的PHP擴(kuò)展是以Linux/Unix的多進(jìn)程思想來開發(fā)的,這些擴(kuò)展在ISAPI的方式運(yùn)行時就
會出錯搞垮IIS。因此在IIS下CGI模式才是PHP運(yùn)行的最安全方式,但CGI模式對于每個HTTP請求都
需要重新加載和卸載整個PHP環(huán)境,其消耗是巨大的。
為了兼顧IIS下PHP的效率和安全,微軟給出了FastCGI的解決方案。FastCGI可以讓PHP的進(jìn)程重
復(fù)利用而不是每一個新的請求就重開一個進(jìn)程。同時FastCGI也可以允許幾個進(jìn)程同時執(zhí)行。這樣既解決
了CGI進(jìn)程模式消耗太大的問題,又利用上了CGI進(jìn)程模式不存在線程安全問題的優(yōu)勢。
因此,如果是使用ISAPI的方式來運(yùn)行PHP就必須用Thread Safe(線程安全)的版本;而用
FastCGI模式運(yùn)行PHP的話就沒有必要用線程安全檢查了,用None Thread Safe(NTS,非線程安全)
的版本能夠更好的提高效率。
windows2008 Server R2下面環(huán)境搭建分三種情況,大家可以根據(jù)自己的運(yùn)行需要選擇。
1、 IIS7.5+PHP+Mysql+Wincache 1.0RC
這個環(huán)境組合大家已經(jīng)看出來了 沒有zend。
各個版本分別是:
PHP5.2.17–請注意是非線程安全版本 PHP 5.2.17 Non-thread-safe zip package,
MYSQL5.0 x64,
Wincache1.0rc for5.2,這個大家可以去微軟IIS官方下載,他將極大地提高您的系統(tǒng)運(yùn)行效率!
如果您的服務(wù)器運(yùn)行的都是開源程序,不需要zend,強(qiáng)烈建議您使用這個配置!
2、 IIS7.5+PHP+Mysql+Zend+Xcache
此組合版本分別是:
Php-5.2.17-win32-vc6-x86.zip PHP請注意是線程安全版本
mysql-essential-5.0.91-winx64.msi
ZendOptimizer3.3.3-windows x86
Xcache1.3 for XCache-1.3.0-php-5.2.17-Win32-VC6-x86.zip
此組合可以完美運(yùn)行當(dāng)今主流的PHP系統(tǒng),但是美中不足的是使用PHP線程安全版本無法加載wincache,很遺憾的一點(diǎn)!但是可以用xcache作為補(bǔ)充,但是相比PHP-ISAPI模式已經(jīng)好多了!
3、 鑒于IIS7.5的新特性,可以根據(jù)每個站點(diǎn)的具體情況定制屬于他的專有運(yùn)行環(huán)境!
在iis7.5 fastcgi模式下,IIS官方建議為每個站點(diǎn)設(shè)立單獨(dú)的應(yīng)用池,并且每個站點(diǎn)都可以擁有它自己的PHP.ini以及fastcgi.exe.允許在一臺主機(jī)上運(yùn)行不同版本的PHP.[1]
[1]以上部分內(nèi)容引自網(wǎng)絡(luò).
[2] Windows 2008 R2 僅有X64版本/Windows 2008有X86和X64版本/Windows 7有X86和X64版本; 以下教程對前面兩個X86版本也能支持,僅需要替換MYSQL對應(yīng)版本即可.
準(zhǔn)備程序
選擇以下這些版本需要注意的是MYSQL在2008R2下可以選擇64位的,PHP的VC9是針對IIS的,VC6針對apache的,線程安全和非安全版本本次選擇的是線程安全版本, PHP線程安全版本無法加載wincache,所以我們用Xcache作為替代,如果想用wincache就選用非線程安全版本,
1.mysql-essential-5.0.91-winx64.msi
2.Php-5.2.17-win32-vc6-x86.zip
3.ZendOptimizer-3.3.3-windows-i386.exe
4. Xcache1.3 .2for-php-5.2.17-Win32-VC6-x86.zip
5.phpMyAdmin-3.3.10.-all-languages.zip
安裝配置路徑規(guī)劃
MYSQL D:\service\ MYSQL
PHP D:\service\ PHP
Zend D:\service\ Zend
MYSQLdatebase D:\service\ MYSQLdatebase
WEB目錄D:\WEB\ZTGPS
以下教程為完全說明,做過部分優(yōu)化,完全經(jīng)過測試,主調(diào)試環(huán)境Windows 2008 R2 SP1服務(wù)器已安裝組件NET.FROMWORK 4+VC2008X64,教程有不當(dāng)之處歡迎探討.
一、安裝配置MySQL
二、安裝配置IIS7.5
三、安裝配置PHP
四、IIS7.5配置FASTCGI
五、安裝ZendOptimizer
六、Xcache安裝配置
七、網(wǎng)頁壓縮配置
八、配置phpmyadmin 九、EmpireBak v2010 帝國備份 十、靜態(tài)化安裝配置 十一、其它事項(xiàng)
一、安裝配置MySQL
(1),雙擊 mysql-essential-5.0.91-winx64.msi
NEXT
選擇 Custom 自定義安裝:
Next
點(diǎn)擊"Change"更改MySQL安裝目錄:D:\service\ MYSQL
待文件復(fù)制安裝完畢后,進(jìn)行MySQL設(shè)置界面,單擊Finish:
NEXT
出現(xiàn)以下選擇
選擇DetailedConfiguration(詳細(xì)配置):
NEXT
出現(xiàn)以下選擇
選擇MySQL運(yùn)行模式:Server Machine:
NEXT
出現(xiàn)以下選擇
選擇 MySQL 數(shù)據(jù)庫默認(rèn)存儲方式:Non-Transactional Database Only
接則選擇該選項(xiàng)。 NEXT
出現(xiàn)以下選擇
· Manual Setting(人工設(shè)置):選擇該選項(xiàng)可以手動設(shè)置服務(wù)器并行連接的最大數(shù)目。從前面的下拉框中選擇并行連接的數(shù)目,如果你期望的數(shù)目不在列表中,則在下拉框中輸入最大連接數(shù)。
設(shè)定 MySQL 最大連接數(shù):一般設(shè)置為 128 - 512 之間的整數(shù):
NEXT
出現(xiàn)以下選擇Enable Strict Mode ,這樣MySQL就不會允許細(xì)小的語法錯誤。
建議您取消標(biāo)準(zhǔn)模式以減少麻煩。但熟悉MySQL以后,盡量使用標(biāo)準(zhǔn)模式,因?yàn)樗梢越档陀泻?shù)據(jù)進(jìn)入數(shù)據(jù)庫的可能性。
NEXT
出現(xiàn)以下選擇
使用Manual Selected Default Character Set/Collation(字符集對話框)來更改 MySQL服務(wù)器的默認(rèn)字符集.
這里請選擇你所要的默認(rèn)字符集,中國大陸就選GBK吧
NEXT
出現(xiàn)以下選擇
要想將MySQL服務(wù)器安裝為服務(wù),并自動啟動,請選中Launch the MySQL Server Automatically選項(xiàng)
Service name 默認(rèn)mysql就行
Include Bin Directory in windows Path 這個也選上
NEXT
修改設(shè)定 root 用戶密碼,注意:不要啟動遠(yuǎn)程連接模式!
把Enable root access from remote machines
Create an anonymous account的兩處取消選擇
NEXT install
完成 MySQL 的安裝,會自動啟動 MySQL 服務(wù)。
(1)測試MySQL工作是否正常。
打開cmd命令提示符窗口,輸入命令:MySQL –u root –p
輸入密碼后,如果能夠正常進(jìn)入MySQL控制臺則說明MySQL安裝正常。
更改MySQL數(shù)據(jù)庫目錄
a)打開cmd命令提示符窗口,輸入命令:net stop MySQL停止MySQL服務(wù)運(yùn)行;
b)打開D:\ service\MySQL\my.ini
找到:
Datadir = "D:\ service\MySQL\data"
修改為:
Datadir = "D:\Service\ MySQLDatabase"
c)將D:\Service\MySQL\data文件夾內(nèi)的內(nèi)容復(fù)制到D:\Service\MYSQLDatabase;
d)打開cmd命令提示符窗口,輸入命令:net start MySQL啟動MySQL服務(wù)。
e)重新測試MySQL是否工作正常。
(3)準(zhǔn)備LibMySQL動態(tài)鏈接庫
將D:\Service\MySQL\bin\目錄下的 libMySQL.dll, libmcrypt.dll, php5ts.dll(如果沒有libmcrypt.dll,php5ts.dll這兩個文件請到PHP程序目錄下提取) 3個文件復(fù)制到 C:\Windows\System32。
注:my.ini上面“basedir”是指向MySQL的安裝目錄,“datadir”指向MySQL的數(shù)據(jù)存放目錄。
至此MySQL已經(jīng)安裝完畢
三、安裝配置PHP
打開Php-5.2.17-win32-vc6-x86.zip
把php的壓縮包內(nèi)的文件解壓到 D:\Service\PHP文件夾,將php.ini-dist重命名為php.ini。
打開 php.ini文件,
找到:extension_dir = "./"
將其改為;
extension_dir = "D:/Service/PHP/ext"
extension_dir是存放擴(kuò)展庫(模塊)的目錄,也就是PHP用來尋找動態(tài)擴(kuò)展模塊的目錄。
找到Post_max-size= 8M
修改為30M
找到:Windows Extensions
在 Windows Extensions下方的動態(tài)模塊配置中,需要打開以下模塊支持:(去掉模塊配置每行前面的;號即可)
extension=php_gd2.dll, GD庫支持,如果不打開該模塊則Discuz!論壇圖片水印不能使用。
extension=php_mcrypt.dll,更好的支持phpmyadmin不選的話,會出現(xiàn)“無法載入mcrypt擴(kuò)展
extension=php_mbstring.dll,打開mbstring,不選的話用phpMyAdmin會出現(xiàn)紅色提示。
extension=php_mysql.dll, 支持MySQL。
extension=php_pdo.dll,
extension=php_pdo_mysql.dll,
前面的分號去掉,這樣php才可以支持這些擴(kuò)展,
還要開哪些功能可以以后根據(jù)需要再修改。php.ini可以備份,以后重裝系統(tǒng)可以直接用。
8、配置session.save_path路徑
更改session.save_path的路徑為D:/Service/php/tmp (注意有好幾段此文字,請選擇如下圖的目錄位置,此目錄需要手動建立并開放讀寫權(quán)限)
session.save_path高級配置及其他說明事項(xiàng),從php.ini配置文件翻譯而來
你可以使用”N;[MODE;]/path”這樣模式定義該路徑,N是一個整數(shù),表示使用N層深度的子目錄,而不是將所有數(shù)據(jù)文件都保存在一個目錄下。
[MODE;]可選,必須使用8進(jìn)制數(shù),默認(rèn)600(=384),表示每個目錄下最多保存的會話文件數(shù)量。[MODE;]并不會改寫進(jìn)程的umask。php不會自動創(chuàng)建這些文件夾結(jié)構(gòu)??墒褂胑xt/session目錄下的mod_files.sh腳本創(chuàng)建。如果該文件夾可以被不安全的用戶訪問(比如默認(rèn)的”/tmp”),那么將會帶來安全漏洞。當(dāng)N>0時自動垃圾回收將會失效,具體參見下面有關(guān)垃圾搜集的部分。
如果你服務(wù)器上有多個虛擬主機(jī),建議針對每個不同的虛擬主機(jī)分別設(shè)置各自不同的目錄。
至此最基本的session配置就完成了,你只要保存php.ini,并重啟IIS,即可使用session功能。
其他session配置說明
session.save_handler = ”files”
默認(rèn)以文件方式存取session數(shù)據(jù),如果想要使用自定義的處理器來存取session數(shù)據(jù),比如數(shù)據(jù)庫,用”user”。
session.use_cookies = 1
是否使用cookies在客戶端保存會話sessionid,默認(rèn)為采用cookies
session.use_only_cookies = 0
是否僅僅使用cookie在客戶端保存會話sessionid,這個選項(xiàng)可以使管理員禁止用戶通過URL來傳遞id,默認(rèn)為0,如果禁用的話,客戶端如果禁用Cookie將使session無法工作。
session.name = “PHPSESSID”
當(dāng)做cookie name來使用的session標(biāo)識名
session.auto_start = 0
是否自動啟動session,默認(rèn)不啟動,我們知道在使用session功能時,我們基本上在每個php腳本頭部都會通過session_start()函數(shù)來啟動session,如果你啟動這個選項(xiàng),則在每個腳本頭部都會自動啟動session,不需要每個腳本頭部都以session_start()函數(shù)啟動session,推薦關(guān)閉這個選項(xiàng),采用默認(rèn)值。
session.cookie_lifetime = 0
傳遞sessionid的Cookie有效期(秒),0表示僅在瀏覽器打開期間有效。
session.gc_probability = 1
session.gc_divisor = 100
定義在每次初始化會話時,啟動垃圾回收程序的概率。計(jì)算公式如下:session.gc_probability/session.gc_divisor,比如1/100,表示有1%的概率啟動啟動垃圾回收程序,對會話頁面訪問越頻繁,概率就應(yīng)當(dāng)越小。建議值為1/1000~5000。
session.gc_maxlifetime = 1440
設(shè)定保存的session文件生存期,超過此參數(shù)設(shè)定秒數(shù)后,保存的數(shù)據(jù)將被視為'垃圾'并由垃圾回收程序清理。判斷標(biāo)準(zhǔn)是最后訪問數(shù)據(jù)的時間(對于FAT文件系統(tǒng)是最后刷新數(shù)據(jù)的時間)。如果多個腳本共享同一個session.save_path目錄但session.gc_maxlifetime不同,將以所有session.gc_maxlifetime指令中的最小值為準(zhǔn)。
如果你在session.save_path選項(xiàng)中設(shè)定使用子目錄來存儲session數(shù)據(jù)文件,垃圾回收程序不會自動啟動,你必須使用自己編寫的shell腳本、cron項(xiàng)或者其他辦法來執(zhí)行垃圾搜集。
比如設(shè)置”session.gc_maxlifetime=1440″ (24分鐘):
cd /path/to/sessions; find -cmin +24 | xargs rm
以上是一些常用的session配置選項(xiàng)說明,更多的session配置選項(xiàng)說明你可以參考php.ini文件中的說明。
接下來修改了一些文件上傳以及內(nèi)存使用最大限制:
搜索Resource Limits
找到以下進(jìn)行修改:
max_execution_time = 30 ; 這里是每個腳本運(yùn)行的最長時間,可以自己修改加長,單位秒。
max_input_time = 60 ; 這里是每個腳本可以消耗的時間,單位也是秒。
memory_limit = 128M ; 這里是腳本運(yùn)行允許的最大內(nèi)存,根據(jù)自己機(jī)器情況自行配置。
搜索upload_max_filesize
upload_max_filesize = 2M 這里是上載文件的最大許可大小 ,在線上傳的圖片站、論壇等可能需要設(shè)置更大的,自行修改。
現(xiàn)在php基本配置完成了,保存php.ini文件,并將其復(fù)制到C:\Windows\
順便提醒一下別忘記把register_globals = Off修改成register_globals = On。
四、IIS7.5配置FASTCGI
打開PHP目錄下的php.ini,查找:extension_dir = "./"
此處為PHP擴(kuò)展的目錄,檢查是否如下extension_dir ="D:\service\php\ext\"
按圖配置參數(shù):

保存并關(guān)閉!
接下來將PHP掛接到IIS
打開IIS管理器,找到:“處理程序映射”,打開如下圖 點(diǎn)擊 添加模塊映射:


上圖引用自網(wǎng)絡(luò),把可執(zhí)行文件位置替換成D:\service\php\php-cgi.exe即可.
確定后會提示是否創(chuàng)建FASTCGI應(yīng)用程序,點(diǎn)擊是.
此時回到IIS功能視圖,找到:“FastCgi設(shè)置”,打開并按圖操作

添加文件監(jiān)視和環(huán)境變量:PHP_FCGI_MAX_REQUESTS,取值設(shè)置為10000:
添加對php.ini的文件監(jiān)視可以在修改php配置之后重啟IIS而讓更改實(shí)時生效!
進(jìn)入D:\web\ZTGPS目錄,新建一個phpinfo.php文件,內(nèi)容為:
<?php
phpinfo();
?>


如果加載FASTCGI不成功點(diǎn)擊-應(yīng)用程序池--然后DefaultAppPool應(yīng)用池-選擇高級設(shè)置
啟用32位應(yīng)用程序 后面選擇 True
安裝 ZendOptimizer
安裝過程非常友好,也比較簡單,因而此處無截圖說明。但需注意以下幾點(diǎn):
(1) Zend Optimzer 的安裝目錄要指定為 D:\Service\Zend ;
(2) 在安裝過程中提示 php.ini 的位置是,注意觀察是否為 C:\Windows ,如果不是必須手動指定為 php.ini 的位置 ;也可以按默認(rèn),你把剛才配置的 php.ini 復(fù)制到 WINDOWS 目錄。 (3) 安裝過程中提示 IIS 網(wǎng)站根目錄的位置,指定為:D:\WEB 也既你存儲站點(diǎn)的總目錄 Zend Optimizer 安裝完成后會自動重啟 IIS 服務(wù),重啟完成后需要再次打開 IE 瀏覽器窗口, 查看 phpinfo.php 支持信息,觀察是否包含了 Zend Optimizer 支持信息,如果沒有,則說 明 Zend Optimizer 沒有安裝成功!
默認(rèn)安裝完畢以后不不可以直接支持 Zend 加密,需要做特別的設(shè)置 ..下面將講解如何配置
Zend,并讓 php 可以支持 返回桌面,在”我的電腦”上面右鍵,點(diǎn)擊”屬性” 然后出現(xiàn)一下窗口,然后點(diǎn)擊右邊欄的”高級系統(tǒng)設(shè)置” 然后再點(diǎn)擊下面的”環(huán)境變量”
雙擊打開編輯 Path 變量窗口, 默認(rèn)的是這樣的%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMRO
OT%\System32\WindowsPowerShell\v1.0\
然后在后面添加
;D:\service\Zend\lib;D:\service\Zend\lib\Optimizer-3.3.0\php-5.2.x
還可以指定 PHP 和 MYSQL 把支持庫的目錄一并添加 方便使用 PHP –V 來調(diào)試 PHP 加載 情況 ;D:\service\MYSQL\bin;D:\service\PHP;D:\service\PHP\ext 添加這行即可(根據(jù)自己安裝的文件路徑自行填寫)
一路確定
重啟系統(tǒng)
想讓變量值生效需要重啟系統(tǒng)的。
注意:如果你的 Zend 版本和 php 版本和我所演示的不同的話,那么上面的路徑可能會更改,請 時情況修改文件路徑
現(xiàn)在 php,mysql,fastcgi,zend 配置工作已經(jīng)完成,如果不出意外的話,那么現(xiàn)在您的 IIS 7.5 就可 以支持以上環(huán)境了 請使用 PHP 探針程序或者 PHPINFO.PHP 查看是否配置成功。如果 OK
能看到如下信息就行了


- Win2008 R2 IIS7.5+PHP5(FastCGI)+MySQL5環(huán)境搭建教程
- Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL運(yùn)行環(huán)境搭建教程
- 阿里云完美教程 Window2003 iis+mysql+php+zend環(huán)境配置
- Win2008 IIS 7.0+php,MySQL,Zend,phpMyadmin配置圖解
- WIN2003系統(tǒng)IIS下PHP5+MySQL5+ZendOptimizer配置圖解教程
- Windows下Nginx+PHP5的安裝與配置方法
- windows安裝nginx部署步驟圖解(反向代理與負(fù)載均衡)
- Nginx+Windows負(fù)載均衡配置方法
- windows使用nginx實(shí)現(xiàn)網(wǎng)站負(fù)載均衡測試實(shí)例
- Win10 下安裝配置IIS + MySQL + nginx + php7.1.7
相關(guān)文章
Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL運(yùn)行環(huán)境搭建教程
這篇文章主要介紹了Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL運(yùn)行環(huán)境搭建教程,需要的朋友可以參考下2014-12-12
IIS6.0 IIS7.5應(yīng)用程序池自動停止的解決方法
在日志中發(fā)現(xiàn)IIS7.5的應(yīng)用程序池自動停止,同時訪問網(wǎng)站提示:HTTP Error 503,The service is unavailable.. 的錯誤,搜遍整個互聯(lián)網(wǎng)總算是解決了問題。小編也整理了IIS6及IIS7.5遇到此類問題匯總解決方法,歡迎大家嘗試2015-09-09
window環(huán)境下npm install node-sass報(bào)錯的解決方法
這篇文章主要介紹了window環(huán)境下npm install node-sass報(bào)錯 ,需要的朋友可以參考下2017-11-11
win2003服務(wù)器的一些安全設(shè)置(彩票)
這篇文章主要介紹了win2003服務(wù)器的一些安全設(shè)置(彩票),一些不錯的地方,當(dāng)然也可以使用安全狗設(shè)置,需要的朋友可以參考下2016-01-01
在dell PowerEdge 2950上安裝win2003 server的方法介紹
本文介紹下,在dell PowerEdge 2950上,安裝windows 2003 server的方法,以及遇到的一些問題與解決方法,有遇到類似問題的朋友,可以參考下2013-05-05
win2003服務(wù)器安全設(shè)置之 IP安全策略
win2003服務(wù)器安全設(shè)置之 IP安全策略,需要的朋友可以參考下2012-07-07
window?server?2019?激活方式(kms服務(wù)器集合)
Windows?Server?2019是一個功能強(qiáng)大、高效穩(wěn)定的服務(wù)器操作系統(tǒng),但是,要想正常使用所有功能,就需要激活Windows?2019,下面是windows2019激活方法2023-08-08

