Apache http://httpd.apache.org/
我下載的是 Apache HTTP Server (httpd) 2.2.17 點擊 download ,選擇
httpd-2.2.17-win32-x86-openssl-0.9.8o.msi
當然,你也可以下載原始碼 httpd-2.2.17-win32-src.zip ,不過需要自己編譯。
(我們第一次選擇安裝版,然後配置好,以後就可以在任何地方使用了)
PHP http://windows.php.net/download/
下載的時候有幾個不同版本選擇:
VC9 x86 Non Thread Safe VC9 x86 Thread Safe VC6 x86 Non Thread Safe VC6 x86 Thread Safe
關於 VC9 和 VC6 的區別: VC6 就是 legacy Visual Studio 6 compiler ,就是使用這個編譯器編譯的 VC9 就是 the Visual Studio 2008 compiler ,就是用微軟的 VS 編輯器編譯的 如果你是在 windows 下使用 Apache+PHP 的,請選擇 VC6 版本; 如果你是在 windows 下使用 IIS+PHP 的,請選擇 VC9 版本; 而 Non Thread Safe 就是非安全執行緒; Thread Safe 是安全執行緒的意思 官方並不建議將 Non Thread Safe 應用於生產環境,所以這裡我下載的是:
VC6 x86 Thread Safe
MySQL http://dev.mysql.com/downloads/mysql/
上面有各種不同版本 ,我們 主要是這兩個:
上面那個表示需要安裝,在安裝過程中自己配置。
下面這個比較大,但是免安裝的,但需要手動啟動。
為了打造完全綠色的,這裡我下載 noinstall 的。
下面開始設定管理員:
伺服器 Apache+MySQL+PHP 其實先配置那個都可以,不過為了省多次修改的麻煩,我們安裝 PHP->MySQL->Apache 的順序來進行。
配置 PHP :
把下載下來的 php-5.3.3-Win32-VC6-x86.zip 解壓到 D:\Web\ 下,檔案夾改名為 php ,然後把裡面的“ php.ini-development ”檔案(此處不同版本可能有所不同,可安裝情況進行),將其重新命名為“ php.ini ”,開啟編輯,找到“ register_globals = Off ”值,這個值是用來開啟全域變數的,比如表單送過來的值,如果這個值設為“ Off ”,就只能用“ $_POST[' 變數名 '] 、 $_GET[' 變數名 '] ”等來取得送過來的值,如果設為“ On ”,就可以直接使用“ $ 變數名”來擷取送過來的值,當然,設為“ Off ”就比較安全,不會讓人輕易將網頁間傳送的資料截取。這個值是否改成“ On ”就看自己感覺了,是安全重要還是方便重要。
這裡還有一個地方要編輯,功能就是使php 能夠直接調用其它模組,比如訪問mysql ,如所示,選擇要載入的模組,去掉前面的 “; ”,就表示要載入此模組了,載入的越多,佔用的資源也就多一點,不過也多不到哪去,比如我要用mysql ,就要把“;extension= php_mysql .dll ”前的“; ”去掉。所有的模組檔案都放在php 解壓縮目錄的“ext ”之下。只是參考,編輯好後儲存,關閉。
如果上一步載入了其它模組,就要指明模組的位置,否則重啟Apache 的時候會提示“找不到指定模組”的錯誤。有兩種方式可以解決這個問題,一種是把D:\Web\php\ext, 和D:\Web\php 加入到系統的環境變數Path 中去;還有一種方法是在php.ini 中到“extension_dir ”把其改為模組路徑,
還有一個地方需要注意一下,搜尋[Date] 標籤下,增加一句 date.timezone = Asia/Shanghai ,這主要是為了設定系統時區。
於是乎,PHP 配置完成。
配置MySQL :
將下載的mysql-noinstall-5.1.51-win32.zip 解壓到D:\Web\ 下面,改名為mysql, 然後拷貝兩個指令碼StartMySQL.bat (安裝和啟動服務)和StopMySQL.bat (關閉和卸載服務)進去, 以後需要的時候只要點擊StartMySQL.bat ,不需要的時候點擊StopMySQL.bat ,關於指令碼的內容,查看 http://blog.csdn.net/blpluto/archive/2010/06/18/5677457.aspx 或是 點擊這裡 下載我已經做好的指令碼。
這裡可能會出現比較常見的錯誤,就是不能“Start service ”,一般出現在以前有安裝mysql 的伺服器上,解決的辦法,先保證以前安裝的mysql 伺服器徹底卸載掉了;不行的話,檢查是否按上面一步所說,之前的密碼是否有修改,照上面的操作;如果依然不行,將mysql 安裝目錄下的data 檔案夾備份,然後刪除,在安裝完成後,將安裝產生的 data 檔案夾刪除,備份的data 檔案夾移回來,再重啟mysql 服務就可以了,這種情況下,可能需要將資料庫檢查一下,然後修複一次,防止資料出錯。
此處要注意,如果需要MySQL與Apache 及php 相結合,一定要把前面所說的 PHP.ini “;extension=php_mysql.dll ”前的“; ”去掉,載入mysql 模組。
配置Apache :
點擊下載完成的 httpd-2.2.17-win32-x86-openssl-0.9.8o.msi , 一路next ,的參數可以隨便填寫,也可以再httpd.conf 中以後設定。
然後安裝直接選取D:\Web\Apache
之後的一路next ,中間會出現安裝的控制台閃過。
現在開始先將 php 以 module 方式與 Apache 相結合,使 php 融入 Apache 。,“開始”、“所有程式”、“ Apache HTTP Server 2.2 ”、“ Configure Apache Server ”、“ Edit the Apache httpd conf Configuration file ”,點擊開啟。
或者在安裝好的Apache 檔案夾下開啟檔案D:\Web\Apache\conf\httpd.conf 。 尋找關鍵字“DocumentRoot ”(也就是網站根目錄),找到如所示地方,然後將"" 內的地址改成你的網站根目錄,地址格式,主要是一般檔案地址的“\ ”在Apache 裡要改成“/ ”(現在的新版本貌似不需要改了,不過還是檢查一下為好)。
然後再尋找“Directory ”,將它的值成跟DocumentRoot 的一樣。
這裡有一個選擇配置選項,以前可能要配置,現在好像修正過來了,不用配置了,就是強制所有輸出檔案的語言編碼,html 檔案裡有語言標記(這個就是設定文檔語言為gb2312 )的也會強制轉換。如果開啟的網頁出現亂碼,請先檢查網頁內有沒有上述 html 語言標記,如果沒有,添加上去就能正常顯示了。在“D:\Web\Apache\conf\extra “下有一個檔案叫httpd-languages.conf (可能有的版本不一樣,有的版本就在httpd.conf 中),開啟編輯,然後找到“# DefaultLanguage nl ”,把前面的注釋“# ”去掉,把“nl ”改成你要強制輸出的語言,中文是“zh-cn ”,儲存,關閉。
下面整合Apache 和PHP ,我們module 方式載入php 。在httpd.conf 中搜尋“LoadModule ”,在最下面添加兩行PHP 資訊:
LoadModule php5_module "D:/Web/php/php5apache2_2.dll"
PHPIniDir "D:/Web/php"
第一行應該注意, 很多地方是調用 php5apache2.dll ,這樣在運行 PHP 代碼時會提示 httpd.exe 應用程式錯誤; 第二行“PHPIniDir "D:/Web/php" ”是指明php 的設定檔php.ini 的位置。
然後搜尋“AddType application ”,加入“ AddType application /x-httpd-php .php ”、“AddType application/x-httpd-php .html ”兩行,你也可以加入更多,實質就是添加可以執行php 的檔案類型,比如你再加上一行“AddType application/x-httpd-php .htm ”,則.htm 檔案也可以執行php 程式了,你甚至還可以添加上一行“AddType application/x-httpd-php .txt ”,讓普通的文本 檔案格式 也能運行php 程式。
然後更改目錄預設索引檔案,因為現在加了php ,有些檔案就直接存為.php 了,我們也可以把“index.php ”設為預設索引檔案,優先順序就自己排了,為了先讓他運行,我把index.php 設為第一位。編輯完成,儲存,關閉。
至此,php 的安裝,與Apache 的結合已經全部完成,由於他們於MySQL 的支援在前面配置PHP 的時候已經處理,所以,如果以上操作沒有問題的話,我們的伺服器已經可以正常運行了。點擊案頭右下角的小表徵圖重啟伺服器,所有的配置就生效了。以後,你可以把你寫好的網頁放入“D:\Web\Apache\htdocs “中,就可以直接存取量。
(右鍵點擊開啟面板)
(左鍵快捷操作)
現在測試一下:在瀏覽器中輸入 http://127.0.0.1 ,如果可以看到如下頁面(有的版本可能不一樣),說明你的 Apache 已經配置正確:
然後寫一小段代碼:
複製代碼 代碼如下:<?php
date_default_timezone_set("PRC"); echo date("Y-m-d JS F"); echo '</p>'; echo date('H:i:s'); echo '</p>'; ?>
另存新檔 index.php, 放入“ D:\Web\Apache\htdocs “中,再在瀏覽器中敲入 http://127.0.0.1 或者是 http://127.0.0.1/index.php ,之後,如果顯示頁面如下:說明你的 PHP 和 Apache 運行正常了:
要注意的是,如果你載入了防火牆,請開啟80 或8080 連接埠,或者允許Apache 程式訪問網路,否則別人不能訪問。 如果你有公網 IP (一般 ADSL 或電話撥接的都是),就可以邀請所有能上網的朋友訪問使用 http:// 你的 IP 位址( IP 位址查詢可訪問 http://www.goodwaiter.com ,查詢內容內即是)你的網站了;如果你沒有公網 IP ,也可以把內網 IP 位址告訴區域網路內的其它使用者,讓他們通過 http:// 你的內網 IP 位址,訪問你的網站。
下面來製作它們的啟動和停止指令碼。
MySQL 的指令碼在前面配置的時候已經說明,此處不再細說。主要說 Apache 的指令碼。
在 Apache 目錄下建立一文字檔,在裡面輸入如下內容:
複製代碼 代碼如下:@ECHO off "%cd%\bin\httpd.exe" -k install -n apache2.2 net start apache2.2 pause @ECHO on
然後儲存為 StartApache.bat 。 然後再建立一檔案,輸入如下內容:
複製代碼 代碼如下:@ECHO off net stop apache2.2
"%cd%\bin\httpd.exe" -k uninstall pause @ECHO on
然後儲存為 StopApache.bat 。
以後,只要在需要啟動並執行時候,點擊 StartApache.bat ,就可以開啟 Apache 服務,在不需要的時候,點擊 StopApache.bat 就可以卸載服務,即使重裝系統,也不會受到影響。
當然,你還可以把這兩個指令碼寫在一個指令檔中,比較簡單,此處不在細說。
至此,移動版伺服器建立完成。如果需要一個完整的包括 Apache+MySQL+PHP 的,只要拷貝如上做好的 Web 資料夾,然後放在 D 盤根目錄下(這個盤也可以變動,只需要修改 httpd.conf 中的所以涉及到路徑的地方就可以了,可通過尋找替換完成),然後分別點擊 MySQL 的開始指令碼, Apache 中的開始指令碼,伺服器就正常運行了。