|
安裝前的準(zhǔn)備:
1.Apache2.2.22.php5.2.173.SqlServer20084.sqlncli.msi(SqlServer客戶端,可以到微軟官方網(wǎng)站去下載)5.ntwdblib.dll (2000.80.194.0)6.SQLSRV20.exe,即MicrosoftDriver 2.0 for php for SQL Server(sql server 2005 及2008使用SQLSRV20.exe, SQL Server 2010使用SQLSRV30.exe)(需要其中的php_pdo_sqlsrv_52_ts_vc6.dll和php_sqlsrv_52_ts_vc6.dll);其中,52表示 php5.2,53表示php5.3,ts表示線程安全,nts表示非線程安全,vc6表示用vc6(vs2005)編譯的,vc9表示用vs2008編譯的,vc6適用于apache,vc9適用于IIS。
開始安裝:
Apache 的安裝
1 點(diǎn)擊apahce安裝包
2 接受協(xié)議
3 下面3項(xiàng)隨便填即可 apache 監(jiān)聽80 端口.如果iis用了80端口,修改iis端口或者apache端口,以免沖突
(如果本機(jī)測(cè)試可以填寫127.0.0.1)
4 這里默認(rèn)的是 typical,建議選custom,點(diǎn)擊next.
5 這里可用修改安裝路徑,注意安裝路徑不能含中文.
6 點(diǎn)擊install開始安裝
7 安裝完成后在瀏覽器里打入 http://localhost 或者 http://127.0.0.1 如果可以看到這個(gè)頁(yè)面,證明apache安裝成功,已經(jīng)可以解釋靜態(tài)頁(yè)面了
SQL Server 2008 的安裝 ( http://www.jb51.NET/article/30243.htm )
php的安裝
由于php是一個(gè)zip文件(非install版),安裝較為簡(jiǎn)單 解壓就行.把解壓的 php-5.2.17-Win32 重命名為 php5.并復(fù)制到C盤目錄下.即安裝路徑為 c:/php5
1 找到php目錄下的 php.ini.recommended (或者php.ini-dist)文件,重命名為 php.ini 并復(fù)制到系統(tǒng)盤的windows目錄下(以c:/windows為例).
2 再把php目錄下的php5ts.dll, php_mssql.dll復(fù)制到目錄 c:/windows/system32下.
3 把php5/ext目錄下的php_gd2.dll,php_mssql.dll,php_mbstring.dll文件復(fù)制到c:/windows/system32下 如果沒有加載 php_gd2.dll php將不能處理圖像. php_mbstring.dll在后面使用phpmyadmin時(shí)支持寬字符
配置 php 并關(guān)聯(lián)
SQL Server 2008
打開c:/windows/php.ini文件
1 設(shè)置擴(kuò)展路徑 查找 extension_dir 有這么一行 extension_dir = "./" 將此行改成 extension_dir = "C:/php5/ext" 其中C:/php5是你安裝php的路徑.路徑不正確將無法加載dll (注意:有些php版本是 ;extension_dir = "./" 要把前面的分號(hào)去掉)
2 分別查找 ;extension=php_mbstring.dll ;extension=php_gd2.dll ;extension=php_mssql.dll 把上面3項(xiàng)前面的分號(hào)去掉,這樣apache啟動(dòng)時(shí)就可以加載這些dll了
添加:extension=php_sqlsrv_52_ts_vc6.dll(或extension=php_pdo_sqlsrv_52_ts_vc6.dll),注意:二者只能選其一,如果兩個(gè)都添加則Apache無法啟動(dòng)。
當(dāng)然前面我們也把這些dll復(fù)制到system32下了.(大家在安裝的過程中都注意到如何把一些dll加載入來了.
3 設(shè)置會(huì)話保存路徑 查找session.save_path 有這么一行 ; session.save_path = "N;/path" 在此行后加入一行(注意是加入一行,不是加到后面) session.save_path = "C:/WINDOWS/Temp" 保存到你的臨時(shí)目錄下,這里完全可以保存到windows臨時(shí)目錄Temp下
4 還有比較值得注意的是 short_open_tag .有一些php版本默認(rèn)是Off的. 也就是說 php不能使用短標(biāo)記如 <? ?> 必須使用<?php ?> 由于短標(biāo)記使用方便,并且很多程序也是用短短標(biāo)記來寫,如discuz等 如果不把 short_open_tag 改成On將出現(xiàn)的癥狀將很難判斷是上面原因,這里建議修改 查找 short_open_tag = Off 改為 short_open_tag = On
5 是否顯示錯(cuò)誤 display_errors 出于安全性考慮,display_errors 有些版本也默認(rèn)為 Off. 就是說在調(diào)試時(shí),如果php代碼有誤,就只出現(xiàn)一個(gè)空白頁(yè).而不會(huì)顯示出錯(cuò)原因和出錯(cuò)行數(shù). 這樣調(diào)試起來將非常不便,建議根據(jù)自己需要修改 查找 display_errors = Off (注意不是 ; - display_errors = Off [Security]) 改成 display_errors = On
6 顯示NOTICE敬告提示 第五步雖然打開了出錯(cuò)提示,但出錯(cuò)報(bào)告還受到 error_reporting 的控制. php5默認(rèn)關(guān)閉NOTICE敬告提示,如果是在本地調(diào)試,建議打開NOTICE敬告提示. 查找 error_reporting = E_ALL 改成 error_reporting = 7
另外提示一下,在程序中也可以通過error_reporting()控制錯(cuò)誤報(bào)告輸出,具體怎么用大家參考下手冊(cè).
7 register_globals 出于安全性考慮它默認(rèn)也是Off 當(dāng)register_globals=Off的時(shí)候,下一個(gè)程序接收的時(shí)候應(yīng)該用$_POST['user_name']和$_POST['user_pass']) 當(dāng)register_globals=On的時(shí)候,下一個(gè)程序可以直接使用$user_name和$user_pass來接受值. 建議根據(jù)自己需要修改,為了兼容問題,我還是把它改成On了.
8 php5時(shí)差問題 <?php echo date("Y-m-d H:i:s");?>時(shí)間相差八小時(shí) 為什么呢?php5系列版本新增了時(shí)區(qū)設(shè)置,默認(rèn)為格林威治時(shí)間,與中國(guó)所在的東8區(qū)正好相差8個(gè)小時(shí) 查找date.timezone有這么一行 ;date.timezone = 將;去掉,改成 date.timezone = PRC 其中PRC:People's Republic of China 中華人民共和國(guó),
9 php5上傳文件問題 a. 一般的文件上傳,除非文件很小.就像一個(gè)5M的文件,很可能要超過一分鐘才能上傳完. 但在php中,默認(rèn)的該頁(yè)最久執(zhí)行時(shí)間為 30 秒.就是說超過30秒,該腳本就停止執(zhí)行. 這就導(dǎo)致出現(xiàn) 無法打開網(wǎng)頁(yè)的情況.這時(shí)我們可以修改 max_execution_time
在php.ini里查找 max_execution_time 默認(rèn)是30秒.改為 max_execution_time = 0 0表示沒有限制
另一種方法是可以在php程序中加入 set_time_limit(); 來設(shè)定頁(yè)面最久執(zhí)行時(shí)間. set_time_limit(0);//0表示沒有限制
b. 修改 post_max_size 設(shè)定 POST 數(shù)據(jù)所允許的最大大小。此設(shè)定也影響到文件上傳。 php默認(rèn)的post_max_size 為2M.如果 POST 數(shù)據(jù)尺寸大于 post_max_size $_POST 和 $_FILES superglobals 便會(huì)為空. 查找 post_max_size .改為 post_max_size = 150M
c. 很多人都會(huì)改了第二步.但上傳文件時(shí)最大仍然為 8M. 為什么呢.我們還要改一個(gè)參數(shù)upload_max_filesize 表示所上傳的文件的最大大小。 查找upload_max_filesize,默認(rèn)為8M改為 upload_max_filesize = 100M
另外要說明的是,post_max_size 大于 upload_max_filesize 為佳.
Apache 整合php
1 打開apache配置文檔,以作者的電腦為例:D:/myphp/apache2.2/conf/httpd.conf
2 修改網(wǎng)站根目錄 查找DocumentRoot有這么一行 DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs" 這就是你網(wǎng)站的根目錄,你可以修改,也可以用默認(rèn)的.如果改,還要修改下面這項(xiàng),否則可能會(huì)出現(xiàn) 403 錯(cuò)誤 查找 This should be changed to whatever you set DocumentRoot to 在它下面兩行有 <Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"> 把上面兩項(xiàng)的 C:/Program Files/Apache Group/Apache2/htdocs 改成你想要的目錄
3 查找 DirectoryIndex index.html 修改成 DirectoryIndex index.html index.html.var index.php 這樣index.php 可以充當(dāng)默認(rèn)頁(yè)面了
4 Apache中模塊化安裝php 查找 # LoadModule foo_module modules/mod_foo.so 在此行后加入一行 LoadModule php5_module C:/php5/php5apache2_2.dll
(其中C:/php5/php5apache2_2.dll是你安裝php的相應(yīng)路徑. 注意不要把php5apache2_2.dll,php5apache2.dll和php5apache.dll混淆.php5apache.dll只適用于apache 版本1的. php5壓縮包里的php5apache2.dll只適用于apache2.0.*版本,如果是2.2.*以上版本,必須使用php5apache2_2.dll.否則就可能會(huì)出現(xiàn) "Cannot load C:/php/php5apache2.dll into server: The specified module could not be found." 或者: "The requested operation has failed" 的情況. 不過php5apache2_2.dll出來之后也就沒有多少參考價(jià)值了)
5 查找 AddType application/x-gzip .gz .tgz 在此行后加入一行 AddType application/x-httpd-php .php 這樣apache就可以解釋php文件了 到這里配置基本完成了
6 重啟apache,在網(wǎng)站根目錄下創(chuàng)建一個(gè) phpinfo.php 文件
在瀏覽器中打開。如果能正常看到php的信息,則說明php已經(jīng)配置好了。
最關(guān)鍵的一步,也就是區(qū)別于加載其它 數(shù)據(jù)庫(kù) 擴(kuò) 展的一步,安裝sqlncli.msi(SqlServer2008客戶端),第一次配的時(shí)候,折磨了我一個(gè)星期,就是因?yàn)闆]有裝客戶端,以致總是提示找不到擴(kuò)展。再把ntwdblib.dll (2000.80.194.0),注意一下版本,php本身也有這個(gè)文件,是老版本的,只支持SqlServer2000。
最后重啟Apache服務(wù)器,寫個(gè)php文件,測(cè)試一下,一切OK,搞定了!
php技術(shù):Win2003+apache+PHP+SqlServer2008 配置生產(chǎn)環(huán)境,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。