centos6下安装php7的memcached扩展

安装php7的memcached扩展
1.编译安装libmemcached-1.0.18
wget https://launchpadlibrarian.net/165454254/libmemcached-1.0.18.tar.gz

tar -zxvf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18
./configure --prefix=/usr/local/libmemcached --with-memcached
make && make install


2. 安装php-memcached扩展
php使用memcache的扩展有两个,一个memcache,一个memcached,前者比较老,推荐使用第二个,我们这里以第二个为例:

在github上找到适用于php7的分支(https://github.com/php-memcached-dev/php-memcached/tree/php7),同样使用wget下载zip压缩包,解压缩,进入目录,依次执行下列命令(其中php-config和libmemcached目录根据具体情况设定,可以使用whereis或者find来查找

# 解压
cd php-memcached-php7

# 执行phpize会生成configure文件
/usr/local/php/bin/phpize
# 执行预编译
./configure --enable-memcached --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached --disable-memcached-sasl
make
make install


[root@szxxlfhtest02t:/usr/local/src/php-memcached-php7]# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version:         20151012
Zend Module Api No:      20151012
Zend Extension Api No:   320151012

[root@szxxlfhtest02t:/usr/local/src/php-memcached-php7]# make install
Libraries have been installed in:
   /usr/local/src/php-memcached-php7/modules

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,--rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------

Build complete.
Don't forget to run 'make test'.

Installing shared extensions:     /usr/local/php-7.0.12_fpm/lib/php/extensions/no-debug-non-zts-20151012/


修改php.ini的配置
加上:extension_dir="/usr/local/php7.1/lib/php/extensions/no-debug-non-zts-20160303/"(每个人的路径可能不一样)
        extension = "memcached.so
重启php-fpm

3. 修改php.ini文件
(php.ini文件具体位置可以通过phpinfo()函数来查看到),在php.ini文件之中加入下面这句:

# vim /usr/local/php-7.0.12_fpm/lib/php.ini
extension_dir="/usr/local/php-7.0.12_fpm/lib/php/extensions/no-debug-non-zts-20151012/"
extension=memcached.so


[root@szxxlfhtest02t:~]# php -m
[PHP Modules]
bz2
calendar
Core
ctype
curl
date
dba
dom
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
json
ldap
libxml
mbstring
mcrypt
memcache
memcached


4.测试是否安装成功

[root@szxxlfhtest02t:/data/www/vhosts/cmstest.chinasoft.com/httpdocs]# cat mem.php
<?php

$mem  = new Memcached(); //创建一个memcached对象  
$mem->addServer('127.0.0.1',11211);    //连接memcached
$mem->set("key","test");//设置一个变量到内存中,名称是key 值是test  
$get_value = $mem->get('key'); //从内存中取出key的值  
if($mem->getResultCode() == Memcached::RES_NOTFOUND)    //如果该名称的变量没有设置
{
    echo 'not set!';
}
else
{
    echo $get_value;     
}


***************************

[root@newcms:/data/www/cms/cmsx.chinasoft.com.wx/httpdocs/public]# cat /usr/local/nginx/conf/cms.d/cmsx.chinasoft.com.wx.conf 
server {
        listen 80;
        server_name     cmsx.chinasoft.com.wx cmsx.chinasoft.com.wx.wx;
        access_log      /data/www/logs/nginx_log/access/cmsx.chinasoft.com.wx_access.log main ;
    access_log on;
        error_log       /data/www/logs/nginx_log/error/cmsx.chinasoft.com.wx_error.log ;
        root            /data/www/cms/cmsx.chinasoft.com.wx/httpdocs/public/;
        index           index.html index.shtml index.php ;
        include         rewrite.d/cmsx.chinasoft.com.wx.conf ;
    error_page  404 403              /404.html;    
    access_log on;


        #location / {
        #                expires -1;
        #                proxy_pass http://php_pool;
        #                include proxy_params;
        #}

    #location / {
        #        index  index.php index.html index.htm;
        #        try_files $uri $uri/ /index.php?$query_string;
        #}

        #location ~ \.php$ {
        #        fastcgi_pass   unix:/tmp/php-cgi.sock;
        #        fastcgi_index  index.php;
        #        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        #        include        fastcgi_params;
        #}
    location / {
                index index.php index.html index.htm;

                if (!-e $request_filename) {
                        rewrite . /index.php last;
                }
        }
        location ~ \.php$ {
                fastcgi_pass unix:/tmp/php-cgi.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }


}

 

posted @ 2018-09-13 22:09  reblue520  阅读(270)  评论(0编辑  收藏  举报