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