EXWOLF討論區's Archiver

wolf 發表於 2008-6-29 16:39

Windows下的Apache+PHP+MySql+虛擬主機設置全功略

一、安裝PHP4
我們需要安裝的是win32版本,下載當然也是win32版本 php4.3.0-win32.zip
1、下載後,解壓到c:\php目錄下。
2、把c:\php目錄下的php4ts.dll php4ts.lib文件都拷貝到c:\winnt\system32目錄下(即window 2000系統目錄下的system32目錄)。
3、修改php.ini文件 重啟完後,把c:\php目錄下的php.ini-dist文件改名為php.ini 用記事本或其它可編輯文本的軟件把它打開。
3.1找到register_globals = Off 改為register_globals = On
這一步是為了使部分舊的PHP程序能正常運行;
3.2找到 extension_dir = ./ 把它改為extension_dir = c:\php\extensions
剛剛的修改是指定php4擴展dll文件存放的路徑 由於php4默認所帶的php.ini-dist中,是關掉了所以的擴展dll的功能( Windows Extensions)

[table=95%][tr][td][color=#ff0000]以下為引用的內容:[/color]
;extension=php_bz2.dll
;extension=php_cpdf.dll
;extension=php_crack.dll
;extension=php_curl.dll
.....
[/td][/tr][/table]要做的就是把extension前面的分號去掉就行了,當然這樣是不夠的。因為有些extension在我們的系統是不能使用的,比如系統中沒有安裝sql server的話,那麼extension=php_mssql.dll就要用;(分號)把它註釋掉;
其中,PHP4帶了兩個GD擴展,請選用一個,另一個先用分號註釋掉,以免出現函數無法註冊的錯誤;
如下面

[table=95%][tr][td][color=#ff0000]以下為引用的內容:[/color]
extension=php_gd.dll
;extension=php_gd2.dll
[/td][/tr][/table]3.3 找到session.save_path,把這一項改為 session.save_path = c:\tmp
並在C盤建立一個TMP目錄
3.4把所有的extension=php_xxxx.dll前面的分號都去掉後。記得要保存剛剛的修改 並把php.ini文件放置在c:\winnt目錄下。
二、安裝MySql
安裝MySql 當然,我在MySql.com 下載的MySql是一個壓縮包,要先解壓出來;再點setup.exe安裝;
按默認安裝,即安裝在c:\MySql下,安裝完後,按「開始」菜單中的「運行」打進cmd進入dos窗口,進到c:\MySql\bin 目錄;
運行mysqld-nt --install (將會出現一個Dos窗口,隨即自動關閉!如果沒有出任何信息,即安裝到service成功!)
從「開始」菜單「程序」=》「管理工具」=》「服務」,打開後,將會找到MySql,點擊mouse右鍵 選擇啟動 回到剛剛的Dos窗口
即c:\MySql\bin目錄下 運行mysqladmin -u root password 123 即把root用戶的密碼設置為123 這一步,如果沒有出錯,說明初始化root密碼成功;
當然從本機進入MySql是不需要用戶名和密碼,但用php 程序或是其它程序連接MySql時就要用到;
測試進入 第一種方法:直接動行MySql進入MySql 的dos管理狀態;
第二種方法:運行MySql -uroot -p MySql將會提示讓您輸入密碼,密碼當然就是剛剛設置的123(當然,得按設置的密碼嘍,不一定得設置是123)
出現: C:\MySql\bin>MySql -uroot -p Enter password: ********** Welcome to the MySql monitor. Commands end with ; or \g. Your MySQL connection id is 4 to server version: 3.27.44-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>
即安裝MySql成功。
三、安裝Apache 1.3.x 及 PHP運行設置
1、首先下載Apache,Apache軟件一般叫作apache_1_3_x.win32.exe。運行它。它會問你將Apache安裝到什麼地方,為他系統安全及操作容易,我們不要使用默認路徑,你可以設為c:\Apache或C:\,因為馬上你就要修改它的配置文件。
如果安裝沒出什麼錯的話,Apache就可以用了。有很多readme文件可供參考,但僅有一個文件是講Win32平台的,包括Window 9x和Windows NT。
有兩種方式使 PHP 工作於 Windows 下的 Apache 1.3.x。一種是 CGI 方式(php.exe),另一種是使用 Apache 模塊 DLL。不管哪種方式都需要停止 Apache,編輯 httpd.conf 來配置 Apache 以加入PHP支持。
值得在這裡指出現在 Windows 下的 SAPI 模塊更加穩定了,我們推薦使用模塊方式,因為更加透明和安全。
儘管有幾種不同方法在 Apache 下配置 PHP,但是對新手來說還是非常簡單易用的。有關更多的 httpd.conf 配置指令請參考 Apache 文檔。
如果你按照手工安裝步驟一節中的說明把 PHP 解壓縮到了 c:\php\ 目錄下,那麼需要加入以下三行到 Apache 配置文件中以 CGI 方式安裝:

[table=95%][tr][td][color=#ff0000]以下為引用的內容:[/color]
ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php .phtml
Action application/x-httpd-php "/php/php.exe"
[/td][/tr][/table]注意上面的第二行在原來的 httpd.conf 中就有的,不過被註釋了。還有記住用你自己放置 PHP 的路徑替換 c:/php/。
警告
在 CGI 方式下,你的服務器可能會受到幾種攻擊的影響。請學習如何防止攻擊。
如果你想在 Apache 中用模塊方式使用 PHP,確認把 php4ts.dll 拷貝到 windows/system(Windows 9x/Me)或者 winnt/system32(Windows NT/2000)或者 windows/system32(Windows XP)目錄下,覆蓋原來的文件。然後在 Apache 配置文件 httpd.conf 中加入以下兩行:
用自己喜愛的編輯器打開 httpd.conf,找到 LoadModule 指令的部分,在其列表的最後部分加上如下一行,對 PHP 4:
LoadModule php4_module c:/php/sapi/php4apache.dll
對 PHP 5:
LoadModule php5_module "c:/php/sapi/php5apache.dll"
你可能發現在用 Windows Installer 安裝了 Apache 之後需要為用 AddModule 指令定義 mod_php4.c。尤其是在定義了 ClearModuleList 指令時格外重要,向下滾動幾行可以找到該指令。你將會看到 AddModule 項目的列表,在列表的最後加上這一行:
AddModule mod_php4.c
對於 PHP 5 則為:
AddModule mod_php5.c
搜索類似 # AddType allows you to tweak mime.types 的短語,你會找到一些 AddType 的項目,並且在列表的最後有這一行: AddType application/x-httpd-php .php。你可以在這裡選擇任何想用 PHP 解析的後綴。.php 只是所建議的一個。甚至可以包括 .html,也可以加上 .php3 來向下兼容。
修改了配置文件之後記住重新啟動 Apache,例如如果你的 Apache 是作為 Windows 的服務安裝的,NET STOP APACHE 後面接上 NET START APACHE。或者用你通常使用的快捷方式。
有兩種方式使用源程序語法彩色顯示特色,但是取決於你的安裝方法。如果你配置了 Apache 的 SAPI 模塊方式使用 PHP,那麼在 httpd.conf 中(和插入 AddType application/x-httpd-php .php 是同一個位置)加入下面一行就可以使用本特色:AddType application/x-httpd-php-source .phps。
如果你用 CGI 方式使用 PHP,那你需要用 show_source() 函數。建立一個 PHP 文件,加入以下代碼:。用你想要顯示源代碼的文件名替換掉 original_php_script.php。
注: 在 Windows-Apache 組合中,所有路徑中的反斜線例如 "c:\directory\file.ext" 都必須轉換成斜線,如 "c:/directory/file.ext"。
四、實現Apache虛擬主機的兩種方案
簡介:這裡說的虛擬主機是指在一台機器上僅運行一個httpd後台程序支持多個Apache服務器,如在公司財務部門有一台Web服務器,名為 account.yourdomain.com,同時又想為sales部門建立網站,網站內容也放在該機器上,通過 sales.yourdomain.com訪問,這就要用到虛擬主機設置。
設置Apache虛擬主機通常有兩種方案
1、基於IP的虛擬主機
這種方式需要在機器上設置IP別名,象上面的例子,在一台機器的網卡上綁定多個IP地址去服務多個虛擬主機。若該機器的IP地址為 192.168.0.1(account.yourdomain.com),首先你要設置IP別名(假設用192.168.0.2作為其別名IP)。加下面的行到/etc/rc.d/rc.local,確保每次啟動後自動運行。

[table=95%][tr][td][color=#ff0000]以下為引用的內容:[/color]
#/sbin/ifconfig eth0:0 192.168.0.2 netmask 255.255.255.0 broadcast \
192.168.0.255 up
#/sbin/route add -host 192.168.0.2 eth0:0
然後你需要設置/etd/httpd/conf/httpd.conf文件:
ServerAdmin [email]webmaster@yourdomain.com[/email]
DocumentRoot /home/httpd/sales.yourdomain.com
ServerName sales.yourdomain.com
ErrorLog /var/log/httpd/sales.yourdomain.com/error_log
TransferLog /var/log/httpd/sales.yourdomain.com/access_log
然後分別創建目錄
/home/httpd/sales.yourdomain.com,
/var/log/httpd/sales.yourdomain.com
放相應的網站內容到目錄/home/httpd/sales.yourdomain.com下即可,並確保你內部的DNS指定sales.yourdomain.com的A記錄到IP地址192.168.0.2。
[/td][/tr][/table]註:這種基於IP的虛擬主機有一個缺點,就是你需要更多的IP地址去服務各自的虛擬主機,如果你僅僅有一個IP地址,那麼你將可以考慮用基於名字的虛擬主機方案。
2、基於名字的虛擬主機:
它的優勢就是不需要更多的IP地址,容易配置,不需要其它軟硬件,現代的瀏覽器大多都支持這種方式。與基於IP的虛擬主機一樣,你需要編輯文件

[table=95%][tr][td][color=#ff0000]以下為引用的內容:[/color]
/etc/httpd/conf/httpd.conf
NameVirtualHost 192.168.0.1
ServerAdmin [email]webmaster@yourdomain.com[/email]
DocumentRoot /home/httpd/sales.yourdomain.com
ServerName sales.yourdomain.com
ErrorLog /var/log/httpd/sales.yourdomain.com/error_log
TransferLog /var/log/httpd/sales.yourdomain.com/access_log
ServerAdmin [email]webmaster@yourdomain.com[/email]
DocumentRoot /home/httpd/hr.yourdomain.com
ServerName hr.yourdomain.com
ErrorLog /var/log/httpd/hr.yourdomain.com/error_log
TransferLog /var/log/hr.yourdomain.com/access_log
[/td][/tr][/table]註: 你需要加NameVirtualHost 指示在最前面,下面依次為各個虛擬主機,為了讓它工作,你需要把sales.yourdomain.com,hr.yourdomain.com的DNS都指向IP地址192.168.0.1
上面的兩種都將工作,如果是在外部網段,在互聯網上提供WWW服務,你可能沒有足夠的真實IP地址來支持多個虛擬主機,便可用基於名字的虛擬主機方案,若是在內部網段上,你有較多的內部保留IP地址,將沒有太大的區別。

頁: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.