Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用phpenv、PHP构建和PHP版本的多个PHP版本_Php_Linux_Apache - Fatal编程技术网

使用phpenv、PHP构建和PHP版本的多个PHP版本

使用phpenv、PHP构建和PHP版本的多个PHP版本,php,linux,apache,Php,Linux,Apache,我在ArchLinux上,试图配置多个PHP版本来测试我的脚本 我基于以下三个工具: 首先,我用pacman安装了Apache和PHP(及其集成包): # pacman -S php apache php-apache 接下来,我按照说明在链接上安装工具,一切正常 我通过php build工具使用phpenv install安装了两个版本。我得到了这样的东西: -- ~ |---.phpenv |---lib |---versions |---5.5.1 |-

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

我基于以下三个工具:

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

# pacman -S php apache php-apache
接下来,我按照说明在链接上安装工具,一切正常

我通过
php build
工具使用
phpenv install
安装了两个版本。我得到了这样的东西:

-- ~
|---.phpenv
  |---lib
  |---versions
    |---5.5.1
    |---5.4.17
  |--- (some more folders)
在CLI环境中,一切正常,使用
php版本
,我可以轻松地在两个版本之间切换:

$ 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
readme上有以下说明:

phpenv支持apacheapxs库的动态切换并安装 将在下为Apache构建并安装libphp5.so共享库 libexec文件夹的版本

通过调用phpenv global来显示或更改全局PHP版本a 链接是在~/.phpenv/lib/libphp5.so下为适当的 发布版本。此链接可用于Apache的LoadModule php5_模块指令,并要求Apache在更改时重新启动

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

$ find ~/.phpenv -name libphp5.so
不返回任何内容


可能是因为英语不是我的第一语言,我在理解上面引语的第二段时遇到了一些问题。

在AUR中有一个phpenv的软件包

以及许多不同版本的PHP的软件包

首先安装phpenv: 雅乌特普涅夫

然后安装所需的php版本,例如: 雅奥尔特php53_29_环境


注意:即使这样,您也可能会遇到问题。检查包的构建,它似乎缺少了一个补丁,当apache运行线程安全的mpm时,该补丁可以禁用PHP自动编译的线程安全特性。不太确定,因为在我的系统上,我希望PHP能够启用线程安全代码,这样它就可以为我工作。

很抱歉,您的问题尚未得到回答。你们有什么进展可以分享吗?我最终放弃了在Arch上安装它。在基于debian的发行版上,可以使用phpbrew(),它不符合我的初衷,但运行良好。基本上,使用它我可以编译各种版本的
libphp5.so
命名为
libphp551.so
libphp5417.so
,并使用命令行工具在不同版本之间切换。我想要的是将一个版本关联到一个特定的端口或类似的东西。好的,这不是我所希望的,但是谢谢你提供的信息!定位libphp5.so的输出是什么?还有,对
~/.phpenv
及其子文件夹有什么感兴趣的吗?