从Apache2.0.54到Apache2.2.3
机子上的Apache已经装了很长时间了,是2.0.54版的,安装配置好后就一直没去动它。昨天心血来潮去Apache主页上逛了一下,发现已经有Apache 2.2.3了。看了一下2.2版有不少新特性,不过对我比较有用的大概只有一个关于mod_rewrite的重要安全补丁,最近学习的Joomla正好使用了这个功能,所以决定升级一下。
Apache 2.2系列是一个新的stable brach,所以安装前先要卸载原来的2.0.54版,卸载之前我先备份了配置文件。
然后就是安装Apache 2.2.3,我安装到了原来那个目录下。安装完之后我先试着把2.0版的配置文件放到conf文件夹下,结果无法启动。看来是不能直接使用原来的httpd.conf文件。
我发现2.2.3版的conf文件夹下除了httpd.conf文件外还多了default和extra两个文件夹,仔细看看后才知道2.2版已经把httpd.conf文件拆分开来了,除了主要的配置信息还保留在httpd.conf外都分成了一个个httpd-xxx.conf放在extra文件夹下,然后在httpd.conf文件中通过include包含进来,这样提供了更多的选择性和便利性。
刚才无法启动Apache的主要原因应该是一些module load不正确,2.2和2.0的modules相差比较大,所以我就拿2.2.3的默认的httpd.conf参照2.0的来修改了,至于那些httpd-xxx.conf文件我按照自己的需求选择了一部分include了,不过要注意在httpd-xxx.conf文件中需求的modules必须在httpd.conf中load正确,否则也会无法启动。
经过一番折腾,配置文件都修改好了,Apache也正常启动了。打开opera测试一下,发现静态网页可以正常浏览,但是php文件都直接显示的源码。我明明load了php5_module了,Apache也可以启动了,其他相应设置也写了,奇怪。
上网google了一把,发现不是只有我有这个问题,原来PHP5压缩包里的php5apache2.dll只适用于apache2.0.*
解决方法: 下载http://www.apachelounge.com/download/mods/php5apache2.dll-php5.1.x.zip这个补丁并解压,共有三个文件: vcredist_x86.exe php5apache2.dll httpd.exe.manifest
1.将php5apache2.dll拷贝到PHP5的根目录下覆盖原来的文件; 2.将httpd.exe.manifest文件复制到apache2.2.3安装目录下的bin文件夹下; 3.双击运行vcredist_x86.exe安装(如果系统里已安装了.NET framework 2,就可以省掉这一步)。
我的机子已经安装了.NET framework 2,完成以上两步后重启Apache,可以正常解析PHP文件了。
升级完成 ^_^
中国有昌网络站长 撰写 2006.12.30于北京
|