使用phpenv,php-build和php-version的多个PHP版本

时间:2013-08-06 02:51:31

标签: php linux apache

我在Arch Linux上,试图配置多个PHP版本来测试我的脚本。

我基于这三个工具:

首先,我使用pacman安装了Apache和PHP(及其集成包):

# pacman -S php apache php-apache

接下来,我按照说明在链接上安装工具,一切正常。

我设法使用phpenv-install工具安装php-build两个版本。我有这样的事情:

-- ~
|---.phpenv
  |---lib
  |---versions
    |---5.5.1
    |---5.4.17
  |--- (some more folders)

在CLI环境中,一切正常,我可以使用php-version在两个版本之间轻松切换:

$ php-version 5.5.1
$ php --version
PHP 5.5.1 (cli) (built: Aug  5 2013 22:54:47) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
    with Zend OPcache v7.0.2-dev, Copyright (c) 1999-2013, by Zend Technologies
    with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans

$ php-version 5.4.17
$ php --version
PHP 5.4.17 (cli) (built: Aug  5 2013 23:19:44) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
    with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans

现在问题是:将此与apache集成。

正如我在本文开头所说,我还必须从Arch存储库安装PHP,巧合的是版本5.4.17。这个安装适用于Apache。

php-env自述文件中有以下说明:

  

phpenv支持Apache apxs库的动态切换和安装   将为Apache构建并安装一个libphp5.so共享库   版本libexec文件夹。

     

通过调用phpenv global来显示或更改全局PHP版本a   链接是在〜/ .phpenv / lib / libphp5.so下创建的   发布版本。此链接可用于Apache的LoadModule   php5_module指令并要求Apache在更改时重新启动。

问题是libphp5.so目录中没有整个lib文件夹中没有名为.phpenv的文件或符号链接,因为

$ find ~/.phpenv -name libphp5.so

什么都不返回。

也许是因为英语不是我的第一语言,我在解释上面引文的第二段时遇到了一些问题。

1 个答案:

答案 0 :(得分:0)

AUR中有一个用于phpenv的软件包 https://aur.archlinux.org/packages/phpenv/

以及许多不同版本的PHP的包 https://aur.archlinux.org/packages/?O=0&C=0&SeB=nd&K=phpenv&outdated=&SB=n&SO=a&PP=50&do_Search=Go

首先安装phpenv: yaourt phpenv

然后安装所需的php版本,例如: yaourt php53_29_env

注意:尽管如此,您可能会遇到问题。检查包构建时,看起来它缺少补丁来禁用PHP在apache运行线程安全mpm时自动使用线程安全功能进行编译。不太确定,因为在我的系统上,我希望PHP启用线程安全代码,以便它适用于我。