【问题标题】:Is there a way to set a different PHP module per Virtual Host?有没有办法为每个虚拟主机设置不同的 PHP 模块?
【发布时间】:2011-03-08 20:18:30
【问题描述】:

我正在本地机器上为一堆网站进行开发。其中一些网站最终在 php5.3 上运行,而另一些则在 php5.2 上运行。有没有办法可以设置虚拟主机为每个虚拟主机使用不同版本的 php?

【问题讨论】:

    标签: php apache apache2


    【解决方案1】:

    您可以尝试将 php 作为 cgi 运行。我不知道它是否有效,您必须将不同的 php.ini 位置传递给 cgi 以获取不同的临时目录之类的东西。不建议在生产机器上使用它。

    【讨论】:

      【解决方案2】:

      您应该能够手动编译两个版本的 PHP 以分离目录,并为每个网站使用 FastCGI 设置 PHP。 FastCGI 将为您提供与 apache 上的 mod_php 相当的性能。

      您也可以使用 CGI 设置每一个。它慢了很多,但是你看不到像 APC 这样的模块将如何帮助你的代码或使用共享内存或持久连接可靠(它们只适用于一个请求)

      如果这不起作用,您可以再次安装您的网络服务器,将其配置为在不同的端口上运行,然后将您的其他网络服务器设置为代理,将请求转发到特定的虚拟主机另一个网络服务器。

      【讨论】:

        【解决方案3】:

        您可以按照上述操作并在您的机器上使用 FastCGI 使用不同版本的 PHP。但由于它是用于开发的,因此您也可以使用 ie。 VirtualBox 或 VMware 服务器并创建 2 台虚拟机,一台使用 PHP 5.2,一台使用 5.3(或者您可以创建更多,每个项目一台 - 实际上我就是这样做的:p)。

        可能的好处:您可以使用操作系统 - 以及相同的软件版本 ie。 apache / mysql - 在您的外部主机上使用(这就是为什么我更喜欢每个项目一个虚拟机)。这在以后调试时也可能很有用。

        【讨论】:

        • 对于一个开发人员来说似乎有很多开销。如果虚拟机只是试图复制它,他最好在生产机器上建立一个开发网站。我认为这也会使编写抵抗简单更改(如文件路径)的代码变得更加困难。通常,这种硬编码信息会传播到数据库或其他区域。不是每个人都知道所有这些事情都应该从配置文件开始。如果您的代码确实有一些经常在系统之间中断的区域,请编写一个脚本来测试它。这将比虚拟机的开销节省更多的时间。
        【解决方案4】:

        我使用的是denwer。它是本地服务器。 Denwer 可以在一台机器或 USB 上多次安装。我的电脑上有2个denwers。一个与 php 5.2。其次是 php 5.3。

        【讨论】:

        • 他们不需要在不同的端口上运行吗?
        猜你喜欢
        • 1970-01-01
        • 2011-02-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-13
        • 2016-08-29
        相关资源
        最近更新 更多