编译安装LiteSpeed Memcached

Memcached是高效的对象缓存插件。安装Memcached可以让您的PHP网站响应速度得到很大的提升。如果您使用的是LiteSpeed (OpenLiteSpeed)服务器,那么LiteSpeed Memcached具备了普通Memcached全部的功能,并提供了更高的可用性。如果您在一开始安装LiteSpeed的时候没有选择安装Memcached, 那么之后再安装的时候就需要手动编译安装各个组件了。今天我们就介绍一下如何手工安装LiteSpeed Memcached.  本文作者为香菇肥牛,原文链接为https://qing.su/article/152.html, 转载请注明原文链接。谢谢!

1. 系统环境

我们这里使用Ubuntu 18.04 LTS 64 bit操作系统,采用最新版的OpenLiteSpeed, PHP版本是LsPHP 7.3.

2. 安装LSMCD

LSMCD是LiteSpeed Memcached的守护进程,我们从Litespeed官方github下载安装。

1
2
3
4
5
6
7
apt-get install git build-essential zlib1g-dev libexpat1-dev openssl libssl-dev libsasl2-dev libpcre3-dev -y
git clone https://github.com/litespeedtech/lsmcd.git
cd lsmcd
./fixtimestamp.sh
./configure CFLAGS=" -O3" CXXFLAGS=" -O3"
make
make install

安装完毕后,需要配置lsmcd.  首先,我们设定lsmcd的用户组,这里需要和lsphp的运行用户设定一致。如果您安装lsphp时没有指定过,那么这里应该是nobody.

1
chown -R nobody /usr/local/lsmcd

lsmcd的配置文件位置为/usr/local/lsmcd/conf/node.conf 如果需要,您可以编辑这个文件,并设定为符合您需求的值。具体的配置选项说明可以参考这里。https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:lsmcd:configuration

最后,启动lsmcd.

1
service lsmcd start

如果需要监测lsmcd的运行状态,可以使用telnet.  比如,如果之前设定的lsmcd运行端口为11211, 则执行:

1
2
telnet 127.0.0.1 11211
stats

即可看到lsmcd的运行状态。

3. 安装libmemcached

Memcached在PHP网站中的使用依赖php-pecl-memcached拓展。很遗憾,由于我们使用的PHP不是常规版的PHP, 而是LsPHP, 因此这类拓展无法使用包管理器安装,必须手动编译安装。而php-memcached拓展的安装需要libmemcached库。

首先,去libmemcached网站下载libmemcached安装包。

1
2
3
wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
tar zxvf *.gz
cd libmemcached-1.0.18

然后编译安装

1
2
./configure
make

make的时候可能会遇到下列报错:

1
2
3
4
5
6
clients/memflush.cc:42:22: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
        if (opt_servers == false)
                           ^~~~~
clients/memflush.cc:51:24: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
        if (opt_servers == false)
                           ^~~~~

这是由于编译器版本问题导致的,我们编辑文件clients/memflush.cc, 将下面这行(两次出现):

1
if (opt_servers == false)

改成

1
if (! opt_servers)

即可。(https://src.fedoraproject.org/rpms/libmemcached/raw/HEAD/f/libmemcached-build.patch)

然后,重新安装:

1
2
make
make install

如果没有其他报错,则安装完毕。libmemcached默认安装位置为/usr/local/lib/libmemcached.

4. 安装php-memcached拓展

按照上述步骤装好libmemcached之后,就可以安装php-memcached拓展了。这里使用pecl安装。

默认的lsphp不包含pecl, 我们先安装pecl管理器。

1
2
3
cd /usr/local/lsws/lsphp73/bin/
wget http://pear.php.net/go-pear.phar
./lsphp go-pear.phar

这里,我们执行ls, 应该能看到新安装的pecl运行文件了。我们顺便检查一下该目录下是否有phpize, 如果没有phpize, 需要使用下面的命令安装。

1
apt-get install lsphp73-dev

接下来执行下面的命令安装php-memcached拓展。

1
./pecl install memcached

在配置步骤,系统会提示询问libmemcached directory, 其默认值为no, 我们需要指明libmemcached安装目录/usr/local/include/libmemcached. (如果这里一直出问题可以尝试改成yes)

如果安装成功,系统会自动生成memcached.so文件。这时需要编辑php.ini文件(/usr/local/lsws/lsphp73/etc/php/7.3/litespeed/php.ini), 添加下面的行。

1
extension = memcached.so

最后,重启lsws:

1
/usr/local/lsws/bin/lswsctrl restart

这时,我们新建一个phpinfo.php文件,内容为:

1
2
3
<?php
phpinfo();
?>

并在shell中执行:

1
/usr/local/lsws/lsphp73/bin/lsphp phpinfo.php | grep memcached

如果能看到类似于下面的输出,则说明memcached安装成功了。

 

关于LiteSpeed Memcached的安装就介绍到这里。如果您有任何疑问,欢迎在这里留言,我将尽力解答。本文作者为香菇肥牛,原文链接为https://qing.su/article/152.html, 转载请注明原文链接。谢谢!

Leave a Comment