IT学习者 | 文章大全 | 技术文档 | 桌面壁纸 | 实用查询 | 网络电台 | 成语 | 歇后语 | 网址 | 下载 | 周公解梦 | 生日密码 | 电视剧365 | Flash
 您现在的位置: IT学习者 >> 文章大全 >> 网络编程 >> PHP

win2k下Apache2+PHP4+MySql配置

【 作者:shg918    来源:中国软件  更新时间:2004-10-21 | 字体:

本文声明:
1、凡说明之行号多为近似值,在该行找不到则在上下就近即可以找到。
2、本文写作时,参考了狠多资料来自于中文PHPhttp://www.21php.com 大本营www.csdn.net的资料以及[旖旎导软硬]http://ddj88.myrice.com的资料,在此对三网站网友表示感谢。
3、电子版转载自由。

正文:
网上配置php资料多艾!近泛滥~~~今作一个简要介绍版本,适用于PHP4.2.X APAche2  Mysql4.0.X以上。

调试软硬件环境:
硬件: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目录,你会发现有一个叫做"php.ini-dist"的文件,这就是PHP的配置文件了,你需要把它改名成"php.ini",然后复制到系统目录winnt下。

3、 PHP安装目录下的"php4ts.dll"必须要复制到windows系统的system32目录下

4、dllsextensions目录里的所有文件拷到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安装路径时,都不必为其添加引号。系统安装成功后将自动在此建立一个名为"Apache2"的目录,也就是说,安装之后的实际Apache系统文件所在路径将为"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下,然后地址栏内敲入http://localhost:81/info.php应该显示php和apache2的相关信息了,这样终于就可以开始php学习之旅(乐)。
(什么您不愿意把程序放在apache2/htdocs下,那么回到httpd.conf找DocumentRoot "x:/Apache/htdocs"把x:/Apache/htdocs改成你喜欢的目录名就是了。)

仅仅是php 还是不够的,很多大一点的程序都用得到数据库,于是我们开始了:

mysql的安装

象大多资料所讲述的那样,Mysql轻而易举的就安装成功的,安装简单,但是调试难。mysql安装成功后,进入mysql/bin双击winmysqladmin,第一次运行需要输入用户名密码,比如我的虚拟空间的数据库用户名abc,密码是xyz;于是我就输入了abc  xyz;为了是以后本地作好的程序可以直接ftp 。然而~~~~黄粱美梦~~~~~名副其实的黄粱美梦,不到5分钟(煮熟米饭好象要10分钟吧)我就蒙了:我有一个程序
<?php

$db_conn=mysql_connect("localhost","abc","xyz") or die("Can't connect!!");

?>

 

在虚拟空间运行的好好的,到本地就是连接不上数据库!!把phpmyadmin2.5.4改个名成p254,进里面把config.inc打开,修改第80、81行
$cfg['Servers'][$i]['user']          = 'abc'; 
$cfg['Servers'][$i]['password']      = 'xyz';
第83行的$cfg['Servers'][$i]['only_db']       = '';如果键入数据库名dbone,则phpmyadmin内只能看到这一个dbone数据库了,其余的都看不到。
地址栏里键入http://localhost:81/p254(最好关了防火墙,即使你用的是公安部评分95分的那个)然而出现在我眼帘的是:
phpMyAdmin 试图连接到 MySQL 服务器,但服务器拒绝连接。您应该检查 config.inc.php 中的主机、用户名和密码,并且确定这些信息与MySQL 服务器的管理员所给出的信息一致。

而我把confgi.inc的内容改回去也就是用
$cfg['Servers'][$i]['user']          = 'root'; 
$cfg['Servers'][$i]['password']      = '';
则可以连接成功!!

面对这种情况,我参考上次安装mysql3.23.55的经验,进了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数据库的user表,直接插如一个uk15f1的用户名密码就是o1s3f2g7,结果~~~~竟然决然居然还是不好用!!!(注意:这个毛病在用mysql 3.x时没有犯过,可能是mysql4.x的bug)最后的解决是使用命令行c:mysql/bin/mysql -h localhost -u root -p回车,提示输入密码,敲回车表示空密码,在mysql提示符下set password for abc@"localhost"=password('xyz');

重启系统,OK.

常见的问题


A: 为何新版PHP提示Notice的警告?

例如 Notice: Use of undefined constant HTTP_HOST - assumed 'HTTP_HOST' in d:inetpubwwwroot22schoolsyinfo.php on line 19

Q:

产生问题的原因是使用了没有定义或者初始化的变量和数组,例如你用$_POST[test],但是你没有提交过name=test的表单,就会碰到Notice的错误,因为$_POST没有键值为test对应的值,也就是说程序调用了一个没有定义的数组索引。一般来说,是在程序不够严谨的时候才会出现这样类型的问题,但是不影响程序的运行。可以在程序中加入程序 error_reporting(0); 关闭该提示,或者设置php.ini中error display 一节;也可以预先初始化出错的变量。


Q: Apache启动时,为何不能加载php4apache.dll?

在Windows系统刚安装完成Apache+PHP的系统,整合PHP后,在启动Apache的时候提示:系统提示加载不了php4apache.dll(或者php4apache2.dll),例如can't load of c:myphpphpsaipphp4apache.dll

A: 这是Apache没有找到php4ts.dll文件的缘故
把php4ts.dll文件拷贝到系统目录下(例如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路径没有配置

在apache所在分区根目录下建立一个tmp的文件夹,OK.

相 关 文 章
相 关 软 件
逃生 放生 黄玫瑰 想太多 那滋味 擦肩而过 放手去爱 北京欢迎你 依然在一起 吻得太逼真 感动天感动地 坐上火车去拉萨 怎么会狠心伤害我
心碎 冲动 小太阳 别碰我 蒲公英 千山万水 改变自己 一定要爱你 等爱的玫瑰 陷入爱里面 北极星的眼泪 最后一次的温柔 亲爱的那不是爱情
光荣 火花 坏女人 日不落 樱花草 为你写诗 独家记忆 夏天的味道 寂寞才说爱 忘不掉的伤 爱上你是个错 第三者的第三者 地球人都知道我爱你
假如 相思 是非题 有缘人 舍不得 我的答铃 死而无憾 外滩十八号 越爱越难过 123木头人 和寂寞说分手 爱上你是我的错 爱情里没有谁对谁错
加入收藏留言建议自助友情链接普通友情链接站长的Blog
版权所有   COPYRIGHT 2002-2008 ★IT学习者★ ALL RIGHTS RESERVED.