rbenv/rvm 的 PHP 等效版本

rbenv/rvm 的 PHP 等效版本

我一直使用 Ubuntu 的官方存储库来安装 PHP,但在使用 rbenv 和 ruby​​build 等工具安装 Ruby 后,我想知道是否存在更好的工具/技术来安装 PHP。特别是,我希望能够精确控制要安装的 PHP 版本,而不是只获取 Canonical 为我提供的任何版本。

能够同时安装多个版本并在它们之间无缝切换也很酷。

答案1

也许您想要这个,但作为一个精通 PHP 和 Ruby 编程的人,我可以说 Ruby 拥有版本控制系统的主要原因就是在更改版本时会出很多问题、失败或中断。PHP 对过时的方法和函数的宽容度和理解度要高得多。

例如,如果您从 PHP 5.1.6 跳转到 PHP 5.4,那么在无法快速修复的版本中,发生故障的情况相对较少。这意味着如果确实发生故障,可以从 PHP 错误中相当清楚地推断出出了什么问题。而且 PHP 比 Ruby 具有更强的向后兼容性。

也就是说,您始终可以手动安装多个版本的 PHP 模块,然后只需调整 Apache 配置,重新启动 Apache 即可。例如,我有一个客户端,它有只能与 PHP 5.1.6 一起使用的旧代码。因此,我在 Ubuntu 11.04(然后是 11.10 以及 12.04)上从源代码编译了它,但确保将模块命名为如下名称:

/usr/lib/apache2/modules/libphp516.so

通常安装的 PHP 模块名称如下:

/usr/lib/apache2/modules/libphp5.so

因此,通过包含版本号的命名libphp516.so,我可以拥有多个版本的 PHP。

完成后,要切换版本,我所需要做的就是编辑php5.load位于此处的内容:

sudo nano /etc/apache2/mods-available/php5.load

因此它包含如下行:

# LoadModule php5_module        /usr/lib/apache2/modules/libphp.so
LoadModule php5_module        /usr/lib/apache2/modules/libphp516.so

注释掉的第一行指的是通过apt-get/安装的 PHP 版本aptitude。下面的一行告诉 Apache 加载libphp516.so模块。重新启动 Apache,现在 PHP 5.1.6 可以正常工作了。

但我知道有系统可以以更无缝/更高级的方式管理这一点。正如我一开始所说的,除了像我这样被迫这样做的人之外,我不知道有多少人会需要这样的工具,因为在处理遗留代码方面,PHP 比 Ruby 更具可扩展性和可敬性。两种不同的编码理念在起作用。

相关内容