win2k下Apache2+PHP4+MySql配置
2024-08-27 18:28:43
供稿:網(wǎng)友
win2k下apache2+php4+mysql配置
加入日期:2004年03月14日 07:40:03 am 作者:shg918(原作) 中國軟件
本文聲明:
1、凡說明之行號多為近似值,在該行找不到則在上下就近即可以找到。
2、本文寫作時,參考了狠多資料來自于中文phphttp://www.21php.com 大本營www.csdn.net的資料以及[旖旎導軟硬]http://ddj88.myrice.com的資料,在此對三網(wǎng)站網(wǎng)友表示感謝。
3、電子版轉載自由。
正文:
網(wǎng)上配置php資料多艾!近泛濫~~~今作一個簡要介紹版本,適用于php4.2.x apache2 mysql4.0.x以上。
調試軟硬件環(huán)境:
硬件:cr2.2 +256m +845gl
軟件:win2000 pro +sp4+ n多補丁+apache2.0.47 +php4.3.3 +mysql4.0.16+phpmyadmin2.5.4
均下載于www.newhua.com
1、安裝php:將下載的php壓縮文件解壓,文件夾改名為php復制到c盤根目錄下。
2、 打開剛才解壓的php目錄,你會發(fā)現(xiàn)有一個叫做"php.ini-dist"的文件,這就是php的配置文件了,你需要把它改名成"php.ini",然后復制到系統(tǒng)目錄winnt下。
3、 php安裝目錄下的"php4ts.dll"必須要復制到windows系統(tǒng)的system32目錄下
4、dlls和extensions目錄里的所有文件拷到system32 里
修改php.ini其中有必要注意的是
270行error_reporting = e_all & ~e_notice
277行display_errors = on
另:365行register_globals 默認 off,改成on的意思是打開全局變量,以后編程方便。
; cgi.force_redirect = 1改成 cgi.force_redirect = 0這樣做是強迫不運行在cgi模式下
apache2安裝
首先停止你的iis或pws服務。
1 運行你下載的apache2安裝文件,安裝apache,安裝過程中會提示你輸入主機名,管理員信箱等信箱,這些信息在你安裝完以后是可以修改的,所以可以放心的輸入。
(*為了以后操作方便起見,強烈建議將此處的安裝路徑用"change"改變到"x:"下(注x為你的硬盤盤符)或者符合8.3文件名格式的其他名稱,以后每次輸入apache安裝路徑時,都不必為其添加引號。系統(tǒng)安裝成功后將自動在此建立一個名為"apache2"的目錄,也就是說,安裝之后的實際apache系統(tǒng)文件所在路徑將為"x:apache2"目錄。*)
安裝完后,在apache2confhttpd.conf 下查找serveradmin,即可修改管理員信箱,(199行附近);213行則是servername 我改為localhost
以后我都是把程序放在了apache2的htdocs下的子目錄zimulu,用http://localhost:81/zimulu/xxx.php 測試。
2 編輯apache2/conf/httpd.conf
120行l(wèi)isten 80改為81端口,這是因為當你的win2k重起后,iis將會重占80端口,為避免沖突,所以apache使用81端口。
下面的134-170行左右為加載模塊的部分。在這部分下面的加上兩句:
loadmodule php4_module c:/php/sapi/php4apache2.dll
//注釋:如果你的php目錄不是c:/php,請按實際來寫。
addtype application/x-httpd-php .php .php3 .php4
(這一句有人說也可以加到768行左右的addtype application/x-tar .tgz之后,不過我有一次這么作了以后沒弄成)意思是:加載php4模塊, 其中第2句如果僅僅是addtype application/x-httpd-php .php則只能解析php擴展名的文件,php3擴展名的程序解析不了。
注意:我們一般是模塊化運行php,所以僅僅這樣即可,有的文章說如此添加:
scriptalias /php/ "c:/php/"
addtype application/x-httpd-php .php
action application/x-httpd-php "/php/php.exe"
或者
loadmodule php4_module c:/php/sapi/php4apache2.dll
addtype application/x-httpd-php .php4
scriptalias /php4/ "c:/php/"
action application/x-httpd-php4 "/php4/php.exe"
addtype application/x-httpd-php4 .php
其實是以cgi方式運行php,沒有那個必要。
找到directoryindex * 這行,可以這樣修改,添加默認的文件名:
directoryindex index.php default.php index.htm index.html default.htm default.html
否則不能自動識別index.php。
使之支持中文
最好的解決辦法是:修改了apache中conf/httpd.conf文件,查找 adddefaultcharset iso-8859-1
并且改成
#adddefaultcharset iso-8859-1
adddefaultcharset gb2312
注意使用dreamweaver做出的文件多有:
<meta http-equiv="content-type" content="text/html; charset=gb2312">
其實這樣往往導致文件中中文成亂碼!!因為:http.conf中355行 defaulttype text/plain而不是text/html,所以手動修改成text/plain即顯示中文。
3 開始---運行----cmd
c:apache2/bin>
輸入apache -k install
輸入apache -k start
4 訪問http://localhost:81顯示apache歡迎頁 (恭喜,apache2安裝成功)
寫一最簡單的php程序
<?php
phpinfo();
?>
,命名為info.php存入apache2/htdocs下,然后地址欄內(nèi)敲入http://localhost:81/info.php應該顯示php和apache2的相關信息了,這樣終于就可以開始php學習之旅(樂)。
(什么您不愿意把程序放在apache2/htdocs下,那么回到httpd.conf找documentroot "x:/apache/htdocs"把x:/apache/htdocs改成你喜歡的目錄名就是了。)
僅僅是php 還是不夠的,很多大一點的程序都用得到數(shù)據(jù)庫,于是我們開始了:
mysql的安裝
象大多資料所講述的那樣,mysql輕而易舉的就安裝成功的,安裝簡單,但是調試難。mysql安裝成功后,進入mysql/bin雙擊winmysqladmin,第一次運行需要輸入用戶名密碼,比如我的虛擬空間的數(shù)據(jù)庫用戶名abc,密碼是xyz;于是我就輸入了abc xyz;為了是以后本地作好的程序可以直接ftp 。然而~~~~黃粱美夢~~~~~名副其實的黃粱美夢,不到5分鐘(煮熟米飯好象要10分鐘吧)我就蒙了:我有一個程序
<?php
$db_conn=mysql_connect("localhost","abc","xyz") or die("can't connect!!");
?>
在虛擬空間運行的好好的,到本地就是連接不上數(shù)據(jù)庫!!把phpmyadmin2.5.4改個名成p254,進里面把config.inc打開,修改第80、81行
$cfg['servers'][$i]['user'] = 'abc';
$cfg['servers'][$i]['password'] = 'xyz';
第83行的$cfg['servers'][$i]['only_db'] = '';如果鍵入數(shù)據(jù)庫名dbone,則phpmyadmin內(nèi)只能看到這一個dbone數(shù)據(jù)庫了,其余的都看不到。
地址欄里鍵入http://localhost:81/p254(最好關了防火墻,即使你用的是公安部評分95分的那個)然而出現(xiàn)在我眼簾的是:
phpmyadmin 試圖連接到 mysql 服務器,但服務器拒絕連接。您應該檢查 config.inc.php 中的主機、用戶名和密碼,并且確定這些信息與mysql 服務器的管理員所給出的信息一致。
而我把confgi.inc的內(nèi)容改回去也就是用
$cfg['servers'][$i]['user'] = 'root';
$cfg['servers'][$i]['password'] = '';
則可以連接成功!!
面對這種情況,我參考上次安裝mysql3.23.55的經(jīng)驗,進了winnt里找my.ini,修改最下面2行
user=abc
password=xyz
還是不行,于是開始胡思亂想,好一通修改:php.ini里有關于mysql的項目,改,不好用;config.inc下面還有$i = 1時的
$cfg['servers'][$i]['user']
$cfg['servers'][$i]['password']
也改了,(其實那是用于多個mysql運行的時候管理用的,單機上只跑一個mysql根本就用不著改)。暈~~~~上了一通csdn,被告之刪了my.ini,重起后自動重新生成my.ini,比樣照作~~~~雙擊winmysqladmin,果然又是讓輸入username和password。然而重新輸入的,還是不起作用!!于是腦袋一熱耍起小聰明 來,重新改寫config.inc用root和空密碼進入phpmyadmin,進mysql數(shù)據(jù)庫的user表,直接插如一個uk15f1的用戶名密碼就是o1s3f2g7,結果~~~~竟然決然居然還是不好用!!!(注意:這個毛病在用mysql 3.x時沒有犯過,可能是mysql4.x的bug)最后的解決是使用命令行c:mysql/bin/mysql -h localhost -u root -p回車,提示輸入密碼,敲回車表示空密碼,在mysql提示符下set password for [email protected]"localhost"=password('xyz');
重啟系統(tǒng),ok.
常見的問題
a: 為何新版php提示notice的警告?
例如 notice: use of undefined constant http_host - assumed 'http_host' in d:inetpubwwwroot22schoolsyinfo.php on line 19
q:
產(chǎn)生問題的原因是使用了沒有定義或者初始化的變量和數(shù)組,例如你用$_post[test],但是你沒有提交過name=test的表單,就會碰到notice的錯誤,因為$_post沒有鍵值為test對應的值,也就是說程序調用了一個沒有定義的數(shù)組索引。一般來說,是在程序不夠嚴謹?shù)臅r候才會出現(xiàn)這樣類型的問題,但是不影響程序的運行。可以在程序中加入程序 error_reporting(0); 關閉該提示,或者設置php.ini中error display 一節(jié);也可以預先初始化出錯的變量。
q: apache啟動時,為何不能加載php4apache.dll?
在windows系統(tǒng)剛安裝完成apache+php的系統(tǒng),整合php后,在啟動apache的時候提示:系統(tǒng)提示加載不了php4apache.dll(或者php4apache2.dll),例如can't load of c:myphpphpsaipphp4apache.dll
a: 這是apache沒有找到php4ts.dll文件的緣故
把php4ts.dll文件拷貝到系統(tǒng)目錄下(例如c:winntsystem32)或者apache下面的bin目錄中,然后重新啟動apache,即可解決
后記:
php 4.1.0 的 php.ini 的全文翻譯
http://www.21php.com/forums/showthread.php?s=&threadid=1717
高級配置
magic_quotes_gpc = off [performance] 改成0
session.save_handler = files
warning: session_start(): open(/tmpsess_7d190aa36b4c5ec13a5c1649cc2da23f, o_rdwr) failed:....
session路徑?jīng)]有配置
在apache所在分區(qū)根目錄下建立一個tmp的文件夾,ok.