centos5.2用memcache 来作PHP 的session.save
最近我的网站访问在直线上升,因为动态会员游戏网站,一直在想办法做些优化,今天想到如果把php的session放在内存,可能会提升网站的访问速度。于是开始搜索资料。经过一天的摸索,终于搞定。问题主要出在php有两个memcache模块,一个是php-memcache,一个是p
最近我的网站访问在直线上升,因为动态会员游戏网站,一直在想办法做些优化,今天想到如果把php的session放在内存,可能会提升网站的访问速度。于是开始搜索资料。经过一天的摸索,终于搞定。问题主要出在php有两个memcache模块,一个是php-memcache,一个是php-memcached,php-memcached是最新的,也是比较稳定的,网上的资料都是关于php-memcache的,而没有提到php-memcached,而php-memcached的配置跟php-memcache是有所不同的。大致的整个安装过程:
1、安装libevent 1.4.10
wget http://monkey.org/~provos/libevent-1.4.10-stable.tar.gz
tar xzvf libevent-1.4.9-stable.tar.gz
cd libevent-1.4.10-stable
./configure --prefix=/usr
make && make install
2、安装memcached1.2.8
wget http://memcached.googlecode.com/files/memcached-1.2.8.tar.gz
tar -zxvf memcached-1.2.8.tar.gz
cd memcached-1.2.8
./configure --with-libevent=/usr
make && make install
3、安装zlib
wget http://www.zlib.net/zlib-1.2.3.tar.gz
tar -zxvf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure --prefix=/usr --shared
make && make install
4、安装libmemcached
wget http://download.tangent.org/libmemcached-0.26.tar.gz
tar zxvf libmemcached-0.26.tar.gz
cd libmemcached-0.26
./configure --prefix=/usr/local/libmemcached/
make && make install
5、安装php-memcached模块
wget http://pecl.php.net/get/memcached
tar -zxvf memcached-0.1.5.tgz
cd memcached-0.1.5
phpize
./configure --with-php-config=/usr/bin/php-config --enable-memcache --with-libmemcached-dir=/usr/local/libmemcached
make && make install
6、启动memcached
/usr/local/bin/memcached -p 11211 -l 127.0.0.1 -d
执行后,可以用以下办法查看执行状态
telnet 127.0.0.1 11211
stats
STAT pid 11568
STAT uptime 5910
STAT time 1241876672
STAT version 1.2.8
STAT pointer_size 32
STAT rusage_user 0.751885
STAT rusage_system 1.584759
STAT curr_items 2615
STAT total_items 36753
STAT bytes 244835
STAT curr_connections 3
STAT total_connections 18427
STAT connection_structures 36
STAT cmd_flush 0
STAT cmd_get 18388
STAT cmd_set 38334
STAT get_hits 15717
STAT get_misses 2671
STAT evictions 0
STAT bytes_read 4924864
STAT bytes_written 1992526
STAT limit_maxbytes 134217728
STAT threads 2
STAT accepting_conns 1
STAT listen_disabled_num 0
END
有以上信息出现,表明启动成功!
7、加入开机启动
nano /etc/rc.d/local.d
加一行
/usr/local/bin/memcached -p 11211 -l 127.0.0.1 -d
8、编辑php.ini
nano /etc/php.ini
在文件最后加入:
extension = "memcached.so"
修改
session.save_handler = files -> session.save_handler = memcached
session.save_path = "/var/lib/php/session" -> session.save_path = "127.0.0.1:11211"
9、重启apache
service httpd restart
大功告成!
需要注意的地方主要有2点,
1、安装libmemcached需用到zlib,我机器没有这个,花了很多时间找编译libmemcached时出错的原因。
2、php.ini文件的配置,php-memcached模块跟php-memcache不同,要设成是memcached,这个在phpinfo页面的Registered save handlers可以看到。如果设置不正确,会有"Cannot find save handler memcache"的错误提示。
3、session.save_path几乎所有的资料都是session.save_path = "tcp://127.0.0.1:11211",但这可能在memcaceh是这样用的,我没有验证,我一开始也是这样设置,但一直出现"Failed to write session data (memcached)"的错误,找了很入也没找到是什么原因,后来在php.net上找到
Defines a comma separated of hostname:port entries to use for session server pool, for example "sess1:11211, sess2:11211".
这段说明,于是去掉tcp://再试,才终于成功!
最后:因为网站一直在运行的,建议不要直接动php.ini,
直接用一个php文件来测试
ini_set("session.save_handler","memcached");
ini_set("session.save_path","127.0.0.1:11211");
session_start();
if (!isset($_SESSION['TEST'])) {
$_SESSION['TEST'] = time();
}
$_SESSION['TEST3'] = time();
print $_SESSION['TEST'];
print "
";
print $_SESSION['TEST3'];
print "
";
print session_id();
?>
只要这个文件没有出现错误提示了,就可以直接修改php.ini相应的内容,然后重启apache,就样就不影响会员访问网站。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP에서 데이터베이스 작업은 매우 쉽습니다. 이번 장에서는 CRUD(생성, 읽기, 업데이트, 삭제) 작업을 이해하겠습니다.

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu

CakePHP에 로그인하는 것은 매우 쉬운 작업입니다. 한 가지 기능만 사용하면 됩니다. cronjob과 같은 백그라운드 프로세스에 대해 오류, 예외, 사용자 활동, 사용자가 취한 조치를 기록할 수 있습니다. CakePHP에 데이터를 기록하는 것은 쉽습니다. log() 함수는 다음과 같습니다.
