Centos7编译Nginx+PHP+MySql《三》

一、准备工作

创建目录source和package,分别用来放源码和编译后的文件

# mkdir /source/

# mkdir /package/

二、memcached(服务端篇)

首先先安装memcached依赖库libevent。

2.1 安装libevent

[官方网站]http://libevent.org/

命令流程:

# cd /source/

# wget https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz

# tar -zxvf libevent-2.0.22-stable.tar.gz

# cd libevent-2.0.22-stable

# ./configure --prefix=/package/libevent

# make

# makeinstall

2.2 安装memcached

[官方网站]http://memcached.org/

命令流程:

# cd /source/

# wget http://memcached.org/files/memcached-1.4.25.tar.gz

# tar -zxvf memcached-1.4.25.tar.gz#cdmemcached-1.4.25

# ./configure --prefix=/lnmp/memcached --with-libevent=/package/libevent

# make

# makeinstall

本章总结:

通过以上操作就很简单的把memcached服务端编译好了。这时候就可以打开服务端进行工作了。

# /lnmp/memcached/bin/memcached -d -m2048-l127.0.0.1-p11211-u root -c 1024 –P /tmp/memcached.pid

启动参数说明:

-d  选项是启动一个守护进程。

-m  分配给Memcache使用的内存数量,单位是MB,默认64MB。

-l  监听的IP地址。(默认:INADDR_ANY,所有地址)

-p  设置Memcache的TCP监听的端口,最好是1024以上的端口。

-u  运行Memcache的用户,如果当前为root的话,需要使用此参数指定用户。

-c  选项是最大运行的并发连接数,默认是1024。

-P  设置保存Memcache的pid文件。

三、memcached(客户端篇)

第一种:php代码

这种方法实现客户端最简单,直接下载我写的《SL_Memcached》类库include到自己的项目里调用相关对象就行了。

当然,你也可以用其他语言实现。这里就不在讲了。

使用方法如下:


Centos7编译Nginx+PHP+MySql《三》_第1张图片

输出:

string(21) "我是快乐的键值"

NULL

四、memcached客户端篇)

第二种:php-memcached

这种客户端比较麻烦了,他是生成php的扩展库文件memcached.so。

首先先安装memcached依赖库zlib、libmemcached。

4.1 安装zlib

[官方网站]http://zlib.net/

命令流程:

# cd /source/

# wget http://zlib.net/zlib-1.2.8.tar.gz

# tar -zxvf zlib-1.2.8.tar.gz

# ./configure --prefix=/package/zlib

# make

# makeinstall

4.2 安装libmemcached

[官方网站]http://libmemcached.org/

命令流程:

# cd /source/

# wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz

# tar -zxvf libmemcached-1.0.18.tar.gz

# cd libmemcached-1.0.18

# ./configure --prefix=/package/libmemcached

# make

# makeinstall

4.3 安装m4

[官方网站]http://www.gnu.org/software/m4/m4.html

命令流程:

# cd /source/

# wget http://ftp.gnu.org/gnu/m4/m4-1.4.17.tar.gz

# tar -zxvf m4-1.4.17.tar.gz

# cd m4-1.4.17

# ./configure --prefix=/package/m4

# make

# makeinstall

# exportPATH=/package/m4/bin:$PATH

4.3 安装php-memcached

[官方网站]http://pecl.php.net/package/memcached

命令流程:

# cd /source/

# wget https://github.com/php-memcached-dev/php-memcached/archive/php7.zip

# unzip php7.zip

# cd php-memcached-php7

# /lnmp/php/bin/phpize

# ./configure \

# --with-php-config=/lnmp/php/bin/php-config \

# --with-zlib-dir=/package/zlib \

# --with-libmemcached-dir=/package/libmemcached \

# --disable-memcached-sasl

# make

# makeinstall

备注:

安装成功后会有如下类似提示:

Installing shared extensions:     /lnmp/php/lib/php/extensions/no-debug-non-zts-20151012/

这说明在 /lnmp/php/lib/php/extensions/no-debug-non-zts-20151012/ 该目录下会生成memcached.so

这个就是memcached.so所在目录。我们先记住这个目录。

开始配置php-memcached

打开php.ini

# vi /lnmp/php/etc/php.ini

在合适的位置添加如下

extension = /lnmp/php/lib/php/extensions/no-debug-non-zts-20151012/memcached.so

Centos7编译Nginx+PHP+MySql《三》_第2张图片

------------------------------------------------------------

五、常见错误总汇

------------------------------------------------------------

5.1 Unable to load dynamic library 'memcached.so' - libmemcached.so.11: cannot open shared object file: No such file or directory in Unknown no line 0

说明:没有找到php的附加库memcached.so所需动态库libmemcached.so.11。出现上述错误一般是没有将libmemcached目录设置到环境变量里。

我们添加到环境变量LD_LIBRARY_PATH里就搞定了。

#export LD_LIBRARY_PATH=/package/libmemcached/lib:$LD_LIBRARY_PATH

你可能感兴趣的:(Centos7编译Nginx+PHP+MySql《三》)