我再次卡住了Apache的设置家伙。 我正在使用运行Windows 7专业版的Service Pack 1的64位系统。我从队友中复制了工作的php5安装目录,从php5安装文件夹复制了必要的.dll文件(就像他们在队友的工作环境中一样)到我的windows/system32/ 。 Apache服务器启动成功与默认的apacheconfiguration( httpd.conf )文件。 我能够在浏览器中访问本地主机。 但PHP代码不parsing。 我注意到在Apacheconfiguration文件中没有像这样的行:
# PHP5 module LoadModule php5_module D:/php5/php5apache2_2.dll
如果我添加这一行,Apache服务器启动失败。 运行testingconfiguration会导致以下错误 –
httpd.exe: Syntax error on line 60 of C:/Program Files (x86)/Apache Software Foundation/Apache2.2/conf/httpd.conf: Cannot load D:/php5/php5apache2_2.dll into server: The specified procedure could not be found.
但是php5apache2_2.dll文件存在于指定的位置,我已经将当前系统用户的所有权限授予php5安装目录。 同样的一行也出现在apache错误日志中。 另一件事情是,我不知道什么时候将完整的日志写入日志文件。 如果我打开日志文件进行阅读,我是否感到困惑? 大声笑…因为我无法观察input时的模式。 我看到一些日志条目正在制作,有些则没有。 但是现在这是一个单独的问题。
我以前在另一个硬盘上设置Apache,PHP在同一个系统上。 我遵循了像我现在跟随的相同的步骤,它成功地设置了,虽然经过了很多头,如上面写的日志文件input混淆。 我不记得我之前是如何修复它的。 但是,我试着用同样的apacheconfiguration文件(早先在旧硬盘上的设置上工作的那个 – 已经进行了备份),但它仍然给出相同的错误。
更新
我读了http://us3.php.net/manual/en/install.windows.apache2.php,然后在LoadModule php5_module "D:/php5/php5apache2_2.dll"后面添加了AddHandler application/x-httpd-php .php 。 仍然没有成功。
我也读过这个博客 ,其中提到了一些VC6和VC9二进制文件。 我不知道他们。 我需要做些什么吗?
进一步更新
我从http://httpd.apache.org/download.cgi下载了apache – “没有encryption(无mod_ssl)(MSI安装程序)的Win32二进制”选项。
很可能你有不兼容的Apache构build 。 你没有提到你从哪里下载了Apache HTTPD,你有什么PHP版本。
从Apache Lounge网站获得最新的Apache版本 – 它们的版本是用VC9编译的,而apache.org版本是VC6版本。 您需要VC9构build,因为现在正在编译官方PHP版本(您可以阅读有关Windows网站的PHP的小解释 – 请参阅#2中的链接)。
从Windows for PHP获取PHP的 线程安全构build(基于您希望将其作为Apache模块运行的问题)。 如果你想运行它作为FastCGI,那么非线程安全构build是必需的。
禁用所有非默认的 PHP扩展(直到您成功启动Apache与PHP工作)。
根据需要configuration你的PHP和Apache(到目前为止你提到的那些Apacheconfiguration行都可以)。
PS “从php5安装文件夹(如他们在队友的工作设置)复制必要的.dll文件到我的windows / system32 /
您在Windows的x64位版本。 C:\windows\system32\仅适用于64位进程/文件。 在你的情况下,Apache和PHP是X32,所以正确的地方将是C:\Windows\SysWOW64 。
没有真正的理由在那里复制这些文件 – 您可以将您的PHP安装path( D:\php5\ )添加到PATH环境variables(将其放在前面),Windows将自动查找所有文件(可能需要重新启动) – 对我很好。
PPS而不是手动安装,您可以使用已经预先configuration的堆栈之一: XAMP , WAMP或类似的。
我解决了这个问题。 实际上没有一些必要的DLL文件,不知道哪个特定的文件,是原因,我试图在没有很多的DLL文件。
我所做的是,我已经从队友1的apacheconfiguration部分,然后从队友2(谁是一个32位系统与Windows px)复制php5目录。 我认为,PHP 5文件夹将是相同的,是错的。 当我拿到队友1的php5文件夹的时候,问题就解决了。
我查了一下,发现两个php5文件夹的内容有很多不同之处,主要是dll文件。 没有必要的dll文件一定是这个问题,因为我需要一个系统重新启动后,队友1正确的php5文件夹。
故事的道德启示 –
在复制的时候,不要在同一个地方应用大脑和复制:)
您不必将任何这些(如libeay32.dll , ssleay32.dll )文件复制到任何地方,问题可以通过将php安装目录添加到系统path环境variables来解决。