centos6 yum 安装memcached
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
| 1. 安装第三方软件库
wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.5.2-2.rf.src.rpm rpm -ivh rpmforge-release-0.5.2-2.rf.src.rpm 2. 查找Memcached
yum search memcached 3. 安装Memcached
yum -y install memcached 4. 验证安装
memcached -h 应该会输出一些帮助信息 5. 将memcache加入启动列表
chkconfig --level 2345 memcached on 6. 配置Memcache
vi /etc/sysconfig/memcached 文件中内容如下 PORT=”11211″ 端口 USER=”root” 使用的用户名 MAXCONN=”1024″ 同时最大连接数 CACHESIZE=”64″ 使用的内存大小 OPTIONS=”" 附加参数 7. 查看memcache状态
memcached-tool [Memcache Server IP]:[Memcache Server Port] stats 如:memcached-tool 127.0.0.1:11211 stats =====至此,我们将Memcache服务配置完毕,接着我们配置PHP的扩展,以便在程序中来调用===== PHP共有2种Memcache扩展,一个叫Memcache(2002年发布),另一个叫Memcached(2008年发布) Memcached比较新,它依赖于limemcached库才能运行,不过它能完成基于Memcache服务的几乎所有功能,比如:Memcached::getResultCode ,它能返回上一次操作Memcache的结果,而Memcache则没有这个功能 Memcache(没有d)不依赖任何库就能运行,安装相对简单,同时也能完成Memcache服务的大部分主要功能。 下面分别介绍2者的安装方式。 8. 安装PHP的Memcache扩展(yum安装php已安装此扩展)
wget http://pecl.php.net/get/memcache-2.2.6.tgz wget http://pecl.php.net/get/memcache-3.0.6.tgz
tar vxzf memcache-2.2.6.tgz cd memcache-2.2.6 /usr/bin/phpize (如果不知道phpize在什么位置,可以用find / -name phpize查找) ./configure –enable-memcache –with-php-config=/usr/bin/php-config –with-zlib-dir make make install 记录下安装成功后的提示,类似于: Installing shared extensions: /usr/lib/php/modules/ 把这个地址记录下来 增加扩展extension配置文件 查看是否存在 /etc/php.d/memcache.ini 这个文件,如果不存在,我们就自己建立一个 vi /etc/php.d/memcache.ini 增加1行 extension=memcache.so 最后验证一下是否安装完成 php -m|grep memcache 应该会显示memcache 如果出现类似的错误:PHP Warning: Module ‘memcache’ already loaded in Unknown on line 0 那可以把php.ini新增加的extension=/usr/lib/php/modules/memcache.so注释掉 9. PHP的Memcached扩展安装(没有实验)
首先确认一下json头文件是否正确配置 ls /usr/include/php/ext/json/php_json.h (这是默认路径,如果安装php是指定了其他路径,则查看其他路径) 如果文件不存在,那我们需要先配置json头文件;如果已经存在,那就不需要下面这步操作了 确认一下json的版本,我们在phpinfo()中可以查看, wget wget http://pecl.php.net/get/json-1.2.1.tgz (确认下载了正确的版本) tar xzvf json-1.2.1.tgz mkdir -R /usr/include/php/ext/json/ cp json-1.2.1/php_json.h /usr/include/php/ext/json/ 安装libmemached wget http://launchpad.net/libmemcached/1.0/0.50a/+download/libmemcached-0.50.tar.gz (不要下载0.51版,它无法完成编译) launchpad.net/libmemcached/1.0/1.0.10/+download/libmemcached-1.0.10.tar.gz这个是最新版 tar -xzvf libmemcached-0.50.tar.gz cd libmemcached-0.50.tar.gz ./configure –prefix=/usr/local/libmemcached –with-memcached make make install 再安装Memcached扩展 wget http://pecl.php.net/get/memcached-1.0.2.tgz tar xzvf memcached-1.0.2.tgz cd memcached-1.0.2 ./configure –enable-memcached –with-php-config=/usr/bin/php-config –with-zlib-dir –with-libmemcached-dir=/usr/local/libmemcached –prefix=/usr/local/phpmemcached make make install 记录下安装成功后的提示,类似于: Installing shared extensions: /usr/lib/php/modules/ 增加扩展extension配置文件 vi /etc/php.d/memcached.ini 增加1行 extension=memcached.so 最后验证一下是否安装完成 php -m|grep memcached 应该会显示memcached 如果在添加扩展so文件时,直接修改php.ini,那么可能会出现下面的错误: /usr/lib/php/modules/memcached.so: undefined symbol: php_json_encode in Unknown on line 0 这个错误是因为在 memcached.so 加载之前必须加载 json.so ,而json.so是在/etc/php.d/json.ini中加载,这样会导致json.so在memcached.so之后加载;可以删除/etc /php.d/json.ini文件,而在php.ini中直接添加extensino=json.so来解决 =====PHP中配置MemCache就是这些====== 10. 配置selinux
selinux是一套linux的安全系统,它指定了应用程序可以访问的磁盘文件、网络端口等等。 如果装有selinux,那么默认的selinux会阻止memcache程序访问11211端口,所以必须对selinux进行配置才行。 方法1: 临时降低selinux运行级别,以便我们进行测试 命令:setenforce [Enforcing | Permissive] Enforcing表示不允许违反策略的操作 Permissive表示允许违反策略的操作,但会记录下来 我们使用 setenforce Permissive 方法2: 修改selinux配置文件,关闭selinux 编辑 /etc/selinux/config 文件,将 SELINUX=enforcing 改为 SELINUX=disabled 方法3: 修改selinux的http策略,使得httpd进程可以访问网络,这样也就可以使用memcache了 命令:setsebool -P httpd_can_network_connect true 参数P的意思是保持设置的有效性,这样在重启之后这个设置依然有效,不会改变 11. 查看selinux状态
sestatus -bv 12. 配置防火墙
如果Memcache和Web服务器不是同一台服务器,那么或许还需要配置iptables 登录Memcache服务器,并取得root权限 vi /etc/sysconfig/iptables -A RH-Firewall-1-INPUT -p tcp -s Web服务器1的IP地址 –dport 11211 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -s Web服务器2的IP地址 –dport 11211 -j ACCEPT …… :wq /etc/init.d/iptables restart 附:在Windows开发环境中,也能使用Memcached
1. 到 http://splinedancer.com/memcached-win32/ 下载memcache,如果无法打开链接,可在本文最后下载; 2. 解压后在运行框内执行以下命令: e:memcachedmemcached.exe -d install e:memcachedmemcached.exe -d start 3. 然后将 php_memcache.dll(在本文最后下载) 复制到 system32 和 PHP安装目录下的ext文件夹内; 4. 在php.ini文件中增加 extension=php_memcache.dll; 5. 重启Apache
|
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
微信支付
支付宝