2013-08-06 23 views
3

我在Arch Linux上,試圖配置多個PHP版本來測試我的腳本。使用phpenv,php-build和php-version的多個PHP版本

我自己立足於這三個工具:

首先我安裝Apache和PHP(以及它們的集成封裝),pacman

# pacman -S php apache php-apache 

接下來,我按照指示安裝鏈接上的工具,一切工作正常。

我管理從php-build工具安裝了phpenv-install兩個版本。我有這樣的事情:

$ 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 

現在的問題:

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

在CLI環境一切正常,我可以很容易地在兩個版本之間有php-version切換與Apache集成這一點。

正如我在本文開頭所說的那樣,我還必須從Arch存儲庫安裝PHP,它恰巧在版本5.4.17上。這個安裝在Apache中工作正常。

php-env自述有以下說明:爲Apache APXS庫

phpenv支持動態切換和安裝 將建立和 下安裝Apache的一個libphp5.so共享庫版本的libexec文件夾。

通過調用phpenv global來顯示或更改全球PHP版本, 鏈接將在〜/ .phpenv/lib/libphp5.so下爲相應的 版本構建創建。此鏈接可用於Apache的LoadModule php5_module指令,並且需要Apache在更改時重新啓動。

的問題是,有沒有文件或符號鏈接名爲libphp5.solib目錄既不在整個.phpenv文件夾,因爲

$ find ~/.phpenv -name libphp5.so 

回報什麼。

也許因爲英語不是我的第一語言,我有一些問題來解釋上面引用的第二段。

+0

對不起,你的問題還沒有得到解答。你可以分享有什麼進展嗎? – marcvangend

+1

我最終放棄了在Arch上安裝它。在基於debian的發行版中,可以使用phpbrew(https://github.com/c9s/phpbrew),它不會按照我的意圖做,但是可以正常工作。基本上,使用它我可以編譯各種版本的'libphp5.so',命名爲'libphp551.so','libphp5417.so',並使用命令行工具在不同版本之間切換。我想要的是將一個版本與特定的端口或類似的東西聯繫起來。 –

+0

好吧,不是我所希望的,但感謝您的信息! – marcvangend

回答

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

注意:即使w儘管如此,你可能會遇到問題。檢查包構建時,它看起來像缺少修補程序,以便在Apache運行線程安全mpm時自動禁用PHP以線程安全功能進行編譯。由於在我的系統上不太確定,我希望PHP啓用線程安全代碼,因此它對我很有用。