PHP教程之win2k下Apache2+PHP4+MySql设置装备摆设
我先把我自己学习PHP的过程做一下概括:apache|mysql 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的材料,在此对三网站网友暗示感激。
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、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装置途径时,都不用为其添加引号。体系装置胜利后将主动在此创立一个名为"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,然而你没有提交过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 改成0
session.save_handler = files
Warning: session_start(): open(/tmpsess_7d190aa36b4c5ec13a5c1649cc2da23f, O_RDWR) failed:....
session途径没有设置装备摆设
在apache地点分区根目次下创立一个tmp的文件夹,OK.
左手拿着MOTOLOLA右手拿着NOKIA,要多潇洒,有多潇洒,哈哈,终于学会了,但是可能这个时候,又会有人不经意的拍拍肩膀对你说:哥们,别高兴的太早,你还是菜鸟,离学会还差着一大截呢! 做为1门年轻的语言,php一直很努力。 学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。 Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81 对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。 如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了, 小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。 作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。 我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。 遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。 Ps:以上纯属原创,如有雷同,纯属巧合 环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。 这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。 兴趣是最好的老师,百度是最好的词典。 找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。 没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。 我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。 说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年具体的记不清啦,囧。 为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。 这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
页:
[1]