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 |
并在shell中执行:
1 | /usr/local/lsws/lsphp73/bin/lsphp phpinfo.php | grep memcached |
如果能看到类似于下面的输出,则说明memcached安装成功了。
关于LiteSpeed Memcached的安装就介绍到这里。如果您有任何疑问,欢迎在这里留言,我将尽力解答。本文作者为香菇肥牛,原文链接为https://qing.su/article/152.html, 转载请注明原文链接。谢谢!
1 thought on “编译安装LiteSpeed Memcached”