win2k下Apache2+PHP4+MySql設置
發(fā)表時間:2023-08-18 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]win2k下Apache2+PHP4+MySql配置 加入日期:2004年03月14日 07:40:03 AM 作者:shg918(原作) 中國軟件 本文聲明:1、凡說明之行號多為近似值,在該行找...
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、電子版轉(zhuǎn)載自由。
正文:
網(wǎng)上配置php資料多艾!近泛濫~~~今作一個簡要介紹版本,適用于PHP4.2.X APAche2 Mysql4.0.X以上。
調(diào)試軟硬件環(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行Listen 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的相關(guān)信息了,這樣終于就可以開始php學習之旅(樂)。
(什么您不愿意把程序放在apache2/htdocs下,那么回到httpd.conf找DocumentRoot "x:/Apache/htdocs"把x:/Apache/htdocs改成你喜歡的目錄名就是了。)
僅僅是php 還是不夠的,很多大一點的程序都用得到數(shù)據(jù)庫,于是我們開始了:
mysql的安裝
象大多資料所講述的那樣,Mysql輕而易舉的就安裝成功的,安裝簡單,但是調(diào)試難。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(最好關(guān)了防火墻,即使你用的是公安部評分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里有關(guān)于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,結(jié)果~~~~竟然決然居然還是不好用。。(注意:這個毛病在用mysql 3.x時沒有犯過,可能是mysql4.x的bug)最后的解決是使用命令行c:mysql/bin/mysql -h localhost -u root -p回車,提示輸入密碼,敲回車表示空密碼,在mysql提示符下set password for abc@"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對應的值,也就是說程序調(diào)用了一個沒有定義的數(shù)組索引。一般來說,是在程序不夠嚴謹?shù)臅r候才會出現(xiàn)這樣類型的問題,但是不影響程序的運行。可以在程序中加入程序 error_reporting(0); 關(guān)閉該提示,或者設置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.