欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

linux配置安装 memcached 同时给 php 安装 memcache 的几种方法 drupal 下 安装 memcache 下面几个结合看 有大用 有大大用

linux配置安装memcached同时给php安装memcache的几种方法

先看这个第一个 一般就能安装 memcache 了
安装memcached只用了一句就可以搞定了,只是在后面php配置时碰到一些小问题了,但最后还是很好的解决了这个问题,下面给各位介绍一下
方法一

环境:CentOS 6.2 32位系统,PHP 5.4.25(由5.2.17升级到5.4.25),memcached 1.4.15

扩展包下载路径:http://pecl.php.net/package/memcache
刚开始安装的是3.0.6的memcache扩展包,扩展安装路径在

 代码如下复制代码

/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/memcached.so

在php.ini里也配置了扩展,配置如下:

 代码如下复制代码

[memcache]
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/memcached.so

重启服务后,memcache还是无法使用,报以下错误:

PHP Warning:  PHP Startup: memcache: Unable to initialize module
Module compiled with module API=20060613
PHP    compiled with module API=20100525

猜想跟扩展包的版本是不是有关,找了一个稳定版本memcache-2.2.7的包,安装一切顺利,PHP可连接memcache进行操作。
是什么原因造成以上报错呢?

查看phpize -v,显示以下信息:

 代码如下复制代码

Configuring for:
PHP Api Version:         20100412
Zend Module Api No:      20100525
Zend Extension Api No:   220100525
PHP Api Version和Zend Module Api No

为什么不一致呢?PHP版本导致的

补充:使用yum安装方法  从下面开始看吧 操作吧

1. 通过yum安装

 代码如下

yum search memcached

如果有,继续使用 yum 去安装,如果没有,你需要添加资源库到你的系统里。

yum install memcached //可以使用下面一行的命令吧
复制代码
yum -y install memcached
#安装完成后执行:
memcached -h

#出现memcached帮助信息说明安装成功


2. 加入启动服务

 代码如下复制代码

chkconfig --level 2345 memcached on


3. 配置Memcached

 代码如下复制代码

vim /etc/sysconfig/memcached
#文件中内容如下,按需要修改:
PORT="11211" #端口
USER="root" #用户名
MAXCONN="1024" #最大连接数
CACHESIZE="64" #内存大小
OPTIONS="" #附加参数


4. 安装libmemached

 代码如下复制代码

wget https://launchpad.net/libmemcached/1.0/1.0.16/+download/libmemcached-1.0.16.tar.gz //找不到这个文件 用下面的
tar -zxvf libmemcached-1.0.16.tar.gz
 

wget  https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz

        解包:tar -zxf libmemcached-1.0.18.tar.gz 

cd libmemcached-1.0.16
./configure -prefix=/usr/local/libmemcached -with-memcached
make && make install


5. 安装php-devel

 

 代码如下复制代码
yum install php-devel


6. 安装PHP Memcached扩展

 代码如下复制代码

wget http://pecl.php.net/get/memcached-2.1.0.tgz //这个版本有点老吧
wget http://pecl.php.net/get/memcached-2.2.0.tgz
tar -zxvf memcached-2.1.0.tgz
cd memcached-2.1.0
/usr/local/php/bin/phpize //这个好像路径不对 用下面的一行的命令吧
phpize 
./configure -enable-memcached -with-php-config=/usr/local/php/bin/php-config -with-zlib-dir -with-libmemcached-dir=/usr/local/libmemcached -prefix=/usr/local/phpmemcached  //最好还是用下面的命令吧  

./configure --with-php-config=/usr/bin/php-config  --with-libmemcached-dir=/usr/local/libmemcached

        //此处的php-config如果不知道在哪里的话可以用find / -name php-config命令找一下

make && make install

完成以后,重启一下  php-fpm , nginx  还有 memcached 服务,如果你用的是 apache 服务器的话,也需要重启 apache 服务。

service php-fpm restart
service nginx restart
service httpd restart
service memcached restart

我提示里面的提示 运行了 make test 好像是重装了一个服务器 ,我也不懂,但是千万不能这么做啊

您好,并非memcache的问题,您应该自行又安装了apache服务(或者某些集成环境)导致wdcp的apache服务启动失败

