WAMP環境搭建


     雖然PHP運行的理想環境是LAMP,且網上有什么WAMP搭建一步到位的包,但鑒於部分學渣(比如本人)沒搞過Linux,且自己的本本裝的可能一直是Windows,當前要緊的事是先學PHP知識,敲敲代碼看看效果,日后再補Linux部分,對於WAMP的搭建有必要自己手動走一遍,一步一個腳印。

     不細說WAMP各個軟件的安裝步驟,網上教程一大把,這里說的是在win7、32位下的在配置過程(不包含phpmyadmin),我看過很多的配置過程,在自己機子上走一遍后發現總不對頭,然后大噴一句“這TM簡直在浪費lz生命”,希望看完后對你不要造成這樣的惡果......==

     首先,假定你是按照推薦的方式安裝的,各個軟件在各個目錄都分門別類放好,我的是:

     

      在安裝時,就應該將Apache、MySQL、PHP單獨放好,不推薦放在常用的C盤,C盤的軟件安裝后文件眾多容易搞混,不如另起一個D盤、E盤來裝,清楚,配置起來也簡單。

      配置之前,應該安裝一個文本編輯器軟件,如notepad++、editplus、ultraedit等等,方便打開修改。

     (1)Apache配置

     首先找到Apache安裝后的主配置文件httpd.conf,比如我的在D:\WAMP\apache2.2.22\conf下面,最好用notepad++、editplus等等編輯器打開,不要用自帶記事本,好處是它們不會破壞文件的編碼結構,降低出錯幾率。

      * 找到DocumentRoot "D:/WAMP/Apache2.2.22/htdocs(類似),大概在179行,它后面的路徑代表者存放腳本源文件的地方,相當於是你自己機器上的服務器上存放web文件的目錄,改為安裝后的www目錄,比如我的是:

       

       要特別注意的是,雙引號一定要在英文半角環境下輸入,目錄分隔符統一使用正斜杠/,即便是在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更小,個人喜歡用它。

 

    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM