zoukankan      html  css  js  c++  java
  • memcached结合php以及memcache共享session

    //安装php的memcache扩展
    
    一、使用php自带的pecl安装程序
    [root@localhost src]# /usr/local/php/bin/pecl install memcache
    ...
    ...
    ...
    Build process completed successfully
    Installing '/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/memcache.so'
    install ok: channel://pecl.php.net/memcache-2.2.7
    configuration option "php_ini" is not set to php.ini location
    You should add "extension=memcache.so" to php.ini
    
    [root@localhost src]# cp /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/memcache.so /usr/local/php/ext
    [root@localhost src]# vim /usr/local/php/etc/php.ini
    ...
    ...
    ;extension_dir = "./"     
    /*改为extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/"*/
    //再添加一行
    extension = "memcache.so“
    
    //检验,查看是否有memcache
    [root@localhost src]# /usr/local/php/bin/php -m   
    
    //检测php是否连接memcache,下载一个已经写好的脚本
    [root@localhost src]# curl www.apelearn.com/study_v2/.memcache.txt >1.php 2>/dev/null
    
    //执行
    [root@localhost src]# /usr/local/php/bin/php 1.php
    //执行成功-- 只有当在php.ini中定义了memcache模块才可以执行此脚本
    Get key1 value: This is first value<br>Get key1 value: This is replace value<br>Get key2 value: Array
    (
        [0] => aaa
        [1] => bbb
        [2] => ccc
        [3] => ddd
    )
    <br>Get key1 value: <br>Get key2 value: <br>
    二、通过安装包进行安装
    
    //先安装php的memcache扩展
    
    [root@ff ~]# cd /usr/local/src
    [root@ff src]# wget http://lishiming.net/data/attachment/forum/memcache-2.2.3.tgz
    [root@ff ~]# tar zxvf memcache-2.2.3.tgz
    [root@ff ~]# cd memcache-2.2.3
    [root@ff memcache-2.2.3]# /usr/local/php/bin/phpize
    Configuring for:
    PHP Api Version:         20131106
    Zend Module Api No:      20131226
    Zend Extension Api No:   220131226
    [root@ff memcache-2.2.3]# ./configure --with-php-config=/usr/local/php/bin/php-config
    [root@ff memcache-2.2.3]# make 
    [root@ff memcache-2.2.3]# make install       //此时安装完出现的路径需要记录
    Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
    
    [root@ff memcache-2.2.3]# vim /usr/local/php/etc/php.ini
    //change --> extension_dir = "./" to -->
    extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/"
    //add
    extension = "memcache.so"
    
    
    
    
    //php连接memcached检验
    [root@ff memcache-2.2.3]# /usr/local/php/bin/php -m|grep memcache
    memcache
    
    //下载测试php脚本
    [root@ff memcache-2.2.3]# curl www.apelearn.com/study_v2/.memcache.txt > 1.php 2>/dev/null
    [root@ff memcache-2.2.3]# /usr/local/php/bin/php 1.php    //运行
    //成功
    Get key1 value: This is first value<br>Get key1 value: This is replace value<br>Get key2 value: Array
    (
        [0] => aaa
        [1] => bbb
        [2] => ccc
        [3] => ddd
    )
    <br>Get key1 value: <br>Get key2 value: <br>[root@ff memcache-2.2.3]# 

    安装会出现的错误!!!

    1. /usr/local/php/bin/phpize 运行不成功。找不到phpize
    -->
    phpize是属于php-devel的内容,因此在centos中只要运行如下命令:
    yum install php-devel 然后就会安装上phpize了。
    
    运行phpize是为了生成./configure文件
    
    
    
    2. ./configure  会出现 :checking for libevent directory... configure: error: libevent is required. You can get it from http://www.monkey.org/~provos/libevent/
    If it's already installed, specify its path using --with-libevent=/dir/
    -->
    
     yum install -y libevent-devel
    //memcached实现session共享
    
    一、不管在哪种架构中,都能实现的
    [root@localhost ~]# vim /usr/local/php/etc/php.ini
    //添加
    session.save_handler = "memcache"
    session.save_path = "tcp://127.0.0.1:11211"  
    //如果memcached服务为远程机器,则可将ip改为远程机器的ip
    
    //测试
    [root@localhost src]# wget http://study.lishiming.net/.mem_se.txt
    [root@localhost src]# mv .mem_se.txt /usr/local/apache2/htdocs/session.php            //因为我们要用curl或浏览器访问此脚本,所以要保证其可以被打开
    [root@localhost src]# curl localhost/session.php
    //查看是否有显示内容,如果没有,查看已经配置好的网站文件test.conf
    1471872176<br><br>1471872176<br><br>3crb4tjhhuqd1o4ao7n73putq6
    [root@ff memcache-2.2.3]# telnet 127.0.0.1 11211
    Trying 127.0.0.1...
    Connected to 127.0.0.1.
    Escape character is '^]'.
    get 3crb4tjhhuqd1o4ao7n73putq6  //<br>后的那一串字符
    VALUE 3crb4tjhhuqd1o4ao7n73putq6 0 37
    TEST|i:1471872176;TEST3|i:1471872176;  //i后的是第一个<br>前的值
    quit //结束
    Connection closed by foreign host.

    //每一次刷新都会得到一个新的字符串
    [root@ff extra]# curl -x127.0.0.1:80 localhost/session.php
    1471872300<br><br>1471872300<br><br>hejae0ksknfrunr8fc25mkqu50
    [root@ff extra]# curl -x127.0.0.1:80 localhost/session.php
    1471872304<br><br>1471872304<br><br>3oiopcitd291j9ogv5is6o0ik0
    [root@ff extra]#
    //--!!如果添加到php.ini不成功,可以添加到apache或nginx对应的php-fpm的配置文件中,见下方配置

    //
    在httpd.conf或者test.conf对应的虚拟主机中的配置语句{LAMP结构} php_value session.save_handler "memcache" php_value session.save_path "tcp://127.0.0.1:11211"

    //在php-fpm.conf中的pool中添加 {LNMP结构}
    php_value[session.save_handler] = memcache
    php_value[session.save_path] = "tcp://127.0.0.1:11211
  • 相关阅读:
    LeetCode 515. 在每个树行中找最大值(Find Largest Value in Each Tree Row)
    LeetCode 114. 二叉树展开为链表(Flatten Binary Tree to Linked List)
    LeetCode 199. 二叉树的右视图(Binary Tree Right Side View)
    LeetCode 1022. 从根到叶的二进制数之和(Sum of Root To Leaf Binary Numbers)
    LeetCode 897. 递增顺序查找树(Increasing Order Search Tree)
    LeetCode 617. 合并二叉树(Merge Two Binary Trees)
    LeetCode 206. 反转链表(Reverse Linked List) 16
    LeetCode 104. 二叉树的最大深度(Maximum Depth of Binary Tree)
    LeetCode 110. 平衡二叉树(Balanced Binary Tree) 15
    LeetCode 108. 将有序数组转换为二叉搜索树(Convert Sorted Array to Binary Search Tree) 14
  • 原文地址:https://www.cnblogs.com/frankielf0921/p/5409489.html
Copyright © 2011-2022 走看看