当我哭泣没有鞋子穿的时候,我发现有的人却没有脚!
该日志由 Kevin 发表于 2007, November 15, 3:52 PM
windows 2003的服务器,一直采用iis+PHP+mysql,虽然Linux+Apache才是PHP的元配,但是因为我不熟Linux,而且IIS从我学生时代用到现在,可谓驾轻就熟,所以沿用IIS+PHP+Mysql这种似乎有些奇怪的组合,虽然一直也有想过换用Apache,但一直没有太好的”理由“,以至于下不了决心,直到这几天因为ISAPI下的Rewrite缺憾而被烦死,才决定改用Apache,希望这个选择是对的!
之前虽然有装过Apache,但都是“点到即止”,今天第一次应用,发现一些细节上的问题,记录一下,以待后用:
之前的服务器环境:Windows 2003+IIS6+PHP5+Mysql5
很久之前看过一些资料,发现IIS是可以跟Apache“和平相处”的,而且可以利用Apache强大的rewrite功能实现“共用”80端口,但是觉得有些“变态”,放弃,就用Apache就好了,反正现在几乎都不碰ASP了。
禁用IIS,安装Apache:
因为服务器上已经有几个网站在运行,所以我要保证在不影响网站数据的情况下用Apache代替IIS,为了保险起见,不删除IIS(以防万一,必要时暂时用回IIS),在服务里直接禁用了IIS的服务项,这样就解决了安装Apache时端口冲突的问题。。。安装Apache2.2,除了Window本身,我不允许其它任何程序安装在系统盘,然后自定义了Apache的安装路径,比如e:\Apache2.2,一切顺利,浏览localhost,见到了“It works!”,安装Apache成功。
配置Apache 2.2来运行PHP5:
打开httpd.conf,找到:
替换为:
当然,这只是一个例子,可以添加更多的默认页。
再查找:
在这下面增加以下内容:
接下来这一步,是要允许Apache将PHP程序作为模块来运行!
继续查找:
在这行下面添加:
在这一步,走了好多弯路,一开始我在网上搜过到的都是类似下面这样的描述:
按网上的这个到处被转载的“教程”做,把类似"php4apache2.dll"的文件改为"php5apache2.dll"也是不行的,至于我用的APache 2.2是肯定运行出错的:
1、注意php4apache2.dll、php5apache2.dll以及php5apache2_2.dll是很大差别的,一开始我依样画葫芦,把LoadModule php4_module “c:/php/php4apache2.dll”改为LoadModule php4_module “e:/php/php5apache2.dll”,重启Apache的时候提示启动失败,试了很多方法都行不通,后来想起在此之前有下载一个APMServ(点击这里去APMServ官方下载APMServ5.2.0),进去一看,php目录下php5apache2.dll和php5apache2_2.dll这两个文件都有,说明是有区别的,而我的PHP里面竟然没有php5apache2_2.dll,汗死,就这样浪费了好多时间。
2、下面这两行我按服务器的情况修改以后加到httpd.conf里面,运行php程序的时候会提示路径错误,不知是什么原因,还是不加为妙,
,网上的误导真多!
让Apache支持自定义Rewrite:
查找:
去掉前面的#。
同样要注意一下,按网上大部分四处转载的“教程”的说法,这样可以使用自定义rewrite了,其实要能够每个站点“自定义”Rewrite,还需要查找:
把它改为:
到此,Apache最吸引力的rewrite模块可以让你自定义每个站点的Rewrite规则了!
对了,似乎很多教程都没有提到怎样让Apache支持多站点(虚拟主机),这里记录一下:
在httpd.conf最后加入以下类似的内容:
这个就是基于主机名的虚拟主机(一个IP地址,多个网站) 了。
到此,所有的问题完美解决!
其实,看Apache的官方文档是最好的选择,虽然E文的技术类文章看起来有些吃力,但是起码比网上那些以讹化讹的教程有用得多,建议初学者看一下官方的文档再去参考其实中文的资料,这样会少走一些弯路!
注意:以上纯属初学者记录,可能错误百出!
2008, January 1, 10:38 PM
2008, January 1, 11:43 PM
2008, January 4, 10:19 AM