我尝试为localhost配置Apache 2.4.2,以便它可以与PHP和PostgreSQL一起使用。我将以下代码添加到httpd.conf文件的末尾(在@Galadai的回答之后更新):
PHPIniDir "D:/Programy/php"
LoadFile "D:/Programy/php/php5ts.dll"
LoadFile "D:/Gis/PostgreSQL/9.3/bin/libpq.dll"
LoadModule php5_module "D:/Programy/php/php5apache2_4.dll"
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
尝试启动Apache会返回错误。当我运行“测试配置”时,它显示以下错误消息:
httpd.exe: Syntax error on line 519 of D:/Programy/Apache/httpd.conf: Cannot load D:/Programy/php/php5ts.dll into server: Specified procedure could not be found.
之前我遇到过一些路径问题,错误信息几乎相同,只是有“模块”而不是“过程”。我已经找到了很多关于“模块”版本的提示,但他们的解决方案通常是确保路径是否合适(我这样做),两个版本都是32/64位(都是32位)而PHP是线程安全的(它是)。我没有找到任何提示如何解决错误的“程序”版本。我认为它可能是由于版本的不同造成的(我之前尝试过Apache 2.2),但事实证明这是错误的。
编辑:现在我在文档的其余部分结束之前添加了PHPIniDir和第一个LoadFile,唯一不同的是现在问题也出现在php5ts.dll上。路径是正确的(如果不存在“模块”,而不是“程序”问题 - 再次测试)。还有其他想法吗?
我的PHP是5.5.9(线程安全)和PostgreSQL 9.3,我的系统是Windows XP 32位。
EDIT2:通过EnterpriseDB LAPP的解决方法没有我想象的那么好,所以我仍然在寻找这个问题的答案。
答案 0 :(得分:0)
httpd.conf应如下所示:
#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
PHPIniDir "c:/PHP/"
Loadfile "C:\php\php5ts.dll"
Loadfile "C:\php\libpq.dll"
LoadModule php5_module "c:/PHP/php5apache2_2.dll"
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
AddHandler application/x-httpd-php .php
AddHandler application/x-httpd-php-source .phps