Lamp

不同版本的lampp如何安裝不同版本的memcache

  • January 24, 2012

我需要使用不同版本的lampp(xampp for linux)。

我最近還需要將 memcache 與我可能需要使用的任何版本的 lampp 一起使用。

如果我使用包含 PHP 5.3.8 的最後一個 Lampp 版本 1.7.7,一切都會正常進行,我只是這樣做

sudo apt-get install php5-memcache
sudo cp -av '/usr/lib/php5/20090626+lfs/memcache.so' '/opt/lampp/lib/php/extensions/no-debug-non-zts-20090626/memcache.so'

問題是當我嘗試對舊版本的lampp做同樣的事情時。

例如,我解除安裝了lampp 1.7.7和php5-memcache,然後我安裝了lampp 1.7.1,其中包含PHP 5.2.9,但是做

sudo apt-get install php5-memcache

我為舊版本的 php (20060613) 獲得了新版本的 memcache (20090626)。事實上,如果我嘗試複製

sudo cp -av '/usr/lib/php5/20090626+lfs/memcache.so' '/opt/lampp/lib/php/extensions/o-debug-non-zts-20060613/memcache.so'

啟動lampp時出現此錯誤:

Starting XAMPP for Linux 1.7.1...
PHP Warning:  PHP Startup: memcache: Unable to initialize module
Module compiled with module API=20090626, debug=0, thread-safety=0
PHP    compiled with module API=20060613, debug=0, thread-safety=0
These options need to match
in Unknown on line 0

如果我解除安裝 php5-memcahe 並從 lampp 擴展中刪除 memcache.so

sudo apt-get remove php5-memcache
sudo rm /opt/lampp/lib/php/extensions/no-debug-non-zts-20060613/memcache.so

如果我嘗試做

sudo pecl i memcache

我明白了

pecl/memcache is already installed and is the same as the released version 2.2.6
install failed

那麼當我使用 Lampp 1.7.1 時,如何安裝 memcache.so 版本 20060613 呢?

簡單的解決方案。您需要使用 API 20060613 建構 memcache.so。這已經很老了,但是如果您訪問http://packages.ubuntu.com/hardy/php5-memcache,您會發現 amd64 和 i386 包。跑

uname -m

查看您擁有的架構並相應地下載軟體包。下載完包後進入mc打開包,獲取memcache.so並複製到/opt/lampp/lib/php/extensions/no-debug-non-zts-20060613/,添加php.ini

extension=memcache.so

如果說它沒有找到 memcache.so 可能你應該相應地調整 extensiondir。

重啟apache並查看php_info(); 它應該在那裡。

在未來嘗試堅持使用 php/apache/mysql 的 ubuntu/debian 版本並且不要使用lampp。我知道使用lampp要容易得多,但是在您了解它“在幕後”發生的事情之後,您將更容易建構您的應用程序並理解linux。Lampp 的另一個問題是安全更新。如果您使用的是 Ubuntu 或 Debian 版本,您將獲得作業系統的所有升級,並且整個升級過程將需要幾秒鐘而不是幾小時或幾天。

引用自:https://serverfault.com/questions/352771