memcache实现php会话保持-创新互联

memcache实现php会话保持

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:空间域名、雅安服务器托管、营销软件、网站建设、沈河网站维护、网站推广。

实验目标:

实现通过haproxy轮询调度(RR)反代至两台lamp时,用户会话ID保持不变。

版本:

haproxy-1.5.4-3.el6.x86_64,yum安装

memcached-1.4.15-9.el7_2.1.x86_64,yum安装

LAMP:httpd-2.4.9、mariadb-5.5.36-linux-x86_64、php-5.4.26,都是编译安装。

php的memcache扩展模块:memcache-2.2.7,编译安装

PHP安装:(其他安装略过)

 编译成php-fpm

./configure --prefix=/usr/local/php-5.2.26 --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml  --enable-sockets --enable-fpm --with-mcrypt  --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php-5.2.26 --with-bz2

memcache扩展模块安装

tar xf memcache-2.2.7.tgz cd memcache-2.2.7     /usr/local/php-5.2.26/bin/phpize      Configuring for:     PHP Api Version:         20100412     Zend Module Api No:      20100525     Zend Extension Api No:   220100525./configure --with-php-config=/usr/local/php/bin/php-config --enable-memcache make && make install

 上述安装完后会有类似以下的提示:

Installing shared extensions:    /usr/local/php-5.2.26/lib/php/extensions/no-debug-non-zts-20100525/memcache.so

 编辑/etc/php.ini,在“Dynamic Extensions”相关的位置添加如下一行来载入memcache扩展:

extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/memcache.so

httpd虚拟机配置:(只展示其中一台的配置)

cat /etc/httpd-2.4.9/extra/httpd-vhosts.conf: <VirtualHost 192.168.1.30:80> DocumentRoot "/www/test1.com" ErrorLog "logs/dummy-test1.com-error_log" CustomLog "logs/dummy-test1.com-access_log" common <Directory /www/test1.com> require all granted </Directory> ProxyRequests Off ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.1.30:9000/www/test1.com/$1 </VirtualHost>

httpd启用PHP及启动导入虚拟机配置:

启动以下两个模块:

LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

修改:

DirectoryIndex index.php index.html

添加:

Include /etc/httpd-2.4.9/extra/httpd-vhosts.conf AddType application/x-httpd-php-source .phps AddType application/x-httpd-php .php

测试php与memcache的连接是否成功:

cat /www/test1/01.php: <?php $mem = new Memcache; $mem->connect("192.168.1.25", 11211)  or die("Could not connect"); $version = $mem->getVersion(); echo "Server's version: ".$version."<br/>\n"; $mem->set('hellokey', 'Hello World', 0, 600) or die("Failed to save data at the memcached server"); echo "Store data in the cache (data will expire in 600 seconds)<br/>\n"; $get_result = $mem->get('hellokey'); cho "$get_result is from memcached server."; ?>

访问此01.php,出现“Hello World is from memcached server”时,说明表memcache与php连接成功。

修改/etc/php.ini,把会话保存到memcache中。

session.save_handler = memcache session.save_path="tcp://192.168.1.25:11211"

haproxy配置:

frontend  main *:80     default_backend             app   backend app     balance    roundrobin     server app1 192.168.1.13:80 check     server app2 192.168.1.30:80 check

测试会话保存是否成功:

192.168.1.13(lamp)的测试脚本:/www/test1.com/02.php

<?php session_start(); if (!isset($_SESSION['admin'])) { $_SESSION['TEST'] = 'wan'; } print $_SESSION['admin']; print "\n"; print session_id(); print "\n"; print "===> 192.168.1.13 web server"; ?>

192.168.1.30(lamp)的测试脚本:/www/test1.com/02.php

<?php session_start(); if (!isset($_SESSION['admin'])) { $_SESSION['TEST'] = 'wan'; } print $_SESSION['admin']; print "\n"; print session_id(); print "\n"; echo "===> 192.168.1.30 web server" ?>

区别在于最后一行print显示lamp本身的IP地址。

浏览器访问02.php

memcache实现php会话保持

memcache实现php会话保持

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

名称栏目:memcache实现php会话保持-创新互联
本文来源:https://www.cdcxhl.com/article18/ddihdp.html

成都网站建设公司_创新互联,为您提供软件开发标签优化自适应网站企业网站制作做网站面包屑导航

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

搜索引擎优化