编译安装LiteSpeed Memcached

微信扫一扫,分享到朋友圈

编译安装LiteSpeed Memcached

1. 系统环境

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

2. 安装LSMCD

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

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 .

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.

service lsmcd start

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

telnet 127.0.0.1 11211
stats

即可看到lsmcd的运行状态。

3. 安装libmemcached

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

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

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

然后编译安装

./configure
make

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

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, 将下面这行(两次出现):

if (opt_servers == false)

改成

if (! opt_servers)

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

然后,重新安装:

make
make install

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

4. 安装php-memcached拓展

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

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

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

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

apt-get install lsphp73-dev

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

./pecl install memcached

在配置步骤,系统会提示询问libmemcached directory, 其默认值为no, 我们需要指明libmemcached安装目录/usr/local/lib/libmemcached.

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

extension = memcached.so

最后,重启lsws:

/usr/local/lsws/bin/lswsctrl restart

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

<?php
phpinfo();
?>

并在shell中执行:

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

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

微信扫一扫,分享到朋友圈

编译安装LiteSpeed Memcached

你是学心理学的,那你会算命吗?| 漫画

上一篇

通用汽车将升级其超级巡航技术 以提供城市街道自动驾驶能力

下一篇

你也可能喜欢

编译安装LiteSpeed Memcached

长按储存图像,分享给朋友