目前官方網站 apache 和 php 都只有 32bit 版的,只有 MySQL 有 64bit 版的。
所以我的安裝方法就是 apache、php裝 32bit版本, MySQL 裝 64bit 版本,
若您會這三個分開安裝設定,其實下面的步驟就不用看了。
安裝步驟我是看 php 官網的說明,然後整理出來的。
首先下載 Apache、php、MySQL
- Apache:http://httpd.apache.org/download.cgi
有no ssl和有openssl兩者可以選擇,我是下載有openssl的,
即apache_2.2.14-win32-x86-openssl-0.9.8k.msi 。
2013-01-29補充:目前在官網下載頁面,沒有直接提供win32檔案的下載連結。而是先連結到windows使用者的注意事項 http://ftp.mirror.tw/pub/apache//httpd/binaries/win32/README.html,在注意事項頁面中,有提供鏡像網站載點的列表http://www.apache.org/dyn/closer.cgi/httpd/binaries/win32/,可從鏡像網站選一個離自己最近的載點下載。 - PHP:http://windows.php.net/download/ 或 http://windows.php.net/downloads/releases/
※VC6、VC9選擇:
如果網站伺服器是使用在httpd.apache.org下載的Apache,就使用VC6;
如果是使用IIS就使用VC9。
(VC6:用 Visual Studio 6 編譯。VC9:用 Visual Studio 2008 編譯)
(官網說如果要使用VC9的apache可以在http://www.apachelounge.com/下載)
※Non Thread Safe、Thread Safe選擇:
如果要將PHP安裝成 CGI 模式執行,就下載Non Thread Safe的版本;
如果要將PHP安裝成 apache module 執行,就下載Thread Safe的版本。
(可參考http://php.net/manual/en/faq.obtaining.php#faq.obtaining.threadsafety說明。)
以 CGI 模式執行的話,每一個request都是一個Process,就不用選擇 Thread Safe 的版本。
但如果以 apache module 方式執行,每個request產生的Thread都是在apache的Process執行,此時便須要選擇 Thread Safe 的版本,避免各 Thread 間互相影響)
例如:我使用apache官網下載的apache(即VC6),且打算將PHP安裝成 apache module,所以我須下載Thread Safe且是VC6的PHP,
即php-5.2.12-Win32-VC6-x86.zip。 - MySQL:http://www.mysql.com/downloads/mysql/
安裝步驟如下:
- 安裝apache apache_2.2.14-win32-x86-openssl-0.9.8k.msi
我是安裝到 D:\Apache(x86)
- 解壓縮 php-5.2.12-Win32-VC6-x86.zip
到 D:\php(x86)
- 設定 httpd.conf
編輯 D:\Apache(x86)\conf\httpd.conf
新增以下三行 (PHPIniDir 是指定 php.ini 的位置)
(如果本來就有這幾行設設定,就修改成如底下三行)
LoadModule php5_module "D:/php(x86)/php5apache2_2.dll"
PHPIniDir "D:/php(x86)"
AddType application/x-httpd-php .php
- 到 D:\php(x86) 目錄底下
修改 php.ini-recommended 檔名為 php.ini
再修改 php.ini 這個檔
新增底下這一行(如果本來就有這一行設定,就修改成如底下)
extension_dir = "D:\php(x86)\ext\"
- 修改 windows環境變數
PATH 增加 ;D:\php(x86);D:\php(x86)\ext
(我的電腦 -> 右鍵 -> 內容 -> 進階系統設定 -> 環境變數 -> 系統變數 ->找到 Path 按編輯 -> 變數值 最後面加上 ;D:\php(x86);D:\php(x86)\ext -> 確定)重開機
- 安裝 MySQL mysql-essential-5.1.44-winx64.msi
我習慣安裝到 D:\MySQL
- 修改 php.ini ,視個人需求,打開
extension=php_mysql.dll
或
extension=php_mysqli.dll
或
extension=php_pdo.dll
extension=php_pdo_mysql.dll
然後重新啟動 apache
其他補充:
- 第3步驟,亦可改成以下寫法,如此不使用時,將LoadModule... 這行註解即可
LoadModule php5_module "D:/php(x86)/php5apache2_2.dll"
<IfModule php5_module>
PHPIniDir "D:/php(x86)"
AddType application/x-httpd-php .php
</IfModule> - 第3步驟的設定方式,php將以apache module的方式執行。
查看phpinfo()時,Server API 會顯示 Apache 2.0 Handler。 - 安裝MySQL預設勾選了 strict mode,安裝完要取消 strict mode
修改my.ini的sql-mode,將STRICT_TRANS_TABLES刪除
#sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
改成
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" - 在windows server 2003 R2 安裝SQL Server 2008 R2 Express SP1後,
再安裝apache,發現 80 port 被其他程式占用,apache無法啟動。
執行 netstat -nao,看到 80 port 被PID 4的進程使用,
再查看工作管理員,發現PID 4是 system,
後來發現,
原來是安裝SQL Server時,如果也裝了 "SQL Server Reporting Services"
會占用了80 port,把SQL Server Reporting Services關閉即可。
GOOD ^^
回覆刪除Thanks
回覆刪除