Windows下Apache添加模块的方法
Apache的许多外挂功能是通过模块实现的,比如php、subversion等,安装这些功能时就需要向Apache中添加模块。看似很简单,向 httpd.conf 中添加下面这一行(以php为例):
LoadModule php5_module "php-5.1.2/php5apache2.dll"
但是试图重新启动Apache时却往往不能成功。在事件查看器中可以看到,Apache无法找到指定的模块(php-5.1.2/php5apache2.dll)。可是明明这个文件好好地在那里,为什么?
原来是系统找不到该模块所需的 dll 文件,而造成启动失败,Apache在报告错误时简单地报告为模块找不到。
那么如何判断该模块需要哪些dll才能执行?一般来说,模块所需的dll都饱含在该模块的软件包中,例如上述 php5apache2.dll 所需的 php5ts.dll 就包含在php的发行包中,并与php5apache2.dll位于同一目录下。如果你安装了 Microsoft Visual C++ 6.0,其中附带的一个工具Dependency Walker可以精确地告诉你模块需要什么 dll。用Dependency Walker打开php5apache2.dll,可以看到该模块需要以下的 dll:php5ts.dll,libhttpd.dll,libapr.dll,libaprutil.dll,msvcrt.dll,kernel32.dll。其中 msvcrt.dll 和 kernel32.dll 是系统文件,libxxx.dll 是 apache 自带的 dll 文件。
确定了模块需要哪些dll之后,下一步就是让系统找到这些dll。Apache启动时,它会在Apache.exe所在目录(一般是 C:\Program Files\Apache Group\Apache2\bin)和系统的 %PATH% 变量中寻找dll。所以最简单的方法就是将模块所需的 dll 文件复制到 Apache.exe 所在目录下,或者复制到 C:\Windows\system32 下。这样Apache就可以正常加载该模块了。
另外一个方法就是修改%PATH%环境变量,使之包含模块所需dll所在的目录。在上面的例子里,假设php安装在 C:\php 下,那么向 %PATH% 中添加 C:\php,Apache即可正常加载php模块了。但是,如果你的Apache是通过系统服务启动的话,那么修改完环境变量之后必须重新启动计算机才能正常启动Apache服务
关键字:Windows Apache 添加 模块
新文章:
- CentOS7下图形配置网络的方法
- CentOS 7如何添加删除用户
- 如何解决centos7双系统后丢失windows启动项
- CentOS单网卡如何批量添加不同IP段
- CentOS下iconv命令的介绍
- Centos7 SSH密钥登陆及密码密钥双重验证详解
- CentOS 7.1添加删除用户的方法
- CentOS查找/扫描局域网打印机IP讲解
- CentOS7使用hostapd实现无AP模式的详解
- su命令不能切换root的解决方法
- 解决VMware下CentOS7网络重启出错
- 解决Centos7双系统后丢失windows启动项
- CentOS下如何避免文件覆盖
- CentOS7和CentOS6系统有什么不同呢
- Centos 6.6默认iptable规则详解