在freebsd上安装多个php版本和扩展

jgt*_*ime 3 freebsd php

我目前正在学习如何使用 freebsd。最近我一直在尝试运行多个 php 版本以及它们各自的包。但是,我在进行安装时似乎遇到了问题。

我的默认位置php安装/usr/local/etc/,但是我希望能够安装php5.2php5.3php5.4/usr/local/etc/php52/usr/local/etc/php53/usr/local/etc/php54分别。

使用端口,我只是通过执行cd /usr/ports/lang/php5x && make PREFIX="/usr/local/etc/php5x" install clean.

现在的问题是:我如何对我所有的扩展做同样的事情PHP versions?当我尝试像这样安装 php-extensions: 时cd /usr/ports/lang/php5x-extension && make PREFIX="/usr/local/etc/php5x/lib/php" install clean,我收到此错误

...
===>  PHPizing for php53-bcmath-5.3.17
env: /usr/local/bin/phpize: No such file or directory
*** Error code 127

Stop in /usr/ports/math/php53-bcmath.
*** Error code 1

Stop in /usr/ports/lang/php53-extensions.
Run Code Online (Sandbox Code Playgroud)

我的 PHPize 位于/usr/local/etc/php5x/bin/phpize 那么我如何获得make或寻找phpize正确的路径?是否有更清洁,可能更简单的维护多个 php 安装的方法?由于某些在 5.2 上运行并在 5.3 上中断的遗留代码的兼容性问题,我需要实现这一点。

谢谢你。

Flo*_*igl 7

没有人提到的变量叫做 PHPBASE:它允许在 FreeBSD 服务器上使用多个 PHP 安装,将每个安装在它自己的目录中。然后在 make.conf 中使用它来将特定的 PHP 模块(php52-somethings 与 php54-somethings)指向正确的“基本”目录。

我已经看到它使用过几次,但到目前为止还不敢自己尝试。

当我为你寻找一个例子时,我现在实际上找到了一个明显更好的例子......

看这里:

http://webcodingstudio.com/blog/freebsd-92-server-configuration-apache-php-mysql-dns-samba

如果有人(仍然)想知道为什么要这样做:

关键是所谓的无缝升级。如果您需要为实际用户运行服务器,而不仅仅是在您自己的地下室中,您可以这样做。如果您为用户提供快速升级路径并且能够在版本之间来回切换,他们最终可以迁移。否则,它们最终也会迁移,而不是迁移到您提供给它们的 PHP 版本,而是迁移到不同的提供商。