標籤:
來自: http://www.cnblogs.com/pharen/archive/2012/02/06/2340628.html
PHP整合式開發環境有很多,如XAMPP、AppServ(http://www.appservnetwork.com/)......只要一鍵安裝就把PHP環境給搭建好了。但這種安裝方式不夠靈活,軟體的自由組合不方便,同時也不利於學習。所以我還是喜歡手工搭建PHP開發環境,需要哪個模組自己安裝就行了,或者那個軟體需要升級,直接升級那個軟體就行了,並不影響其他軟體,非常方便。
一、準備工作-下載所需軟體
- Apache httpd-2.2.22-win32-x86-openssl-0.9.8t.msi
- PHP php-5.3.10-Win32-VC9-x86.zip
- MySQL mysql-5.5.20-win32.msi
二、安裝軟體
安裝Apache: 雙擊安裝,與安裝其他Windows軟體沒有什麼區別,在填Server Infomation時,並沒有特殊規定,只要輸入的資訊符合格式即可。
安裝完成之後,在瀏覽器輸入http://localhost,如果顯示It Works!,表示Apache安裝成功。
安裝PHP:將php-5.3.10-Win32-VC9-x86.zip解壓到一個目錄即可。
安裝MySQL:雙擊安裝,如果需要更改安裝目錄,則在Choose Setup Type選擇Custom
安裝完成後開始配置MySQL,全部保持預設選項即可,但最好把MySQL預設編碼改為utf8,在Modify Security Settings選項中設定密碼,輸入兩次密碼即可完成,最後點Execute完成配置。
三、整合Apache+PHP+MySQL
Apache : 首先修改Apache的設定檔,讓Apache支援解析PHP檔案。Apache設定檔在Apache安裝目錄的conf目錄下的httpd.conf。
1. 讓Apache可以解析php檔案,在設定檔中找到
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
在下一行添加 (綠色的位置是根據PHP的所在目錄而定的)
LoadModule php5_module "D:/Develop/PHP/php5apache2_2.dll"
PHPIniDir "D:/Develop/PHP"
AddType application/x-httpd-php .php .html .htm
2. 在設定檔中找到
DirectoryIndex index.html
改為
DirectoryIndex index.php index.html
3. 修改Apache網站目錄,在設定檔中找到(Apache安裝的目錄不同,顯示的值不一樣)
DocumentRoot "D:/Develop/Apache2.2/htdocs"
改為
DocumentRoot "D:/Workspace/PHP"
再找到
<Directory "D:/Develop/Apache2.2/htdocs">
改為
<Directory "D:/Workspace/PHP">
PHP : 把php.ini-development改名為php.ini,作為PHP的設定檔。修改php.ini
1. 設定PHP擴充包的具體目錄,找到
; On windows:
; extension_dir = "ext"
改為 (值是ext檔案夾的目錄)
; On windows:
extension_dir = "D:/Develop/PHP/ext"
2. 開啟相應的庫功能,找到需要開啟的庫的所在行
;extension=php_curl.dll
;extension=php_gd2.dll
;extension=php_mbstring.dll
;extension=php_mysql.dll
;extension=php_xmlrpc.dll
去掉前面的分號(注釋),即改為
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_xmlrpc.dll
3. 設定時區,找到
;date.timezone =
改為
date.timezone = Asia/Shanghai
配置完成,檢測一下配置是否成功。重啟Apache,在網站目錄下建立檔案index.php,輸入內容:
<?php
phpinfo();
?>
開啟瀏覽器輸入http://localhost,顯示如下內容,則安裝成功,並且成功關聯MySQL。
==>常見問題:
來自: http://www.cnblogs.com/snackuo/p/3547548.html
1.80連接埠被佔用,apache啟動不了.
問題描述:預設安裝apache,安裝完成後可以自啟動apache,但是設定手動啟動時會報錯,日誌顯示80連接埠被佔用,修改設定檔改為81連接埠,可正常手動啟動。自啟動是因為啟動順序中apache優先,搶先佔用了80連接埠.
排查過程:cmd視窗輸入netstat –ano,發現80連接埠已被監聽,PID=4,然後在工作管理員查詢到PID是系統進程,所以只有網上搜尋‘80連接埠被NT kernel & System 佔用(pid=4)’然後找到瞭解決方案.
解決方案:CMD視窗net stop http然後選擇y最後輸入sc config http start= disabled(注意disabled前面有一個空格),然後就可以正常啟動預設配置的apache.
2.apache支援php.
問題描述:我的apache版本應該是2.2安裝檔案是:httpd-2.2.25-win32-x86-openssl-0.9.8y.msi
①、我的php版本是5.5.9.下載檔案是:php-5.5.9-Win32-VC11-x86.zip(Thread Safe ),不是這麼版本就沒有需要的檔案php5apache2_4.dll,然後按照一般的教程去配置,會報錯:httpd.exe: Syntax error on line 131 of D:/Apache2.2/conf/httpd.conf: Cannot load D:/PHP/php5apache2_4.dll into server: \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xb3\xcc\xd0\xf2\xa1\xa3
這個核查到的原因是需要安裝檔案vcredist_x86.exe對應2012版本。
安裝後還是無法啟動。沒有任何錯誤記錄檔,然後懷疑是php5apache2_4.dll的問題。
解決辦法:更換php版本。php-5.4.25-Win32-VC9-x86.zip(Thread Safe )另外安裝vcredist_x86.exe對應2008版本(將此版本運行庫卸載了也成功了,但是2012未卸載)。然後就成功啟動了。
非常有意義的參考網站有:教程和問題解決辦法。
最有意義的參考內容:
1、Apache2.0對應的PHP模組為 php5apache2.dll
2、Apache2.2對應的PHP模組為 php5apache2_2.dll
3、Apache2.4對應的PHP模組為 php5apache2_4.dll
所以,Apache/PHP的搭配有以下幾種情況:
1、php5.2支援Apache2.0和Apache2.2;
2、php5.3、php5.4同時支援Apache2.2和Apache2.4;
3、php5.5隻支援Apache2.4
php版本與運行庫對應情況。
php5.5使用的編譯器是vc11,php5.4和php5.3的是vc9,php5.2是vc6。同時還要注意是x86版本,還是x64版本。目前只有php5.5提供x64版本,其他都只有x86版本。
vc11運行庫x86/x64版本:
vc10運行庫x86版本:
vc10運行庫x64版本:
vc9運行庫x86版本:
vc9運行庫x64版本:
當php和apache的版本對應正確後,將手工安裝的vc運行庫全部卸載了,照樣可以正常啟動,目前斷定配置環境最重要的是php和apache的版本對應。
Windows下搭建PHP開發環境