3

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

我基于这三个工具:

首先,我安装了 Apache 和 PHP(以及它们的集成包)pacman

# pacman -S php apache php-apache

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

我设法使用phpenv-installfromphp-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 库的动态切换, install 将在版本 libexec 文件夹下为 Apache 构建和安装 libphp5.so 共享库。

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

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

$ find ~/.phpenv -name libphp5.so

什么都不返回。

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

4

1 回答 1

1

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

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

于 2015-02-26T01:00:59.913 回答