該博文參考的資料來源於:
http://wenku.baidu.com/view/0e4c569ddd3383c4bb4cd267.html
http://www.cnblogs.com/pharen/archive/2012/02/06/2340628.html
http://www.admin10000.com/document/54.html
http://blog.csdn.net/zutsoft/article/details/21651041
昨天花了差不多一天的時間,跳過無數“坑”之后,把WAMP環境給搭建上了。為何說坑,是因為不理解不知道,原來最新版的apache和最新版的php5.5存在不兼容的問題。還有Thread safe 和no thread safe版本之間的區別,PHP版本中的VC6、VC9、VC11之間的區別,現在記錄一下我搭建的過程。包括各種谷歌后學習到的內容。
一、准備工作,下載軟件
注:以下是我使用的版本。
apache:httpd-2.2.22-win32-x86-openssl-0.9.8t.
MySQL:mysql-installer-community-5.6.19.0.msi
下載地址:http://dev.mysql.com/downloads/windows/installer/
PHP:php-5.3.1-Win32-VC6-x86
下載地址:http://windows.php.net/downloads/releases/archives/
二、開始安裝軟件
(一)安裝apache
雙擊安裝,與安裝其他Windows軟件沒有什么區別,在填Server Infomation時,並沒有特殊規定,只要輸入的信息符合格式即可。
(注:這里選擇安裝類型,我一般選擇Custom,這里可以自己設置安裝路徑,看自己喜歡)
安裝完成之后,在瀏覽器輸入http://localhost,如果顯示It Works!,表示Apache安裝成功。
(二)安裝PHP
安裝PHP:將php-5.3.1-Win32-VC9-x86.zip解壓到一個目錄即可。
(三)安裝MySQL
插一句,昨天是因為下載錯MySQL,所以搞得很頭疼,建議到官網下載,我上面發的那個鏈接,下載的那個版本是ok的。
雙擊安裝,如果需要更改安裝目錄,則在Choose Setup Type選擇Custom(我比較喜歡自定義安裝,建議選擇自定義Custom)
MySQL下載完成后,找到下載到本地的文件,按照下面所示的步驟雙擊進行安裝:
步驟1:雙擊MySQL安裝程序(mysql-installer-community-5.6.10.1)會彈出如下圖1.4所示:
步驟2:單擊圖1.4中的“Install MySQL Products” 文字,會彈出的用戶許可證協議窗口,
如下圖1.5所示:
步驟3:選中“I accept the license terms” 的前面的選擇框,然后點擊【Next】按鈕,會進入查 找最新版本界面,效果如下圖1.6所示:
步驟4:單擊【Execute】按鈕,會進入安裝類型設置界面,效果如下圖1.7所示。
步驟5:選擇圖1.7中的“Custom”選項,可修改安裝路徑或保持默認值,然后單擊【Next】按鈕,
彈出功能選擇界面,如下圖1.8所示。
步驟6:單擊【Next】按鈕,彈出安裝條件檢查界面,如下圖1.9所示。
步驟7:單擊【Next】按鈕,進行安裝界面,如下圖1.10所示。
步驟8:單擊【Execute】按鈕,開始安裝程序。當安裝完成之后安裝向導過程中所做的設置將在安裝完成 之后生效,如下圖1.11所示的窗口
步驟9:單擊【Next】按鈕,會進入服務器配置頁面,效果如下圖1.12所示。
步驟10:單擊【Next】按鈕,效果如下圖1.13所示。
圖1.13中的“Server Configuration Type”下面的“Config Type”下拉列表項用來配置當着服務器的類
型。選擇哪種服務器將影響到MySQL Configuration Wizard(配置向導)對內存、硬盤和過程或使用的決策,可以選擇如下所示的3種服務器類型:
Developer Machine(開發機器):該選項代表典型個人用桌面工作站。假定機器上運行着多個桌面應用程序。將MySQL服務器配置成使用最少的系統資源。
Server Machine(服務器):該選項代表服務器,MySQL服務器可以同其它應用程序一起運行,例如FTP、email和web服務器。MySQL服務器配置成使用適當比例的系統資源。
Dedicated MySQL Server Machine(專用MySQL服務器):該選項代表只運行MySQL服務的服務器。
假定運行沒有運行其它應用程序。MySQL服務器配置成使用所有可用系統資源。
作為初學者,選擇“Developer Machine”(開發者機器)已經足夠了,這樣占用系統的資源不會很多。
在Enable TCP/IP Networking左邊的復選框中可以啟用或禁用TCP/IP網絡,並配置用來連接MySQL服務器的端口號,默認情況啟用TCP/IP網絡,默認端口為3306。要想更改訪問MySQL使用的端口,直接在文本輸入框中輸入新的端口號即可,但要保證新的端口號沒有被占用。
步驟11:單擊【Next】按鈕,在圖1.13所對應的界面中,我們需要設置root用戶的密碼,在“MySQL Root
password”(輸入新密碼)和“Repeat Password”(確認)兩個編輯框內輸入期望的密碼。也可以單擊下面的【Add User】按鈕另行添加新的用戶。(注:Current Root Password:為空;如果輸入密碼了在后面安裝會報錯)
步驟12:單擊【Next】按鈕,設置Windows Service Name<可默認>,此名為啟動數據庫服務名,要記住。
效果如下圖1.14所示。
步驟13:單擊【Next】按鈕,打開配置信息顯示頁面,如下圖1.15所示。
步驟14:單擊【Next】按鈕,即可完成MySQL數據庫的整個安裝配置過程。接下來就可以登錄上我們的MySQL數據庫進行操作了。
Example:啟動MySQL
可以直接使用命令行:
三、整合Apache+MySQL+PHP
(一)配置Apache
首先使用文本編輯工具(推薦 EditPlus )打開 E:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf 文件,這個文件是Apache的配置文件,下面幾步都是在修改這個文件的內容。
要注意的是修改完 httpd.conf 文件需重新啟動Apache服務,新設置才會生效。
1、讓Apache加載PHP模塊
找到 #LoadModule vhost_alias_module modules/mod_vhost_alias.so (大概在第128行),在這行的后面添加以下內容:
LoadModule php5_module "E:/StuSoftware/PHP/php/php5apache2_2.dll"
AddType application/x-httpd-php .php
PHPIniDir "D:/WAMP/PHP"
LoadModule php5_module "E:/StuSoftware/PHP/php/php5apache2_2.dll" /*你下載的需要是VC6的版本,不然找不到這個php5apache2——2.dll文件,這是我遇到的其中一個坑,待會兒下面再說*
這句意思是以module方式載入PHP5模塊。
AddType application/x-httpd-php .php
這句意思就是將.php擴展名的文件作為php腳本執行。你可以使用你喜歡的任何其他擴展名,如 .html、.php5 甚至是 .txt 來執行PHP。
PHPIniDir "D:/WAMP/PHP"
這句用來指定PHP的配置文件php.ini 所在的目錄。
如果是Apache 2 以module模塊方式運行php5的話,就可以使用 PHPIniDir 指令。
2. 修改網站存放目錄
我們知道Apache默認的網站存放目錄為Apache安裝目錄下的htdocs文件夾。當你更改網站存放目錄,就必須修改相應的Apache配置。
在配置文件 httpd.conf 中查找 DocumentRoot(大概在182行),將其修改為指向網站目錄的正確文件夾。我們這里改為
DocumentRoot "F:/Workspace/PHP"
同時,查找 This should be changed to whatever you set DocumentRoot to(大概在207行),在它下面有行 <Directoy 默認的DocumentRoot >,將其修改為你自己配置的DocumentRoot 路徑。我們這里修改為:
<Directory "F:/Workspace/PHP">
我的網站存放目錄是這般的:
3. 修改目錄首頁文件
在配置文件 httpd.conf 中查找 DirectoryIndex index.html (大概在244行)(快捷鍵查找按ctrl+F)將其修改成:
DirectoryIndex index.html index.htm index.php
DirectoryIndex 指的是當客戶瀏覽器訪問的路徑是一個目錄時,Apache默認執行的文件。
以我們所修改的為例:當客戶瀏覽器訪問一個目錄時,Apache會去找該目錄下的index.html,如果沒有再找index.htm,還沒有再找 index.php。都找不到則默認顯示該目錄下的文件列表。參考文檔:如果防止Apache顯示文件列表
(二)配置PHP
打開PHP安裝目錄,即E:\StuSoftware\PHP\php,我們可以看到目錄下有兩個這樣的文件 php.ini-development 和 php.ini-production,第一個是開發使用的配置文件,第二個是生產環境的配置,因為我們是在本機做開發,所以選擇前者。將php.ini-development復制一份到同目錄下,並改名為 php.ini。這個php.ini 就是當前使用的配置文件,以下幾步都是在修改這個php.ini文件的內容。要注意的是,修改php.ini文件后需重新啟動Apache服務,新設置才會生效。
1. 指定PHP擴展庫的存放目錄
在Windows下PHP的擴展庫通常以 DLL 形式存放在PHP的ext目錄中。
使用文本工具打開php.ini文件,查找extension_dir = "ext"(大概在809行),也就是在 On windows 下面那一行。把它前面的分號“;”去除掉,改為如下:
extension_dir = "E:/StuSoftware/PHP/php/ext"
extension_dir 表示PHP擴展庫的具體目錄,以便調用相應的DLL文件。
2. 開啟相應的擴展庫
默認情況下許多PHP的擴展庫都是關閉的,比如默認PHP不支持連接Mysql數據庫,需開啟相應的擴展庫。
這里我們開啟一些常用的擴展庫。
查找 ; Windows Extensions(大概在941行),在它的下面是extension列表。
找到如下擴展:
;extension=php_curl.dll ;extension=php_gd2.dll ;extension=php_mbstring.dll ;extension=php_exif.dll ;extension=php_mysql.dll ;extension=php_mysqli.dll ;extension=php_pdo_mysql.dll ;extension=php_pdo_odbc.dll ;extension=php_sockets.dll ;extension=php_xmlrpc.dll ;extension=php_xsl.dll
把以上extension 前面的分號 “;” 去掉。如果你希望加載其它擴展模塊,方法相同,只要去掉前面的分號即可。
提示1:重啟Apache提示 “unable to load dynamic library......php_curl.dll”,加載php_curl.dll錯誤。解決方法是拷貝 PHP 目錄下的 libeay32.dll 和 ssleay32.dll 到 windows 目錄或 windows/system32 目錄下,只要是系統 Path 環境變量里包含的路徑就可以。如果不想拷貝,你也可以直接把 PHP 路徑放到系統 Path 環境變量里。 右擊我的電腦=>屬性=>高級=>環境變量=>系統變量里有個Path,雙擊打開,把你的PHP路徑加個分號“;”再前面( ;D:\WAMP\PHP ),添加進去就OK了。重啟Apache不再提示該錯誤。
提示2:Exif 擴展是用來顯示圖片的 exif 信息的,因為該擴展需要 mbstring.dll 支持,所以必須將 extension=php_exif.dll 這一行寫到extension=php_mbstring.dll 的后面。
提示3:如果PHP自帶的擴展庫不能滿足你的需要,你可以去 pecl.php.net 查找並下載你需要的庫。windows用戶可以去 pecl4win.php.net 或者 http://downloads.php.net/pierre/ 下載已經編譯好的DLL文件,也可以去http://museum.php.net/php5/ 載PECL集合壓縮包。
提示4:很多人在找php_zip.dll,其實從php5.3開始已經集成了zip擴展,直接使用就行了。你可以用<?php phpinfo() ?> 找到zip擴展的說明。
目前針對不同用戶,MySQL提供了2個不同的版本: MySQL Community Server:社區版,該版本完全免費,但是官方不提供技術支持。
MySQL Enterprise Server:企業版,它能夠高性價比的為企業提供數據倉庫應用,支持ACID事物處理,提供完整的提交、回滾、崩潰恢復和行級鎖定功能。但是該版本需付費使用,官方提供電話及文檔等技術支持。
目前最新的MySQL版本為MySQL 5.6,可以在官方網站http://dev.mysql.com/downloads/下載該軟
件。下圖1.2所示的MySQL官網上單擊圖片上的“Download”超鏈接 或 點擊左邊標記處,然后按照提示一步步操作就可以將MySQL軟件下載到本地計算機中了。注意這里我們選擇的是數據庫版本是“Windows (x86, 32-bit), MSI Installer”,如下圖1.3所示。
3. 讓PHP支持短標簽
在 php.ini 配置文件查找 short_open_tag = Off (大概在266行)把它修改成:short_open_tag = On 讓其支持短標簽。
php的代碼一般包含在<?php .... ?>的標簽內,設置 short_open_tag = On 之后,可以寫成更簡潔的形式:<? .... ?>。
4. 配置PHP的Session功能
在使用session功能時,我們必須配置session文件在服務器上的保存目錄。我們需要為session建立一個可讀寫的目錄,這個目錄最好獨立於網站目錄之外。
這里把目錄上建在了D:\WAMP\sessiontmp,然后在 php.ini 配置文件中找 ;session.save_path = "/tmp" (大概在1467行),去掉前面的分號“;” ,改為如下:
session.save_path = "D:/WAMP/sessiontmp"
5. 配置PHP的文件上傳功能
同session一樣,在使用PHP文件上傳功能時,我們必須要指定一個臨時文件夾以完成文件上傳功能,否則文件上傳功能會失敗。
我們建立一個可讀寫的目錄文件夾 D:\WAMP\fileuploadtmp,然后在 php.ini 配置文件中找到 ;upload_tmp_dir = (大概875行),修改為:
upload_tmp_dir = "D:/WAMP/fileuploadtmp"
PHP默認上傳文件大小不超過2M,要想上傳大於2M的文件,請參考文檔 配置php.ini實現文件上傳功能。
6. 設置時區
在 php.ini 配置文件查找 ;date.timezone = (大概在993行),去掉前面的分號“;” 改為如下:
date.timezone = PRC
date.timezone是PHP5.1開始新增加的配置參數,用來設置時區。默認date.timezone是被注釋掉的,也就是默認時區是UTC格林威治標准時間。
我們這里改為 date.timezone = PRC(PRC,People’s Republic of China,中華人民共和國),也就是日期使用中國的時區。這樣可以解決時間相差八小時的問題。
(三)配置phpMyAdmin
直接在最開頭給出的官網鏈接下載最新版的phpMyAdmin。
首先解壓,然后將文件拷貝到網站根目錄下,我的是F:\Workspace\PHP\phpMyAdmin
然后到瀏覽器訪問http://localhost/phpMyAdmin/index.php
如圖:
【安裝phpMyAdmin過程出現的一個問題】
登錄phpMyAdmin提示1045登錄不上MySQL
解決方法:直接解壓文件,放到php工作空間下,然后使用mysql的用戶名和登錄密碼登錄,無需更改任何的配置一文件
之前說的php的版本VC6/9/11的區別,以及Threadsafe和no Threadsafe的區別:
VC6版本是使用Visual Studio 6編譯器編譯的,如果你的PHP是用Apache來架設的,那你就選擇VC6版本。(現在PHP已經沒有VC6了)。
VC9意思就是該版本PHP是用VisualStudio2008編譯的,而VC11則是用VisualStudio2012編譯的。這意味着
如果你下載的是VC9版本的,就需要先安VisualC++RedistributableforVisualStudio2008SP1,
如果你下載的是VC11版本的,就需要先安VisualC++RedistributableforVisualStudio2012.
搭建php首先看操作系統的版本,如果是Windows的在這里下:http://windows.php.net/download/
操作系統是32位還是64位?如果是32位的,就選擇帶“x86”的版本,如果是64位的,就選擇帶“x64”的版本。然后看WEB服務器是什么?如果是IIS系列,就選擇帶“Non Thread Safe”的版本,如果是Apache httpd系列,就選擇帶“Thread Safe”的版本。如果是Apache httpd還要看這個二進制版本是怎么編譯的,有三種編譯類型,分別是:VC6、VC9、VC11(分別代表Visual C++ 6、Visual C++ 2008、Visual C++ 2012)。這里就有麻煩了:PHP官方的最新版本5.5已經用VC11編譯,5.4是用VC9編譯的。可是Apache httpd的最新版本呢,至今還是用VC6編譯。這意味着一個驚人的事實:Apache httpd的官方版本和PHP的官方版本竟然是無法兼容的!
到這里,全部安裝都完畢,WAMP平穩運行。