有没有办法为每个虚拟主机设置不同的 PHP 模块?
Posted
技术标签:
【中文标题】有没有办法为每个虚拟主机设置不同的 PHP 模块?【英文标题】:Is there a way to set a different PHP module per Virtual Host? 【发布时间】:2011-03-08 20:18:30 【问题描述】:我正在本地机器上为一堆网站进行开发。其中一些网站最终在 php5.3 上运行,而另一些则在 php5.2 上运行。有没有办法可以设置虚拟主机为每个虚拟主机使用不同版本的 php?
【问题讨论】:
【参考方案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。
【讨论】:
他们不需要在不同的端口上运行吗?以上是关于有没有办法为每个虚拟主机设置不同的 PHP 模块?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法在使用 SpringCloud OpenFeign 时为每个 Feign 实例创建不同的客户端?
有没有办法在 PHP 中进行真正的 ping 操作? (没有执行)