linux下安装php扩展memcache

简介:

memcache 的工作就是在专门的机器的内存里维护一张巨大的hash表,来存储经常被读写的一些数组与文件,从而极大的提高网站的运行效率,减轻后端数据库的读写压力。


实验环境:centos 6.6 x86_64

LAMP环境搭建完毕:php版本5.6.8、apache版本2.4.12    

1、在安装memcached之前需要安装libevent支持:

1
2
3
4
5
# wget http://syslab.comsenz.com/downloads/linux/libevent-1.4.12-stable.tar.gz
# tar zxvf libevent-1.4.12-stable.tar.gz 
# cd libevent-1.4.12-stable
#./configure --prefix=/usr/local/libevent
#make && make install

2、服务器端 memcached 的编译安装

1
2
3
4
5
# wget http://syslab.comsenz.com/downloads/linux/memcached-1.4.5.tar.gz
# tar zxvf memcached-1.4.5.tar.gz 
# cd  memcached-1.4.5
# ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent/
# make && make install


3、客户端安装memcache步骤: 

1
2
3
4
5
6
#  wget http://www.lishiming.net/data/attachment/forum/memcache-2.2.3.tgz
# tar zxvf memcache-2.2.3.tgz
# cd memcache-2.2.3
# /usr/local/php/bin/phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config --enable-memcache
# make

执行make后报错如下:

1
2
3
4
5
6
7
8
9
10
11
12
/usr/local/src/memcache-2 .2.3 /memcache .c: 在函数‘php_mmc_connect’中:
/usr/local/src/memcache-2 .2.3 /memcache .c:1902: 错误:提供给函数‘zend_list_insert’的实参太少
/usr/local/src/memcache-2 .2.3 /memcache .c:1919: 错误:提供给函数‘zend_list_insert’的实参太少
/usr/local/src/memcache-2 .2.3 /memcache .c: 在函数‘zif_memcache_add_server’中:
/usr/local/src/memcache-2 .2.3 /memcache .c:1975: 错误:提供给函数‘zend_is_callable’的实参太少
/usr/local/src/memcache-2 .2.3 /memcache .c:2003: 错误:提供给函数‘zend_list_insert’的实参太少
/usr/local/src/memcache-2 .2.3 /memcache .c: 在函数‘zif_memcache_set_server_params’中:
/usr/local/src/memcache-2 .2.3 /memcache .c:2059: 错误:提供给函数‘zend_is_callable’的实参太少
/usr/local/src/memcache-2 .2.3 /memcache .c: 在函数‘mmc_find_persistent’中:
/usr/local/src/memcache-2 .2.3 /memcache .c:2159: 错误:提供给函数‘zend_list_insert’的实参太少
/usr/local/src/memcache-2 .2.3 /memcache .c:2177: 错误:提供给函数‘zend_list_insert’的实参太少
make : *** [memcache.lo] 错误 1

根据错误,进行修改:

vi memcache.c

将所有的:zend_list_insert(pool, le_memcache_pool); 

改为:zend_list_insert(pool, le_memcache_pool TSRMLS_CC);


将所有的:zend_list_insert(mmc, le_pmemcache);

改为:zend_list_insert(mmc, le_pmemcache TSRMLS_CC);

讲所有的:if (!zend_is_callable(failure_callback, 0, NULL))

改为:if (!zend_is_callable(failure_callback, 0, NULL, NULL))

修改完成后,重新make编译;

1
2
# make install
Installing shared extensions:      /usr/local/php/lib/php/extensions/no-debug-zts-20131226/

安装完成后的memcache.so模块在上面的路径中;

# vi /usr/local/php/etc/php.ini 

在最后一行添加:extension="memcache.so"

保存退出后,重启apache,使用php -m查看已经安装的memcache模块,或者在浏览器访问phpinfo.php查看;



启动memcached服务端:

# /usr/local/memcached/bin/memcached -d -u root -m 256 -p 11211 -l localhost

