php 5.2.5 安装的可恶之处。
为了调试点php的程序,查看了一下windows server 2008 简体中文版 的发布要到08年4月份,所以我决定还是在windows server 2003上调试算了,虽然apache可以工作在vista下,但asp、aspx这类总是个问题,所以还是决定在IIS操作。随即重启电脑到server 2003下,到php.net找下载,看到php 5.2.5给windows准备了两版本,一个zip,一个msi安装版,心想原来用的php都是zip,今天看看安装版是不是省事点。一路next后装完,发现windows的path多了个D:\php,觉得它还挺聪明的。再看D:\php下面有个php.ini文件,检查一下内容看到extension_dir = "d:\php\ext",文件最后面也有了gd库,mysql的扩展支持,心想这个安装版还不错。再看IIS里,web扩展里被加了个php,执行文件是d:\php\php5isapi.dll,这也对,去站点属性里看,筛选器里并没有加php,主目录下的配置里多了个.php项,执行文件却是d:\php\php5is~1,我就奇怪了,难道这样能运行?我测试了php探针程序,显示无法找到文件,那一定是找不是php5isapi.dll了,所以在IIS里的筛选器里加了php,并看到其向上的绿箭头,再浏览,依旧,随即把主目录里的配置里的.php的php5is~1改成php5isapi.dll,这下好了,真该死,对安装版有点失望了,算了,装mysql吧,到mysql.com里下载了mysql-5.0.51a-win32.zip,装在D:\mysql\,配置成utf8,再下个phpmyadmin-2.11.5-all-languages-utf-8-only.zip,试下浏览吧,好嘛,提示mysql扩展未加载,我想怎么可能嘛,php.ini里明明加载了,extension_dir也是对的。我还是检查一下php.ini吧,php.ini在d:\php\下检查内容未发现加载语句错误,但发现windows目录下并没有php.ini文件,不管它,反正php能运行,看php探针,显示gd2、mysql都是未成功加载状态,感觉不对,随即怀疑php.ini根本没有起作用,那复制它去windows目录,重启iis后浏览探针,页面成了空白了,看来php.ini放到windows目录下把php给折腾死了,那删除吧,还只保留d:\php\php.ini,再浏览探针,又显示内容了,可是再仔细看info给出的结果发现extension_dir的值是c:\php5\ext,怎么搞的,它是从哪里得到的这个值,迷惘了,难道别处还有php.ini文件?搜索整个计算机,结果没有,php.ini只在d:\php\下存在,难道是php的dll文件不能被windows找到?随即复制php的dll到windows\system32,可是我知道windows的path里这时已经有了d:\php,感觉复制dll并没有用,再浏览php探针,果然是问题依旧,这下我可火了,你即然已经执行php,怎么不老实的读php.ini呢,给我搞出个什么c:\php5来,难道逼着人把php装在c:\php5下吗?算了,我查下readme吧,没这文件,有个install,看看吧,里面有php5.2 and late部分和5.1 and 更早部分,可并没有什么具体配置,只是把安装版的next过程说了一遍,真见鬼,安装版的install写的这么垃圾,火大了这下,卸载了安装版这混蛋,去下载个zip的php回来,查看install说明发现内容和安装版的一样,算了,我还是按以前装php的办法搞好了,配置完IIS,设好windows的path,再把php.ini-dist复制成php.ini到windows目录下,修改完浏览php探针和info,好了,这下extension_dir终于被赋值成了php.ini里的d:\php\ext了,gd2,mysql都加载成功了。终于算是搞定了,php 5.2.5的安装版为什么做成这样,我很不理解,即然安装版,怎么不把php.ini复制到windows目录去,怎么会出现php5isapi.dll填成php5is~1.dll这种低级错误,知道自带的php.ini复制到windows下会让php死掉,怎么就不把它优化好呢,就算你不优化,也该能生成个起码不会让php死掉的的php.ini吧,即不生成也不复制,还敢说是安装版,而且还是for windows的安装版,install里的帮助还写成那样,根本没提php.ini这事,总之这种事情很讨厌,细节上面太不好,可能源自做php的这些老外们对windows平台用户的歧视吧。