如何将Memcached安装到运行CentOS的CPanel中

时间:2020-02-23 14:41:29  来源:igfitidea点击:

最近,我试图将VBulletin论坛配置为使用Memcached进行缓存。
我一直在寻找一些易于设置的教程,但没有找到任何有用且简单的教程。
我已经在Mac上安装了memcached服务器,所以对此有了一些想法,当我成功时,我想到写这篇文章来也帮助他人。

要在任何软件中安装和使用Memcached缓存,我们需要做以下三件事。

  • 安装Memcached服务器使用的libevent库
  • 安装memcached服务器并启动它
  • 为Memcache安装PHP扩展

在安装Memcached服务器之前,只需在要使用的任何位置创建目录。
我们将在那里下载所有二进制文件,并将其用于我们的安装目的。

在CentOS上安装libevent

运行以下命令以在CentOS上安装libevent。
使用最新的libevent稳定版本。

wget https://github.com/downloads/libevent/libevent/libevent-2.0.20-stable.tar.gz
tar xvfz libevent-2.0.20-stable.tar.gz
cd libevent-2.0.20-stable
./configure
make
make install

上面的命令将在您的CentOS服务器上安装libevent。

在CentOS上安装Memcached服务器

运行以下命令以下载最新的Memcached服务器库并进行安装。
检查他们的以获取最新版本。

wget https://memcached.googlecode.com/files/memcached-1.4.15.tar.gz
tar xvfz memcached-1.4.15.tar.gz
cd memcached-1.4.15
./configure
make
make install

上面的步骤将安装Memcached服务器,现在您可以按照以下命令启动它。

memcached

疑难解答提示

如果出现以下错误"加载共享库时出错:libevent-1.4.so.2:无法打开共享库文件:没有这样的文件或者目录",那么您需要通过以下命令注册libevent。

export LD_LIBRARY_PATH= /usr/local/lib

您应该在用户个人资料(.bash_profile)中保留上述export命令,这样就不必始终导出它。

如果您使用的是root用户,则可能会收到一条错误消息,因为" [memcached]如果没有-u开关,不能以root身份运行"。
您无法使用root用户运行Memcached。
使用以下命令启动Memcached服务器。

Memcached安全提示

确保在启动Memcached服务器时使用-l选项,以便只有特定的IP可以连接到Memcached实例。
如果您不使用此选项,那么任何知道memcached的IP和端口的人都可以使用telnet连接它,这是安全威胁。

memcached -d -u nobody -p 11211

现在尝试使用telnet连接到memcached服务器,并从memcached telnet命令运行一些命令以确保其正常工作。

当您对memcached服务器运行良好感到满意之后,请转到下一步安装PHP Memcache扩展。

在CentOS上安装PHP Memcached Extension

运行以下命令以安装PHP Memcached扩展并进行配置。
确保使用最新的稳定版本。

wget https://pecl.php.net/get/memcache-2.2.7.tgz
tar xvfz memcache-2.2.7.tgz
cd memcache-2.2.7
phpize
./configure
make
make install

上面的命令将安装Memcached扩展,但是要与PHP一起使用,我们需要在php.ini文件中对其进行配置,然后重新启动apache Web服务器。

vi /usr/local/lib/php.ini

将以下行添加到php.ini文件。

extension=memcache.so

检查extension_dir变量(如果未在php.ini中设置)(很可能是首次安装任何扩展程序),然后添加以下几行以提供目录位置。
确保像在服务器中一样更改目录位置。

extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20060613"
extension=memcache.so

现在您的PHP配置已完成,还可以加载Memcached扩展名,请运行以下命令以重新启动apache Web服务器。

service httpd restart

运行以下命令以确认已加载Memcache模块。

php -m

测试PHP Memcache扩展

要测试一切是否正常,只需创建一个包含以下内容的PHP文件。

<html>
<head>
<title>PHP Memcache Extension Test</title>
</head>
<body>
<?php
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");
echo "Server's version: {$memcache->getVersion()}";
$tmp = new stdClass;
$tmp->string_attribute = 'theitroad';
$tmp->string_attribute = 123;
$memcache->set('key', $tmp, false, 10) or die ("Failed to save temporary object at memcache server");
echo "Data from the cache:\n";
print_r($memcache->get('key'));
?> 
</body>
</html>

现在,从浏览器访问此PHP文件,如果得到如下输出:

Server's version: 1.4.15Data from the cache: stdClass Object ( [string_attribute] => 123 )

这意味着一切都很好。
Memcached服务器运行良好,PHP Memcache模块能够连接并保存/检索数据到缓存服务器。