您好,欢迎访问一九零五行业门户网

PHP memcached的Session的施用与配置

php memcached的session的使用与配置
在http://bardo.iteye.com/blog/914110这篇文章中,我们已讲了 php memcached 的安装方法。 php memcached的session的使用,有哪些问题,这里简述一下:
memcached的session,第一大优点是比php session要高效,快速。其次是可以方便实现多主机session共享
使用以下方式使用memcached的session:
单一站点的服务器,可以在php.ini中使用:
session.save_handler memcached
session.save_path? host1:11211,host2:11211
?session.save_path 中的参数必须是逗号分隔的主机名加端口。主机名也可以使用ip地址。
虽然,服务端都是memcached,但不同于memcache扩展,它不需要在save_path中指定通讯协议
如果服务器有多主机,你要给你当前的虚拟主机配置,则可以配置到.htaccess文件中。格式如下:
php_value session.save_handler memcached
php_value session.save_path? host1:11211,host2:11211
?注意事项:此时,php.ini中的 session.use_cookies的值必须是1。如果系统中此值不是1,那么在
.htaccess文件中要增加:
php_value session.use_cookies = 1
?如果.heaccess报错,可以参考下面的例子进行修改:
# php 4, apache 1.
? php_value session.save_handler memcached
# php 4, apache 2.
? php_value session.save_handler memcached
# php 5, apache 1 and 2.
? php_value session.save_handler memcached
?.htaccess可以控制到目录级别。而同时,还有可以直接在php代码中控制的方式:
ini_set(session.save_handler, memcached);
ini_set(session.save_path, host1:11211,host2:11211);
然而,这也要看你php的运行模式,如果是 mod_php方式, .htaccess是可以修改的, 但是如果你安装的是
fast_cgi,那么,你需要php_fpm来管理不同的php.ini。如果是mod_fcgid,那么,就要用fcgidinitialenv
phprc /dirofphiini 来设置不同的php.ini,但是,fcgidinitialenv是新版本的中的命令。老板本的则是
defaultinitenv。有些版本有bug,不一定能设置成功。而对于suphp,则也需要在其配置中指定不同的配置
目录。
以下是 mod_fcgid 的一个配置实例:
#httpd.conf
loadmodule php5_module /php/php5apache2_2.dll
loadmodule fcgid_module modules/mod_fcgid.so
phpinidir /php
# whatever directives wanted bla bla bla
# use same php.ini as mod_php globally for mod_fcgid
fcgidinitialenv phprc /php
#httpd-vhost.conf
#using mod_php and /php/php.ini
? servername php.example.com
? documentroot /home/htdocs
#using mod_fcgid and /home/user1/php.ini
? servername user1.example.com
? documentroot /home/user1/htdocs
? fcgidinitialenv phprc /home/user1
? addhandler fcgid-script .php
? fcgidwrapper /php/php-cgi.exe .php
#using mod_fcgid and /home/user2/php.ini
? servername user2.example.com
? documentroot /home/user2/htdocs
? fcgidinitialenv phprc /home/user2
? addhandler fcgid-script .php
? fcgidwrapper /php/php-cgi.exe .php
#using mod_fcgid and global php.ini
? servername user3.example.com
? documentroot /home/user3/htdocs
? addhandler fcgid-script .php
? fcgidwrapper /php/php-cgi.exe .php
?
如果这些所有针对站点设置的都行不通,那你只能够使用代码的方法区别对待了。
代码中使用,一种可以直接调用ini_set, 还有一种,就是用 memcached自己写一个 session类,然后,映身
session函数到你写的session类中,这一点网上也是有例子的,所以,也不用多讲了。
其它类似信息

推荐信息