如何使用PHP55安装memcached


How to install memcached with PHP55

首先,我的web服务器运行在Redhat6.6上,我需要自己构建PHP以启用Sybase支持。

今天我想启用memcached支持。

据我所知,我不能使用yum install php55-php-pecl-memcached.x86_64,因为它还将安装默认的php包作为依赖项,并使memcached仅为其php依赖项启用。

我查看了PECL软件包,但它似乎只适用于PHP5.2。

我安装了libmemcached-devel.x86_64,但我不能phpize,因为它在libmemcached文件夹中丢失了一些文件,它似乎不是phpize需要的源。。。

我能做更多的

从零开始,有一个很好的方法可以做到这一点。

通过RPM安装memcached

安装Memcached最简单的方法是通过包管理器,如yum or apt(在您的案例中是yum,因为它是redhat)。然而,Memcached在默认的软件包集合中不可用,因此我们需要做的第一件事是添加一个新的RPM(Red Hat Package Manager)服务器,以便我们可以通过yum. 安装Memcached

最好的第三方RPM服务器之一由Dag Wiers提供,它将为我们提供Red Hat没有直接提供的最新软件包。设置RPM服务器的一个棘手部分是确保获得与服务器版本和体系结构(32位或64位)相匹配的存储库。因此,我们需要首先收集这些信息。

从shell提示符中,获取CentOS/RedHat版本号:

$ cat /etc/redhat-release
CentOS release 5.3 (Final)

然后获取服务器体系结构信息。这是32位机器的典型响应:

$ uname -a

Linux服务器1.example.com 2.6.18-92.1.13.el5#1 SMP美国东部时间9月24日星期三19:33:52 2008 i686 i686 i286 GNU/Linux

或者,如果你有一台64位机器,你可能会得到这样的东西:

$ uname -a

Linux server.example.com 2.6.18-53.1.21.el5#1 SMP美国东部时间2008年5月20日星期二09:35:07 x86_64 x86_64 GNU/Linux

现在从http://dag.wieers.com/rpm/FAQ.php#B2. 安装与您的体系结构和CentOS版本相匹配的RPM服务器

当我写这篇文章的时候,我使用的服务器是一台32位的机器,运行的是CentOS 5.x版本。所以我的特定服务器是:

http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

要安装新的RPM服务器,我们只需使用RPM命令。请注意,您必须找到与您的体系结构和软件相匹配的RPM服务器字符串。除非你有一台32位的机器在运行CentOS 5.x,否则不要使用URL,而是从http://dag.wieers.com/rpm/FAQ.php#B2. 获取合适的服务器

$ rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

现在我们可以简单地使用yum(或apt)来安装Memcached:

$ yum install memcached

之后,您可以通过调用memcached来确认它已启动并正在运行。

$ memcached -h

memcached 1.2.6

安装Memcache PECL扩展

尽管memcached在服务器上运行得很好,但如果没有PECL扩展,就无法从PHP访问它。幸运的是,这是一个非常简单的过程,只需使用pecl命令即可。

$ pecl install memcache

然后将memcache扩展名添加到php.ini文件中,通常位于/etc/php.ini。

extension=memcache.so

最后重新启动Apache,这样它就会获得新的扩展:

$ /etc/init.d/apache2 restart

在Web服务器上运行phpinfo()现在应该可以确认memcache已安装:

phpinfo()的输出显示memcache已成功安装将Memcached设置为服务

仅仅安装memcache本身并不能起到任何作用,我们需要实际启动它的一些实例供我们的web服务器连接,并且我们需要memcached在服务器重新启动时自动启动。

为此,我们需要在/etc/init.d/memcached上安装一个新脚本。为此,我通常使用一个有点粗糙的自定义脚本,因为它假设memcached仅用于我们的web服务器。然而,大多数时候这是真的,而且效果很好。

Download the memcached script (rename to just "memcached").

因此,只需将此脚本加载到/etc/init.d.中,然后设置其权限以使其可执行:

$ chmod 755 memcached

然后注册脚本以在服务器上启动:

$ chkconfig --add memcached

现在,您可以将memcached作为服务启动。

$ service memcached start

您可以通过检查ps.来确认memcached已经启动了几个实例

$ ps -e | grep memcached
22805 ?        00:00:59 memcached
22807 ?        00:00:58 memcached
22809 ?        00:01:16 memcached
22811 ?        00:00:55 memcached
22813 ?        00:00:01 memcached
22815 ?        00:01:02 memcached
22817 ?        00:00:27 memcached
22819 ?        00:00:35 memcached
22821 ?        00:00:01 memcached
22823 ?        00:00:01 memcached
22825 ?        00:00:01 memcached