现在为您切换回去了,此类工单本身为收费工单,本次是免费为您处理,下次请提交正确的服务器异常类型问题

 安装完成后需要在php.ini文件中添加一条extension=memcached.so (找一下它的路径)的记录,然后使用php -m命令可以看到有memcached模块了。

下面是在drupal 中安装 memcache模块的方法 
可能关于在settings.php中的配置是关于druapl7 的
我们可以看看 memcache 的 README.txt 文件
(因为可能会报错 I'm trying to configure memcache module and failed to load dmemcache.inc Anybody could have an Idea why I get this error Failed to load required file sites/all/modules/memcache/dmemcache.inc.)


四、安装 Drupal 的 Memcache API and Integration 模块

如果你想在正式的网站上安装 Memcache API and Integration 模块,你需要先开启 Drupal 的维护模块:admin/config/development/maintenance,然后使用 drush 或者在 Drupal 的模块管理界面去安装这个模块。

安装完成以后,我们得去修改一下 Drupal 的 settings.php ,这是 Drupal 的配置文件,默认是在sites/default/settings.php ,可以使用 vim 之类的命令去编辑一下这个文件。然后添加下面这几行代码:

// Make memcache the default cache class
$conf['cache_backends'][] = 'sites/all/modules/memcache/memcache.inc';
$conf['cache_default_class'] = 'MemCacheDrupal';

// The 'cache_form' bin must be assigned no non-volatile storage.
$conf['cache_class_cache_form'] = 'DrupalDatabaseCache';

// Tell Drupal not to bootstrap the database when serving cached pages to anonymous visitors
$conf['page_cache_without_database'] = TRUE;
$conf['page_cache_invoke_hooks'] = FALSE;

$conf['memcache_key_prefix'] = 'ninghao1_';

memcache_key_prefix 这个配置是 memcache 所使用的前缀,就是如果多个 Drupal 网站使用同一个 Memcached 的话,可以分别去设置不同的前缀。这样可以区分一下。

在 admin/config/system/memcache 可以开启 memcache 的统计,这样在页面底部,你会看到 memcache 的使用情况。

五、可能会遇到的错误

在启用 Drupal 的 memcache 模块时,出现错误提示:

Notice: Undefined index: description 在 drupal_check_module() (行 1225 在 /home/www/nginx.ninghao.net/includes/install.inc).
(当前使用 Memcache Required PHP extension not found. Install the memcache (recommended) or memcached extension.)

这是因为,你还没有安装 PECL memcache 扩展。

打开 状态报告 时,报错:

Notice: Undefined index: value 在 theme_status_report() (行 2584 在 /home/www/nginx.ninghao.net/modules/system/system.admin.inc).

这应该是你还没有去修改 settings.php 文件。

 如果memcache内存设置不够大,会在管理界面中看到剩余内存在10%左右或者更少,这时可以修改memcached内存大小:vim /etc/sysconfig/memcached,改完后 重启 service memcached restart

来自  http://www.111cn.net/sys/linux/62613.htm

 

 手动为php安装memcached扩展模块
2014-11-26 22:48:33
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://8838848.blog.51cto.com/8828848/1583012

        最近公司需要新部署几台服务器,主要就是lnmp平台,这几台服务器需要部署公司的系统,由于本屌刚入职时间不长,加上又是新手,所以对公司的架构一头雾水,前前后后折腾了一个月时间,终于磕磕绊绊的将系统服务器的环境部署出来了,过程中的各种坑各种心酸我就不提了(让我先去哭会儿……)。

        在这次环境部署过程中我第一次真正感觉到了各个软件版本对系统的影响有多么大,在虚拟机上部署环境部署了好几十遍,其中很多部署完以后系统被搞得一团糟,然后砸掉重来,一点一点发现各种坑,找到各种填坑的方法。

        刚开始的时候我一直使用完全源码编译的方式来搭建平台,结果发现后来把各种软件整合起来是一个非常麻烦且很容易出错的过程,无奈之下只好选择yum方式安装平台(别问我为什么一开始不用yum,我只是觉得源码编译会显得我技术比较高超)。其实选择源码安装还有一个原因,那就是安装目录比较清楚,后期找文件什么的会比较方便。

       这篇文章就不多说公司环境的完整部署过程了,我就写写在安装过程中遇到的一个小问题吧。

       当我费了九牛二虎之力好不容易把公司环境部好以后,我高高兴兴,屁颠屁颠的去上代码,兴冲冲的去打开浏览器,输入地址,敲回车,等待……然后系统爆掉了!我擦!居然爆掉了!!!页面没有显示公司系统那美美的画面,而是直接一堆报错信息,提示说系统不支持memcached。不支持memcached??!!怎么可能,我明明已经安装了memcached,后来使用php -m命令查了一下php加载的模块,发现php加载了memcache模块,询问了一下主管,他告我还要加载一个memcached模块,然后我就走上了又一个填坑的过程,过程之艰辛就不赘述了,总之,经历千辛万苦以后终于成功了。

       网上查了很多方法,发现我下载的软件不对,php扩展需要到一个专门的网站查找扩展包,这个网站就是http://pecl.php.net/  这是一个php扩展包的网站,可以在这个网站上找到php关于memcached的扩展包,搜索memcached以后,我下载了memcached-2.2.0.tgz,接下来我们正式进入安装memcached扩展的过程(好像已经说了很多废话了……不管了,反正也没人看我的博客)

       先下载libmemcached:

wget  https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz

        解包:tar -zxf libmemcached-1.0.18.tar.gz 

        进入解压后的包,编译安装:

./configure --prefix=/usr/local/libmemcached --with-memcached        //注意:--with-memcached这个选项一定要加上

make  &&  make install

        安装完成后,开始安装memcached模块:

wget http://pecl.php.net/get/memcached-2.2.0.tgz

        解包:tar -zxf memcached-2.2.0.tgz

        进入解包后的目录,先使用phpize命令生成一个configure文件

phpize        //这里需要说明一下,这个命令在编译安装php时会在安装目录下的bin目录,但是在yum安装的php中需要安装一个名叫php-devel的包才会有(我在这里被坑过……)

./configure --with-php-config=/usr/bin/php-config  --with-libmemcached-dir=/usr/local/libmemcached

        //此处的php-config如果不知道在哪里的话可以用find / -name php-config命令找一下

make && make install

       安装完成后需要在php.ini文件中添加一条extension=memcached.so的记录,然后使用php -m命令可以看到有memcached模块了。


 

 


来自  http://8838848.blog.51cto.com/8828848/1583012


创建高性能 Drupal 应用:使用 Memcached

Memcached,是一套使用内存作为缓存的系统,可以有效的缓解数据库的压力,被很多大型网站广泛使用,Youtube,Twitter,WordPress.com 等等,Memcached 是高性能网站的标准配置。我们可以配置一下,让 Drupal 也可以使用 Memcached,需要用到 Drupal 的 Memcache API and Integration 模块。这个简单的配置手册,说明了在 CentOS 服务器上安装并配置 Memcached ,并让 Drupal 可以使用它。

一、容易混淆的概念

Memcached ,是一个程序,可以运行在服务器上,就像运行 nginx,apache,或者 mysql 那样。PECL memcache 还有memcached 是两个不太一样的东西,它们的作用其实就是去跟 Memcached 服务进行沟通。另外,Drupal 有个模块叫 Memcache API and Integration (memcache),它的作用是让 Drupal 使用 PECL memcache 或者 memcached 去跟 Memcached 服务进行对话。

二、安装 Memcached 服务

使用 yum 可以安装 Memcached,安装之前你也可以搜索一下资源库里是否有 Memcached:

yum search memcached

如果有,继续使用 yum 去安装,如果没有,你需要添加资源库到你的系统里。

yum install memcached

三、安装 PECL memcache 扩展

Drupal 的 Memcache API and Integration 模块,推荐使用 PECL memcache,并且要求最低版本是 3.0.6 或以上。这里我们得再去为系统添加一个资源库,才能安装高版本的 PECL memcache,可以安装 ius 资源库:

wget http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/ius-release-1.0-11.ius.centos6.noarch.rpm

然后:

rpm -ivh ius-release-1.0-11.ius.centos6.noarch.rpm

这样我们就可以使用 yum 命令,去安装 PECL memcache 了,你可以先去搜索一下,看看都有哪些可用的关于 memcache 的资源。这里我需要使用 php5.3 版本的 PECL memcache,所以可以这样:

yum install php53u-pecl-memcache

完成以后,重启一下  php-fpm , nginx  还有 memcached 服务,如果你用的是 apache 服务器的话,也需要重启 apache 服务。

service php-fpm restart
service nginx restart
service memcached restart

四、安装 Drupal 的 Memcache API and Integration 模块

如果你想在正式的网站上安装 Memcache API and Integration 模块,你需要先开启 Drupal 的维护模块:admin/config/development/maintenance,然后使用 drush 或者在 Drupal 的模块管理界面去安装这个模块。

安装完成以后,我们得去修改一下 Drupal 的 settings.php ,这是 Drupal 的配置文件,默认是在sites/default/settings.php ,可以使用 vim 之类的命令去编辑一下这个文件。然后添加下面这几行代码:

// Make memcache the default cache class
$conf['cache_backends'][] = 'sites/all/modules/memcache/memcache.inc';
$conf['cache_default_class'] = 'MemCacheDrupal';

// The 'cache_form' bin must be assigned no non-volatile storage.
$conf['cache_class_cache_form'] = 'DrupalDatabaseCache';

// Tell Drupal not to bootstrap the database when serving cached pages to anonymous visitors
$conf['page_cache_without_database'] = TRUE;
$conf['page_cache_invoke_hooks'] = FALSE;

$conf['memcache_key_prefix'] = 'ninghao1_';

memcache_key_prefix 这个配置是 memcache 所使用的前缀,就是如果多个 Drupal 网站使用同一个 Memcached 的话,可以分别去设置不同的前缀。这样可以区分一下。

在 admin/config/system/memcache 可以开启 memcache 的统计,这样在页面底部,你会看到 memcache 的使用情况。

五、可能会遇到的错误

在启用 Drupal 的 memcache 模块时,出现错误提示:

Notice: Undefined index: description 在 drupal_check_module() (行 1225 在 /home/www/nginx.ninghao.net/includes/install.inc).
(当前使用 Memcache Required PHP extension not found. Install the memcache (recommended) or memcached extension.)

这是因为,你还没有安装 PECL memcache 扩展。

打开 状态报告 时,报错:

Notice: Undefined index: value 在 theme_status_report() (行 2584 在 /home/www/nginx.ninghao.net/modules/system/system.admin.inc).

这应该是你还没有去修改 settings.php 文件。

Drupal memcache

评论

刚刚发现这个网站,准备了解一下。还有,最近打算订阅支持一下,虽然很少有时间上来学习。 视频很清晰,请问阿皓同学是用什么软件录制的?
嘿嘿。谢谢了。我用的是 ScreenFlow 。
皓哥研究一下redis,据说比memcache出色很多,完了教教大家。最近写了很多内容,辛苦了。
memcache. 和 varnish 不可以同时安装吧?刚刚看到你教学varnish安完 在安装 memcache.,感觉这个部分重复了! $conf['cache_backends'][] = 'sites/all/modules/memcache/memcache.inc'; $conf['cache_backends'][] = 'sites/all/modules/varnish/varnish.cache.inc';
是啊。这个实验好难啊。

来自  https://ninghao.net/blog/1371


安装memcached服务器和php中添加memcache拓展模块
2013-09-12 18:40:23

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。

 

首先需要先安装libevent,memcached是基于libevent做为事件触发的

wget http://cloud.github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz

tar zxvf libevent-2.0.21-stable.tar.gz

cd libevent-2.0.21-stable

./configure --prefix=/usr/local/libevent

make && make install

 

接下来安装memecahed:

wget http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz

tar zxvf memcached-1.4.15.tar.gz

cd memcached-1.4.15

./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent

make && make install

 

安装php扩展模块memcache:

wget http://pecl.php.net/get/memcache-2.2.6.tgz

tar xzvf memcache-2.2.6.tgz

cd memcache-2.2.6

/usr/local/php/bin/phpize     -----执行phpize扩展安装程序,如果没有安装phpize  运行yum install php-devel

./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir

make && make install

 

安装成功会有类似下面的提示

Installing shared extensions: /usr/local/php/lib/php/extensions/xxxxxxx。。。

 

在php.ini文件,在zend之前加入如下代码:

[memcache]

extension_dir = "/usr/local/php/lib/php/extensions/xxxxxxxx"

extension=memcache.so

 

启动memcached:

/usr/local/memcached/bin/memcached -d -u root -m 1024 -p 11211 -c 10240

 

如果php运行环境是apache需要重启apache,如果是nginx需要重启php这样能重新加载php配置文件来支持 memcache

 

启动参数说明:

  -d   选项是启动一个守护进程,

  -m  是分配给Memcache使用的内存数量,单位是MB,默认64MB

  -M  return error on memory exhausted (rather than removing items)

  -u  是运行Memcache的用户,如果当前为root 的话,需要使用此参数指定用户。

  -l   是监听的服务器IP地址,默认为所有网卡。

  -p  是设置Memcache的TCP监听的端口,最好是1024以上的端口

  -c  选项是最大运行的并发连接数,默认是1024

  -P  是设置保存Memcache的pid文件

 

参考文档

http://blog.sina.com.cn/s/blog_70f91c2f01010tt0.html

http://www.centos.bz/2011/11/linux-install-php-memcache/

来自  http://gary001.blog.51cto.com/6054570/1295228
 

CentOS下安装Memcached和PHP Memcached扩展

2015-4-24 01:11| 发布者: CODETC| 查看: 2352| 评论: 0

 
 
 
关于高性能的分布式内存对象缓存系统Memcached,我们在另一篇文章中有提到过“在windows系统下安装memcached”,这次一起来看看在Centos系统中如何安装Memcached和PHP Memcached扩展

I.安装Memcached

 
1. 安装依赖包libevent 
Memcached依赖libevent库,所以安装前可能需要执行 
yum install libevent-devel  

2.安装memcached
从 http://memcached.org/ 下载最新源码版,该处是(1.4.23)
tar -xzvf memcached-1.4.23.tar.gz  
cd memcached-1.4.23  
./configure --prefix=/usr/local/memcache  
make && make install 

3.配置memcached自启动 
复制源码目录下scripts/memcached.sysv到/etc/init.d/memcached,需要修改/etc/init.d/memcached如下行: 
chown $USER /usr/local/memcache/bin/memcached  
daemon /usr/local/memcache/bin/memcached -d -p $PORT -u $USER  -m $CACHESIZE -c $MAXCONN -P /var/run/memcached/memcached.pid $OPTIONS  
(就是修改memcached所在路径) 

然后执行如下命令即可: 
chmod 755 memcached  
chkconfig --add memcached  
使用以下指令启动服务
service memcached start  

II.安装PHP Memcahced扩展

 
pecl.php.net有两个memcache扩展: 
memcache memcached extension 
memcached PHP extension for interfacing with memcached via libmemcached library 


memcached 的版本比较新,而且使用的是 libmemcached 库。libmemcached 被认为做过更好的优化,应该比 php only 版本的 memcache 有着更高的性能。所以这里安装的是memcached(假设php5.4已经安装在在/usr/local/php). 

1. 安装依赖库 
https://launchpad.net/libmemcached/1.0/1.0.4/+download/libmemcached-1.0.4.tar.gz 
tar -xzvf libmemcached-1.0.4.tar.gz  
cd libmemcached-1.0.4  
./configure  
make  
make install  

2.安装memcached 
http://pecl.php.net/get/memcached-2.0.1.tgz 下载,使用以下指令安装: 
tar vxzf memcached-2.0.1.tgz  
cd memcache-2.0.1  
phpize  
./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config  
make  
make install  

安装完成后,根据最后显示Installing shared extensions: /usr/local/***指示的目录路径,在该目录下找到生成的memcached.so,将其复制到php.ini的extension_dir指向的目录。修改php.ini增加行extension = memcached.so重启apache,再到页面上打开phpinfo信息页面,看看memcached扩展是否安装成功了。 

当然我们也可以写一小段测试代码看看memcached是否已正常运行,具体做法请参考 在windows系统下安装memcached 一文
文章来源 CODETC,欢迎分享,转载请注明地址: http://www.codetc.com/article-183-1.html


来自 http://www.codetc.com/article-183-1.html


普通分类: