如何安装不同版本的 memcache 和不同版本的 lampp

如何安装不同版本的 memcache 和不同版本的 lampp

我需要使用不同版本的 lampp (适用于 Linux 的 xampp)。
我最近还需要将 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?

答案1

最简单的解决方案。您需要使用 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,那么您可能应该相应地调整 extensiondir。

重新启动 apache 并查看 php_info(); 它应该在那里。

将来尽量坚持使用 ubuntu/debian 版本的 php/apache/mysql,不要使用 lampp。我知道使用 lampp 要容易得多,但了解了“幕后”发生的事情后,您将更容易构建应用程序并理解 linux。lampp 的另一个问题是安全更新。如果您使用的是 Ubuntu 或 Debian 版本,您将获得操作系统的所有升级,整个升级过程只需几秒钟,而不是几小时或几天。

答案2

当使用自动化工具安装 apache 和 php 时,运行不同版本的应用程序的灵活性受到很大限制。

我将下载 apache 和 php 的源代码并通过以下方式安装它们

./configure {with all the options and independent paths that you want} make ; make install

这将允许您做两件事。

  1. 将您的环境与 yum 和 apt-get install 等自动化工具分开
  2. 它将允许您安装独立版本的 pecl 插件特定版本

从长远来看,管理起来可能会稍微复杂一些。但随着你的成长和适应,它将为你提供更多的可比性。

另外,您可能已经安装了 pecl。尝试运行

[路径]/pecl 列表

它会告诉你已经安装了什么。要删除,你可以使用

pecl remove [产品名称]

卸载你不想安装的插件

相关内容