编译安装LiteSpeed Memcached-wordpress速度优化

  • A+
所属分类:软件
摘要

那么LiteSpeed Memcached具备了普通Memcached全部的功能,并提供了更高的可用性。如果您在一开始安装LiteSpeed的时候没有选择安装Memcached, 那么之后再安装的时候就需要手动编译安装各个组件了。

Memcached是高效的对象缓存插件。安装Memcached可以让您的PHP网站响应速度得到很大的提升。如果您使用的是LiteSpeed (OpenLiteSpeed)服务器,那么LiteSpeed Memcached具备了普通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

 

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: