雖然PHP運行的理想環境是LAMP,且網上有什麼WAMP搭建一步到位的包,但鑑於部分學渣(好比本人)沒搞過Linux,且本身的本本裝的可能一直是Windows,當前要緊的事是先學PHP知識,敲敲代碼看看效果,往後再補Linux部分,對於WAMP的搭建有必要本身手動走一遍,一步一個腳印。php
不細說WAMP各個軟件的安裝步驟,網上教程一大把,這裏說的是在win七、32位下的在配置過程(不包含phpmyadmin),我看過不少的配置過程,在本身機子上走一遍後發現總不對頭,而後大噴一句「這TM簡直在浪費lz生命」,但願看完後對你不要形成這樣的惡果......==html
首先,假定你是按照推薦的方式安裝的,各個軟件在各個目錄都分門別類放好,個人是:mysql
在安裝時,就應該將Apache、MySQL、PHP單獨放好,不推薦放在經常使用的C盤,C盤的軟件安裝後文件衆多容易搞混,不如另起一個D盤、E盤來裝,清楚,配置起來也簡單。web
配置以前,應該安裝一個文本編輯器軟件,如notepad++、editplus、ultraedit等等,方便打開修改。sql
(1)Apache配置chrome
首先找到Apache安裝後的主配置文件httpd.conf,好比個人在D:\WAMP\apache2.2.22\conf下面,最好用notepad++、editplus等等編輯器打開,不要用自帶記事本,好處是它們不會破壞文件的編碼結構,下降出錯概率。apache
* 找到DocumentRoot "D:/WAMP/Apache2.2.22/htdocs(相似),大概在179行,它後面的路徑表明者存放腳本源文件的地方,至關因而你本身機器上的服務器上存放web文件的目錄,改成安裝後的www目錄,好比個人是:windows
要特別注意的是,雙引號必定要在英文半角環境下輸入,目錄分隔符統一使用正斜槓/,即使是在windows下面。瀏覽器
找到<Directory "D:/WAMP/Apache2.2.22/htdocs">(相似),大概在206行,修改爲跟上面同樣存放腳本源文件的目錄路徑,服務器
* 找到DirectoryIndex選項,大概在241行,該選項指的是Apache默認識別的索引文件,即當在瀏覽器地址欄上輸入一個URL時,只輸入到目錄而沒有指定運行該目錄下哪一個文件時,Apache將先去找這些文件,找到就默認運行它們,沒找到的話會生成一個該目錄下的文件和目錄的索引列表,相似於下圖的狀況
這在windows版本的Apache中默認是這樣配置,至因而不是必定會顯示成文件和目錄的索引,仍是要看配置的選項。好比個人DirectoryIndex選項配置成下圖:
這樣,它會在沒指定當前運行腳本時去找index.php、index.html或者index.htm三個文件,對於其餘格式不會運行,若三個都存在的話優先運行寫在前面的文件。
* 添加 PHPIniDir "D:/WAMP/php5.4.10" ,將Apache與PHP連接起來,有文章說改行要添加在LoadModule actions_module modules/mod_actions.so後面,親測不是必須的,隨便起一行,如在整個配置文件最末尾,PHPIniDir後面的雙引號包含的路徑是PHP所在的安裝的目錄,注意改爲你本身的PHP安裝目錄。個人是:
* 添加 LoadModule php5_module "D:/WAMP/php5.4.10/php5apache2_2.dll",仍是要注意寫你本身的PHP安裝目錄,這時要到PHP安裝目錄下面找找看有沒有php5apache2_2.dll這個擴展文件,若是你的PHP是另外的版本,則它的名字可能會有些差異,這個名字打個比方是php4apache1.dll,這裏就要改成"D:/WAMP/php5.4.10/php4apache1.dll",個人是:
有文章說這行要加在#LoadModule vhost_alias_module modules/mod_vhost_alias.so以後,測試默認配置環境下不是必須的。
* 添加PHP程序能夠運行的文件類型,能夠一塊兒寫,也能夠分開寫,表示這些格式的文件都可執行PHP程序,好比個人是一塊兒寫:
分開寫能夠是:
改完注意保存,至此,Apache配置完成。
(2)PHP配置
PHP安裝只須要將下載好的壓縮包解壓到指定目錄便可,程序在運行時就去跑一遍這些文件,它們的改動是即改即生效。
首先在PHP安裝的根目錄下找到php.ini-development或php.ini-production文件,從字面意義上知一個爲開發版本,一個爲產品版本,把其中一個改成php.ini保存,改動前先備份一份原來的文件爲好,再次強調打開這些文件最好仍是用notepad++等編輯器。
* 首先找到extension_dir = "ext" ,大概在730行,修改爲你本身安裝php後存放php擴展文件的目錄,存放php擴展文件的目錄是安裝目錄下的ext文件夾,打開能夠看到不少.dll格式的擴展文件,個人以下圖:
修改爲你本身的路徑。
* 定位到大概870行左右,能夠看到不少相似於;extension=php_fileinfo.dll的行,它們是打開php中擴展庫的選項,在PHPz程序中用到的函數都是由擴展哭來輔助咱們完成的,有點相似於C語言的頭文件,若是要使用哪個擴展庫,去掉前面的分號便可。做爲一個剛開始安裝的PHP程序,不須要開啓太多擴展,如下經常使用的幾個足夠,分別去掉它們前面的分號並保存。
extension=php_bz2.dll
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_openssl.dll
extension=php_pdo_mysql.dll
extension=php_pdo_odbc.dll
extension=php_pdo.dll
至此,PHP配置完成。
看到不少文章,寫着還要更改;date.timezone、short_open_tag等等選項,其實徹底沒有必要,能夠在寫程序時以爲不方便再來改,或直接經過程序改。
(3)mysql配置
mysql的大多配置都在安裝軟件的過程當中解決了,基本不須要做什麼後續手動的修改,固然仍是請你按照規範安裝到指定分類好的目錄下面。
* 找到my.ini文件,個人是在D:\WAMP\mysql5.6.20\data下面,編輯器打開,找到datadir選項,這是存放mysql數據的物理文件的目錄,大概在90行,將它後面雙引號中的路徑修改成你本身存放mysql數據的地方,能夠在某個盤的根目錄下單獨新建一個data目錄存放,我直接在D:\WAMP\mysql5.6.20\data下面再新建一個data文件夾用於存放數據,你能夠按照本身的想法去作。所以個人datadir後面改成:
好比你的存放數據的在D盤下面的Data目錄,則是datadir="D:/Data/",注意目錄分隔符使用正斜槓/。
至此,mysql配置完成,請重啓Apache。
如何知道配置成功?
打開notepad++,新建Ctrl+N新建一個文件,輸入下面內容,保存到剛剛配置的存放web源文件的目錄下面,好比www下面,起一個文件名如phpinfo.php
<?php
phpinfo();
打開瀏覽器,輸入localhost/phpinfo.php回車,若是出現相似於下面的頁面說明配置成功了,這個頁面就是顯示當前使用的Apache、php、mysql及開啓的php擴展等各類信息,若是沒有,那.....只能再找緣由了
這裏沒有寫PhpMyAdmin的配置,我以爲mysql自帶的命令行客戶端或者windows自帶的CMD已經夠用了,很是方便,還能夠幫助咱們強化SQL語句的使用,固然前提是得會一些mysql的命令。
遇到的錯誤:
1. 配置好apache後,apache沒法啓動,Apache Service Monitor上start按鈕是灰的,根本沒法啓動,看看win的服務列表裏邊也沒有,也就是apache安裝後無服務。
這是因爲apache服務沒有註冊,以管理員身份運行cmd,定位到安裝apache的bin目錄,它下邊有個httpd.exe,運行命令 httpd.exe -k install -n apache2.2。注意最後的apache2.2得看安裝的版本,若是你裝的是2.4的版本,則寫 *** -n apache2.4,這樣在windows服務列表裏邊顯示對應的版本,好比這裏apache2.2
2. 沒法加載網頁,我用的chrome輸入localhost/phpinfo.php或者127.0.0.1/phpinfo.php,網頁上就是顯示沒法加載(前提請確認目錄下有phpinfo.php腳本),點開看詳細信息,說可能地址沒法訪問,那就是apache沒法認識這個地址了。
找到apache配置文件httpd.conf大約46行處,能夠看到相似於下面的:
#Listen 12.34.56.78:80
Listen 8080
把他們都註釋掉,另起一行寫 Listen 127.0.0.1:80或者Listen 127.0.0.1:8080,固然前提是,你的機器上80或者8080端口沒有被佔用,這很重要,這樣apache就實時監聽127.0.0.1或者是localhost了,默認端口是80(8080).
===============================================================================================
最近試了個win8下64位的搭建,複習下步驟,結果64位果真多了點玩意兒(暫不包括64位的MySQL)。
首先,64位的Apache貌似不僅一家,牛人們自立門戶,好比https://blackdot.be/download-archive/和這個http://www.apachelounge.com/download/,至於apache官網http://httpd.apache.org/download.cgi羅列的主要仍是用在Linux上的,並且只提供舊版本的、win下的32位的安裝包,我下載的是http://www.apachelounge.com/download/這個上面的,之前老是弄VC9的,此次就配個VC11。使用的apache:httpd-2.4.10-win64-VC11.zip。
先安裝PHP吧(稍後說明爲何這麼作),PHP的下載還是win版PHP官網http://windows.php.net/download/,選擇最新的PHP版本:php 5.6(5.6.3) VC11 x64 Thread Safe(2014-Nov-13 03:39:26),zip格式20.09MB。解壓到指定的H:/wamp/php5.6.3/下邊。
PHP不變,仍是找到extension_dir = "ext"處修改成我安裝的目錄 extension_dir = "H:/wamp/php5.6.3/ext"。
而後把一串相似extension=php_bz2.dll的地方,前面的;去掉,參考32位的處理,保存便可。
注意,PHP的VC11版本要運行須要Visual C++ Redistributable for Visual Studio 2012 Update 4,到微軟官網自行下載安裝!對於Apache的VC11也須要這個!
而後解壓apache的包(期間我因爲下載的包不徹底就解壓,但chrome顯示已經下完了,致使解壓後沒有conf目錄,嚇尿,重下沒問題),到H:/wamp/apache2.4.10,目錄下,打開conf/httpd.conf文件,開始配置,注意換成你本身的路徑,別說沒提醒你!。
1. 找到 ServerRoot "c:/Apache24" ,改成 ServerRoot "H:/wamp/apache2.4.10" ;
2. 找到 DocumentRoot "c:/Apache24/htdocs", 改成 DocumentRoot "H:/wamp/www";(htdocs目錄是原始的未動Apache服務時,存放運行的腳本的地方,改成單獨的www目錄,工做時偶爾會發現can‘t find files in *******/htdocs這種錯誤,就知道,咱們的腳本沒有同步到服務器上)
3. 找到 <Directory "c:/Apache24/htdocs">, 改成 <Directory "H:/wamp/www">;
4. 找到 <IfModule dir_module>, 下面有行DirectoryIndex index.html,改成 DirectoryIndex index.php index.html index.htm;
5. 找到 ScriptAlias /cgi-bin/ "c:/Apache24/cgi-bin/",改成 ScriptAlias /cgi-bin/ "H:/wamp/apache2.4.10/cgi-bin/";
6. 找到 <Directory "c:/Apache24/cgi-bin">, 改成 <Directory "H:/wamp/Apache2.4.10/cgi-bin">;
7. 到文件最後,添加 PHPIniDir "H:/wamp/php5.6.3",目的是將PHP掛載到Apache上,從這裏編譯php腳本;
8. 在第7處後邊再分別添加:AddType application/x-httpd-php .php、AddType application/x-httpd-php .html、AddType application/x-httpd-php .htm,分三行寫,或合到一行中,這是MIME類型,前面32位有解釋,哥你千萬別把頓號也寫進去了啊~;
9. 在第8處後邊再分別添加:LoadFile "H:/wamp/php5.6.3/php5phpdbg.dll"、LoadFile "H:/wamp/php5.6.3/php5ts.dll"、LoadModule php5_module "H:/wamp/php5.6.3/php5apache2_4.dll"。
特別說明第9步,在32位裏邊只要一行LoadModule php5_module "H:/wamp/php5.6.3/php5apache2_2.dll"就可,並且這個dll是***apache2_2.dll,並且挨着它的dll文件只有這一個,但到了64位多了兩個,一開始apache死活就是operation failed!,「我尼瑪...」瞬間就想罵街,看了一遍後去PHP的安裝目錄看還有這兩個dll文件,又search下了別人說的直接配成LoadFile "/php5phpdbg.dll",結果仍是一直是operation failed!我尼瑪...,看了許久,發現LodeModule時是絕對路徑,這個是否是也得這樣,因而試着改爲絕對路徑的,臥槽成功了,啓動了!因此說這幾個文件是要看PHP的安裝目錄裏邊是怎樣的,這就是爲何要先安裝PHP來着。
DOS下面(可能須要管理員身份啓動纔有效)進入Apache安裝目錄中bin目錄,這下面放着一系列exe文件,執行 httpd.exe -k install,安裝成功後打印一長串的字符,再次安裝會包already install,而後雙擊ApacheMonitor.exe,點擊start開啓服務,理論上到這兒應該是成功了,可是我沒有,我尼瑪又是什麼問題!差了下說64位須要Java Runtime Environment...
因此,可能還要下個Java Runtime Environment安裝,下個百度的就行,不必定非要官網的運行時。
OK,Apache總算啓動了,應該好了。
----------------------------------------------------------------------------
照例檢驗phpinfo,結果訪問腳本被報403 Forbidden~,可參考http://www.cnblogs.com/icebutterfly/archive/2010/02/01/1661237.html這篇博友的,64位默認拒絕訪問,在<Directory />和<Directory "H:/wamp/www">下邊的選項改一改,大概是相似於htaccess指令什麼的忘了,反正就是容許咱們訪問目錄下的腳本。
改了以後再運行,結果代碼原樣被輸出,並且不是用<? ?>短標記寫的,這就是剛纔第9步說的那兩個dll文件,沒有使用絕對路徑,致使php掛載仍是爲掛載到Apache上。
Over~
有集成包安裝了,何須這麼累呢,走一遍仍是能學到東西的嘛~
-----------------------------------------------------------------------------------
寫在最後,有時候徹底配置好環境那真是蛋疼,特別是急用的時候。好比上面的64位,擦全部的設置檢查了個遍,google了一大堆,stackoverflow找了數條,仍不能開啓curl模塊=_=,快累覺不愛了,若是你是急於學習語言知識,那固然少花時間在這些蛋疼的配置上面好,也應該這樣,裝集成包, WampServer(http://www.wampserver.com)或者XAMPP(https://www.apachefriends.org/index.html)均可以,WampServer更小,我的喜歡用它。