PHP & Apache for Win

Posted in Net Tech by Cmb on 09-29-2005.

文章源自对Boiling Soul的回复

在Windows平台配置PHP+Apache,常见的问题之一就是[color=aaaaaa]Unable to load dynamic library (.dll)[/color]

而一般的做法是把 DLL 复制到 %systemroot%\system32 里面,
不过,这样的缺点显而易见:

  1. 如果需要大量的额外模块,那么会增加SYSTEM32的体积;
  2. 如果系统出现问题,备份是麻烦的事情;
  3. 如果需要对支持的模块进行整理/升级…

而我的方案是,把[color=aaaaaa]DLL模块文件放置到%Apache%\bin目录内[/color],
因为WINDOWS的寻找顺序会[color=aaaaaa]先从程序目录[/color]开始,所以DLL文件可以放在%Apache%\bin目录内。

需要什么模块,就把模块文件复制过去就行。
不过,缺点是把SYSTEM32的负担转移到了%Apache%\bin下,但是相对与SYSTEM32的文件数量来说,这么做是值得的。

另外附加一个我自己使用的关于PHP的诀窍。是关于[color=aaaaaa]同时在IIS内支持PHP4/5[/color]的办法。(之前询问过Prim@Hosting的销售代表,据说他们也没试过……)

手工配置PHP的时候,一般会建议把php.ini放置在%systemroot%内,不过这样一来就只能在WINDOWS内唯一支持PHP4或PHP5,
这样对程序开发者而言,同时[color=aaaaaa]测试对PHP4/5的兼容[/color]则会非常麻烦。

我做法是:[color=aaaaaa]把php.ini留在原PHP安装目录[/color],例如\php4\php.ini和\php5\php.ini,
在一个IIS上配置PHP4/PHP5,IIS的目录下的文件解释引擎因为支持单独设置,
所以可以在一个站点里面,建两目录,4/5,然后就可以分别设置PHP4/PHP5为4/5目录(两个目录也可以设置为虚拟目录指向同一目录)的PHP解释引擎。(因为PHP.ini在各自的目录里面,不会冲突的)
这样就可以在同一个IIS内测试程序对PHP4/5的兼容性。

相关:
Apache http://www.apache.org
PHP http://www.php.net

Kill 61.136.57.198 WordPress.com Golden Ticket

Leave a Reply