我在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
什么都不返回。
也许是因为英语不是我的第一语言,我在解释上面引文的第二段时遇到了一些问题。
答案 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启用线程安全代码,以便它适用于我。