-d   是启动一个守护进程,

-m  后边指定memecached使用多少内存,单位是M

-p  指定memcached 启动端口

-l  指定绑定的IP

-u  指定以某个账户的身份启动

启动后报错,找不到libevent模块;

/usr/local/memcached/bin/memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory

需要把 libevent-1.4.so.2 拷贝或链接到 /usr/lib64 (x86_64位系统,32位的为/usr/lib目录)中,否则 memcached 无法正常加载。

# cp /usr/local/libevent/lib/libevent-1.4.so.2 /usr/lib64


memcache环境测试,写一个php文件,在网站根目录下

1
2
3
4
5
6
7
[root@localhost htdocs] # cat 1.php 
<?php
$mem = new Memcache;
$mem->connect( "localhost" , 11211);
$mem-> set ( 'test' , 'hello world' ,0,60);
echo  $mem->get( 'test' );
?>

使用curl或者网页访问IP/1.php如果显示hello world 说明配置成功。

1
2
# curl -xlocalhost:80 192.168.4.231/1.php
hello world

spacer.gifwKiom1Wt82PBkZ6jAAA5_R0aP0Y138.jpg






本文转自 模范生 51CTO博客,原文链接:http://blog.51cto.com/mofansheng/1676746,如需转载请自行联系原作者
目录
相关文章
|
21天前
|
安全 Linux 虚拟化
|
15天前
|
Java 程序员 PHP
01 入门PHP就来我这-安装phpstudy
路老师的PHP入门教程,带你从零开始学习PHP。首先下载并安装phpStudy,接着配置域名和端口,最后创建并运行第一个PHP文件。内容详实,适合初学者。
37 3
01 入门PHP就来我这-安装phpstudy
|
30天前
|
NoSQL MongoDB PHP
PHP7 MongDB 安装与使用
10月更文挑战第19天
34 1
PHP7 MongDB 安装与使用
|
30天前
|
NoSQL 安全 Linux
MongoDB PHP 扩展
10月更文挑战第19天
13 0
MongoDB PHP 扩展
|
1月前
|
tengine 应用服务中间件 Linux
Tengine、Nginx安装PHP命令教程
要在阿里云Linux上安装PHP,请先更新YUM源并启用PHP 8.0仓库,然后安装PHP及相关扩展。通过`php -v`命令验证安装成功后,需修改Nginx配置文件以支持PHP,并重启服务。最后,创建`phpinfo.php`文件测试安装是否成功。对于CentOS系统,还需安装EPEL源和Remi仓库,其余步骤类似。完成上述操作后,可通过浏览器访问`http://IP地址/phpinfo.php`测试安装结果。
|
1月前
|
测试技术 PHP 开发工具
php性能监测模块XHProf安装与测试
【10月更文挑战第13天】php性能监测模块XHProf安装与测试
31 0
|
2月前
|
PHP Windows
thinkPhP6.0安装教程图解--PHP框架安装
本文是一篇关于ThinkPHP 6.0安装教程的图解,包括环境检查、安装Composer、修改Composer镜像地址、安装ThinkPHP框架以及启动运行ThinkPHP的步骤。文章详细描述了每个步骤的操作方法,并提供了相应的命令和截图,帮助用户理解并顺利完成ThinkPHP 6.0的安装和运行。
thinkPhP6.0安装教程图解--PHP框架安装
|
1月前
|
缓存 PHP C语言
宝塔PHP8.1安装fileinfo拓展失败解决办法
在宝塔面板安装PHP8.1后,fileinfo扩展安装失败,手动尝试也报错。通过分析错误信息,在Makefile中修改CFLAGS添加`-std=c99`,并执行`make clean`清除缓存后,重新编译安装成功。最后在php.ini中启用fileinfo扩展并重启PHP服务。注意需调整CFLAGS为`-std=c99 -g`,去掉`-O2`。
121 0
|
10天前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
87 6
下一篇
无影云桌面