此方法适用 ubuntu/debian 及centos等相关平台(主要是因为采用lnmp,lnmp目前支持的这些平台)
先采用LNMP自动编译安装好nignx+php+mysql+zend optimizer+eaccelerator
然后编译安装最新版的xcache及memcache软件
因为lnmp安装脚本默认没有安装pdo-mysql模块
所以后面采用编译相关模块的方法添加php5所需的模块
php-pdo、php xcache、php memcache模块
转载请加上文章来源及本博的地址http://www.phpd.cn
安装方法:
(1)下载LNMP自动编译基本服务 详细方法:http://blog.licess.cn/lnmp-debian-ubuntu/
重启nginx : kill -HUP ‘cat /usr/local/nginx/logs/nginx.pid’
重启php-cgi : /usr/local/php/sbin/php-fpm restart [注start\stop(启动和停止)]
(2)安装memcache
下载
libevent(当前最新稳定版本1.4.13) wget http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz
memcache(当前最新稳定版本 1.4.3) wget http://memcached.googlecode.com/files/memcached-1.4.3.tar.gz
先安装libevent
tar zxvf libevent-1.4.13-stable.tar.gz
cd libevent-1.4.13-stable
./configure –prefix=/usr
make
make install
再安装memcache
tar zxvf memcached-1.4.3.tar.gz
cd memcached-1.4.3.tar.gz
./configure –with-libevent=/usr
make
make install
安装完成后会把memcached放到 /usr/local/bin/memcached
启动memcache
/usr/local/bin/memcached -d -m 128 -u root -l 192.168.1.9 -p 1111 -c 256 -P /tmp/memcached.pid
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,
-u是运行Memcache的用户,我这里是root,
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.1.9,
-p是设置Memcache监听的端口,我这里设置了1111,最好是1024以上的端口,
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,
关闭memcache
kill ‘cat /tmp/memcached.pid’
(3)安装相关php模块 [pdo-mysql、php xcache模块(二种方式,一是单独运行二是做为zend插件运行)、php memcache客户端模块]
1、下载相关软件
pdo-mysql (当前最新稳定版本1.0.2) wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
xcache (当前最新稳定版本1.3.0) wget http://xcache.lighttpd.net/pub/Releases/1.3.0/xcache-1.3.0.tar.gz
php-memcache(当前最新稳定版本) wget http://pecl.php.net/get/memcache-2.2.5.tgz
2、安装pdo-mysql
tar zxvf PDO_MYSQL-1.0.2.tgz
cd PDO_MYSQL-1.0.2
/usr/local/php/bin/phpize
./configure –with-php-config=/usr/local/php/bin/php-config
make
make install
安装完成后的最终位置是 /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/pdo_mysql.so
3、安装xcache
tar zxvf xcache-1.3.0.tar.gz
cd xcache-1.3.0.tar.gz
/usr/local/php/bin/phpize
./configure –with-php-config=/usr/local/php/bin/php-config –enable-xcache –enable-optimizer
安装完成后的最终位置是 /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/xcache.so
4、安装php memcache客户端模块
tar zxvf memcache-2.2.5.tgz
cd memcache-2.2.5.tgz
/usr/local/php/bin/phpize
./configure –enable-memcache –with-php-config=/usr/local/php/bin/php-config –with-zlib-dir
make
make install
安装完成后的最终位置是 /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/memcache.so
5、修改php.ini文件,添加模块支持
vi /usr/local/php/etc/php.ini 在后面添加
extension_dir="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
extension=pdo_mysql.so
extension=memcache.so
如果xcache做单独模块的话:
extension=xcache.so
如果xcache做为zend插件的话:
[xcache-common]
zend_extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/xcache.so
[xcache.admin]
; Change xcache.admin.user to your preferred login name
xcache.admin.user = "admin"
; Change xcache.admin.pass to the MD5 fingerprint of your password
; Use md5 -s "your_secret_password" to find the fingerprint
;密码是’123456’的md5
xcache.admin.pass = "e10adc3949ba59abbe56e057f20f883e"
[xcache]
; Change xcache.size to tune the size of the opcode cache
xcache.size = 16M
xcache.shm_scheme = "mmap"
xcache.count = 2
xcache.slots = 8K
xcache.ttl = 0
xcache.gc_interval = 0
; Change xcache.var_size to adjust the size of variable cache
xcache.var_size = 8M
xcache.var_count = 1
xcache.var_slots = 8K
xcache.var_ttl = 0
xcache.var_maxttl = 0
xcache.var_gc_interval = 300
xcache.test = Off
xcache.readonly_protection = On
xcache.mmap_path = "/tmp/xcache"
xcache.coredump_directory = ""
xcache.cacher = On
xcache.stat = On
xcache.optimizer = Off
[xcache.coverager]
xcache.coverager = On
xcache.coveragedump_directory = ""
6、最后需要重启php-fpm(php-cgi)进程
/usr/local/php/sbin/php-fpm restart
ok了,最终环境配置成功,可以上传一个phpinfo();进行测试,看是否软件都全部正常工作
也可以测试一下memcache是否自动工作
vi /home/wwwroot/memcache.php
- <?php
- $memcache=new Memcache;
- $memcache->connect("192.168.1.9",1111) or die("Memcache could not connect");
- $v=$memcache->getVersion();
- echo ‘Memcache Version : ‘.$v.‘<br />’;
- echo ‘Memcache set Val<br />’;
- $memcache->set("name","test memcache!");
- echo ‘echo memcache val (name):’.$memcache->get("name");
- ?>