PHP:手工安裝或者使用安裝程序安裝。(以php5.2.17為例)
Windows 下的PHP,可以在http://windows.php.NET/download/ 下載。
打開該頁面,我們會看到
前面的VC6和VC9是什麼意思呢?從該網頁的側邊欄英文注釋我們可以知道答案。
If you are using PHP with Apache 1 or Apache2 from apache.org you need to use the VC6 versions of PHP
If you are using PHP with IIS you should use the VC9 versions of PHP
VC6 Versions are compiled with the legacy Visual Studio 6 compiler
VC9 Versions are compiled with the Visual Studio 2008 compiler and have improvements in performance and stability.
在這裡我們選擇和Apache相關聯的vc6。而V6版本中又分為.zip版和Installer(msi)版本。這2個是什麼意思呢?
Installer版本表示圖形化安裝程序安裝.zip表示是手動安裝
Installer版本 不包含任何外部的 PHP 擴展(PHP_*.dll),例如MySQL的擴展,沒有這個擴展,php就無法與mysql連接。
如果需要,可以在 Windows ZIP 包和 PECL 中找到。
注:雖然 Windows 安裝程序是讓 PHP 工作的最容易的方法,但是它有很多限制。
例如,它不支持自動安裝 PHP 擴展。使用安裝程序安裝 PHP 不是最好的方式。
警告:請注意,這種安裝方式安裝的 PHP 不是安全的。
如果需要一個安全的 PHP 設置,最好使用手動方式安裝,並手動設置好每個選項。
手工安裝
雖然目前有很多多合一的安裝包,而且也發布了一個 Microsoft Windows 的 PHP 安裝程序,但是仍然
建議用戶花些時間自己手動安裝 PHP。
因為這樣才可以更加了解這套系統,並能夠在需要的時候更方便的安裝 PHP 擴展dll文件。
下面詳細介紹php的安裝和Apache加載php。
把解壓的 php 重命名為 php5. 並復制到C 盤目錄下. 即安裝路徑為 c:/php5
1 找到php 目錄下的 php.ini.recommended ( 或者php.ini-dist) 文件, 重命名為 php.ini
必須只能復制到系統盤的windows 目錄下( 以c:/windows 為例). 因為這是php 規定的。從最後的phpinfo.php 文件可以看到這個。
我復制到原目錄下 後,結果導致無法連接到數據庫。出現如下錯誤:
Fatal error : Call to undefined function mysql_connect() in D:/public_html/testMysql.php on line 6
我們從 phpinfo.php 中看到 Configuration File Path 的值是 C:/WINDOWS 。這是 PHP 規定的,但是經我測試,沒有將 php.ini 放到 windws 下,導致 Loaded Configuration File 的值是 none ,正常情況下是 C:/WINDOWS/php.ini
2 再把php 目錄下的php5ts.dll,libmysql.dll 復制到目錄 c:/windows/system32 下.
注意:CGI 和 CLI 可執行文件以及 web 服務器模塊都需要 php5ts.dll 。
要讓 php5ts.dll 能正確被搜索到,有下面三個選擇:①復制該文件到 Windows 系統目錄,②復制該文
件到 web 服務器的目錄,③把 PHP 目錄(例如 d:/PHP )添加到 PATH 環境變量中。為了將來更好的
維護,建議使用最後一個選擇,將 PHP 目錄添加到 PATH 環境變量中,因為這樣更便於將來升級 PHP 。但我之前用的是第一個選擇。
編輯php.ini 文件
打開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_mysql.dll
把上面3 項前面的分號去掉, 這樣php 就可以加載這些dll 了,從哪裡加載,從上面extension_dir="C:/php5/ext" 所指定路徑中加載。
如果沒有加載 php_gd2.dll php 將不能處理圖像. 沒有加載php_mysql.dll php 將不支持mysql 函數庫
php_mbstring.dll 在後面使用phpmyadmin 時支持寬字符
當然,還有另外一種加載方法:把php5/ext 目錄下的php_gd2.dll,php_mysql.dll,php_mbstring.dll 文件復制到c:/windows/system32 下
這2 種方法經過我的測試,都是可以的。( 大家以後
以後要加載一些dll, 比如說php_mysqli.dll, 也就懂得怎麼加載了,2 種方法都是可以的)
3 設置會話保存路徑
查找session.save_path 有這麼一行
;session.save_path = "N;/path"
在此行後加入一行( 注意是加入一行, 不是加到後面 )
session.save_path = "C:/WINDOWS/Temp"
保存到你的臨時目錄下, 這裡完全可以保存到windows 臨時目錄Temp 下
4 還有比較值得注意的是 short_open_tag . 有一些php 版本默認是Off 的.
也就是說 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 & ~E_NOTICE
改成
error_reporting = E_ALL
另外提示一下, 在程序中也可以通過error_reporting() 控制錯誤報告輸出, 具體怎麼用大家參考下手冊.
7 register_globals
出於安全性考慮它默認也是Off
當register_globals=Off 的時候, 下一個程序接收的時候應該用$_POST['user_name'] 和$_POST['user_pass'] )
當register_globals=On 的時候, 下一個程序可以直接使用$user_name 和$user_pass 來接受值.
更詳細的說明請參考
http://www.phpfans.net/bbs/archiver/?tid-234.htm
建議根據自己需要修改 . 這裡不建議修改, 畢竟存在安全隱患.
8 php5 時差問題
時間相差八小時
為什麼呢?PHP5 系列版本新增了時區設置, 默認為格林威治時間, 與中國所在的東8 區正好相差8 個小時
查找date.timezone 有這麼一行
;date.timezone =
將; 去掉, 改成
date.timezone = PRC
其中PRC :People's Republic of China 中華人民共和國,
更詳細解決方法請參考本論壇的
http://www.phpfans.net/bbs/archiver/?tid-60.html
配置Apache 讓Apache 加載配置好的PHP
1 打開apache配置文件http.conf
2 修改網站根目錄(個人意願)
查找DocumentRoot 有這麼一行
DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
這就是你網站的根目錄, 你可以修改, 也可以用默認的. 如果改, 還要修改下面這項, 否則可能會出現 403 錯誤
查找 This should be changed to whatever you set DocumentRoot to
在它下面兩行有
把上面兩項的 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"
的情況. 關於這個問題的解決方法可以參考本論壇的
http://www.phpfans.net/bbs/viewt ... &extra=page%3D1
不過php5apache2_2.dll 出來之後也就沒有多少參考價值了)
5 查找 AddType application/x-gzip .gz .tgz
在此行後加入一行
AddType application/x-httpd-php .php
這樣apache 就可以解釋php 文件了
到這裡配置基本完成了
######## 重啟apache #########
在網站根目錄下創建一個 phpinfo.php 文件
<?php
phpinfo();
?>
在浏覽器打開
http://localhost/phpinfo.php
如果出現php信息, 則說明php 已經配置好了