我目前正准备为基于Apache / Windows的开发环境安装PHP,但似乎我将陷入第一个障碍:选择正确的软件包进行安装。
PHP is available in no less than four flavours:
这些版本在实用意义上有什么区别?
如果这还不够复杂,PHP的5.3版只能在VC9中使用(5.2附带VC6软件包)。然而,根据PHP网站,你应该不使用VC9和Apache ...那么为什么Apache会获得旧版本?
这一切都非常令人困惑,我希望能帮助理解这些选择。
答案 0 :(得分:53)
经过大量的研究,我找到了自己对这个问题的答案。
在最基本的表单中,答案是: 您应该安装的PHP版本来自您正在运行的网络服务器。
以下是根据我学到的内容选择PHP版本所使用的术语的更深层次解释:
首先,使用不同的编译器编译不同版本的Apache for Windows。例如,Apache.org上的版本旨在使用 Microsoft Visual C ++ 6 (也称为 VC6 )进行编译。这个编译器很受欢迎,但也很老。 (它可以追溯到1998年。)
为不同的编译器制作了不同版本的Apache。例如,可从ApacheLounge.com下载的版本可以使用2008年开始使用的流行且更新的编译器 Microsoft Visual C ++ 9 进行编译。也称为 VC9 < / strong>即可。
(注意:这两个编译器是两个最受欢迎的选项。因此虽然可能有一个VC7,VC8等编译版本的Apache,但你不太可能遇到它们。)
使用这个更新的编译器(VC9)非常重要,因为最新版本的PHP仅以VC9形式发布(尽管旧版本仍可用于VC6)。
最重要的是,根据ApacheLounge,使用用VC9编译的Apache版本有很多改进,“在性能,内存管理和稳定性等领域”。
如果这还不够,PHP的开发人员在他们的网站上发表了以下声明:
Windows用户:请注意我们这样做 不再提供使用创建的构建 Visual Studio C ++ 6(VC6)。它是 不可能保持高品质 并安全地构建PHP for Windows 使用这个未维护的编译器。
我们建议将VC9 Apache构建为 由ApacheLounge提供。
所有PHP用户都应该注意PHP 5.2系列不再受支持。强烈建议所有用户 升级到PHP 5.3.6。
总而言之,如果你问我,这是使用VC9版本的Apache和PHP的一个非常引人注目的论点。
因此,如果您使用official Apache site中的Apache版本,它将使用VC6进行编译,因此,您应该为该编译器使用旧版本的PHP。如果您使用的是使用VC9编译的Apache版本(如ApacheLounge.com上提供的版本),则可以使用最新版本的PHP(适用于VC9)。
对我来说,运行本地开发环境,最好有最新版本的PHP,因此需要一个VC9版本的Apache,所以我可以使用PHP的VC9版本。
再次归结为您的网络服务器。默认情况下,Apache在Windows上安装为模块,但可以将其更改为以 FastCGI 运行。两者之间存在很多差异,但基本上FastCGI更现代,更快,更强大,更耗资源。对于运行本地开发环境的人来说,FastCGI可能有点过分,但很多托管公司因为我所说的原因而以FastCGI运行,因此在开发环境中这样做有很好的理由。
如果您将Apache(或IIS)作为FastCGI(或CGI)运行,那么您需要PHP的非线程安全版本。如果您将Apache默认运行(作为模块),那么您将需要更传统的线程安全版本。
请注意:这一切仅适用于Windows用户。
我不打算使用FastCGI(除非有人说服我),所以对我来说,我想要 VC9线程安全版本的PHP 。
就是这样。
进一步阅读:
答案 1 :(得分:1)
就个人而言,我使用的是虚拟LAMP服务器。我使用的每个托管服务都在Linux的某些风格上,并且WAMP和LAMP之间存在太多差异。然后我只使用该版本Linux的默认tasksel LAMP服务器。
我现在的实际设置是VMWare(Mac上的Fusion,Windows上的Player)。我有3个虚拟机 - 一个用于PHP5.3,Ubuntu 10.04 LTS,另一个用于PHP 5.1,用于Ubuntu 8.04 LTS。 (我使用的主机之一是RedHat,目前只支持PHP 5.1)。我有第三个用于RubyOnRails dev的VM。
换句话说,我尝试让我的开发环境尽可能接近我的生产环境。因此,请确定主机上的Apache和PHP版本,并将其作为指南。