安装memcache和memcached

 更新时间:2016年11月25日 16:25  点击:1998

   简单的说

    memcache是总的缓存系统项目名称,容易和php教程中的memcache混淆。

    我们常提到memcache其实是php中的memcache,即php的memcached扩展支持。

    我们常提到memcached是服务端主程序文件,服务端安装程序。

    为了让你的程序飞起来,必须安装memcached服务端程序和php的memcached扩展,所以如果您要使用memcache来缓存系统,memcache和memcached两样我们都需要安装。

    安装memcache

# cd /usr/local/src
# wget http://pecl.php.net/get/memcache-2.2.5.tgz
# gzip -d memcache-2.2.5.tgz
# tar xvf memcache-2.2.5.tar
# cd memcache-2.2.5 

    以下几句,是以php所在目录为/usr/local/php为例,如果您的php有变化,请自行替换几句中/usr/local/php的部分

# /usr/local/php/bin/phpize
# ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir
# make && make install 

    将memcache加入php扩展

    # vi /etc/php.ini(/etc/php.ini地址为我的php.ini位置,如果你不知道你的php.ini在哪里,可以用# find / -name php.ini进行查找,或者传个探针phpinfo,找到configuration file (php.ini) path)中php.ini的位置.

    末尾加入

    按键盘上的 i 开始编辑

    ctrl+f翻页拉到最下面在[zend]之前加入

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
extension=memcache.so 

    按esc键,再输入

    :wq

    保存退出

    重启你的web服务器,比如apache

/etc/init.d/httpd restart 

    下面刷新下php探针,看下是不是有这个了,有的话就是装好了

memcache
version  2.2.5memcache
version  2.2.5 

 

下面安装memcached

    装memcached首先需要安装安装libevent

    如果是centos可以yum安装

# yum install libevent-devel 

    如果不支持yum的系统,可以这样装libevent

# cd /usr/local/src
# wget http://www.monkey.org/~provos/libevent-1.4.12-stable.tar.gz
# tar vxf libevent-1.4.12-stable.tar.gz
# cd libevent-1.4.12
# ./configure --prefix=/usr/local/libevent
# make && make install 

    接续安装memcached

# cd /usr/local/src
# wget http://cloud.github.com/downloads/saberma/saberma.github.com/memcached-1.4.4.tar.gz
# tar vxf memcached-1.4.4.tar.gz
# cd memcached-1.4.4
# ./configure --prefix=/usr/local/memcached
# make && make install 

    安装完后启动memcached并分配32m内存(32为使用内存数,可按自身情况修改)

/usr/local/memcached/bin/memcached -d -m 32 -l 127.0.0.1 -p 11211 -u root 

    将memcached加入启动项

# vi /etc/rc.d/rc.local 

    按键盘上的 i 开始编辑

    在最后加入

/usr/local/memcached/bin/memcached -d -m 32 -l 127.0.0.1 -p 11211 -u root 

    按esc键,再输入

    :wq

    保存退出

    如果需要,可以reboot一下,不过不用reboot应该已经生效~

    加速效果测试

    用没有什么负载的discuz x1做个测试,未启用时

gmt+8, 2010-9-12 09:08, processed in 0.038893 second(s), 2 queries. 

    缓存启用后的效果,不过总体感觉vps教程上效果不如用eaccelerato缓存加入效果那么明显

gmt+8, 2010-9-12 09:08, processed in 0.008383 second(s), 2 queries, memcache on. 

    完成

下面安装memcached

    装memcached首先需要安装安装libevent

    如果是centos可以yum安装

# yum install libevent-devel 

    如果不支持yum的系统,可以这样装libevent

# cd /usr/local/src
# wget http://www.monkey.org/~provos/libevent-1.4.12-stable.tar.gz
# tar vxf libevent-1.4.12-stable.tar.gz
# cd libevent-1.4.12
# ./configure --prefix=/usr/local/libevent
# make && make install 

    接续安装memcached

# cd /usr/local/src
# wget http://cloud.github.com/downloads/saberma/saberma.github.com/memcached-1.4.4.tar.gz
# tar vxf memcached-1.4.4.tar.gz
# cd memcached-1.4.4
# ./configure --prefix=/usr/local/memcached
# make && make install 

    安装完后启动memcached并分配32m内存(32为使用内存数,可按自身情况修改)

/usr/local/memcached/bin/memcached -d -m 32 -l 127.0.0.1 -p 11211 -u root 

    将memcached加入启动项

# vi /etc/rc.d/rc.local 

    按键盘上的 i 开始编辑

    在最后加入

/usr/local/memcached/bin/memcached -d -m 32 -l 127.0.0.1 -p 11211 -u root 

    按esc键,再输入

    :wq

    保存退出

    如果需要,可以reboot一下,不过不用reboot应该已经生效~

    加速效果测试

    用没有什么负载的discuz x1做个测试,未启用时

gmt+8, 2010-9-12 09:08, processed in 0.038893 second(s), 2 queries. 

    缓存启用后的效果,不过总体感觉vps上效果不如用eaccelerato缓存加入效果那么明显

gmt+8, 2010-9-12 09:08, processed in 0.008383 second(s), 2 queries, memcache on. 

    完成

 1. apache的安装。同样适合大多数人的一路next,next过程中可能需要填写server domain,admin email等类似的东西,这个可以跳过,但是要注意端口的选择,默认情况下是只有80与8080端口可供选取,当然安装成功之后可以自己随意修改listen的端口,这个地方避免与iis默认80的重复,可以选择8080端口。next后安装成功之后的情况就不说了。可能有的盆有安装完成之后在apache server monitor中找不到apache服务,在services.msc中也找不到与apache有关的服务,我刚好遇到这个问题,解决方法也很简单:管理员身份运行cmd,切换至目录 $apache2.2$binhttpd.exe -k install 就差不多了,我搞的一次提示error,但还是出现了服务,点击start依旧可以运行,正常情况下提示安装成功并开始testing httped.conf...至此,apache的安装就算完毕,当然大家可以进行测试一下,可以打开httpd.conf,修改大约164行的documentroot配置节,我是这样修改的:documentroot "c:/",注意如果没搞过或者是怕找不回默认的httpd.conf可以先备份一个或者,把你要修改的配置节先注释一个。然后找到大约194行的<directory 节点,修改为<directory "c:/">,也就是你要访问的网站的目录,然后重启apache,在浏览器中输入:http://localhost:8080/testing.html看看吧。

  2.mysql教程的安装。好像mysql的安装没什么太需要注意的吧,就是有个是否允许远程访问,如果你只是做测试,那么就不要选中,如果是服务器,那也慎重考虑一下安全问题。

  3.php教程环境的安装,如上所说,下载php环境解压之后,在c盘根目录下建立名为apahe group的文件夹,在apache group目录下再建立一个文件夹名为php5,因为我下载的php版本为php-5.3.5-win32-vc9-x86.zip,所以5就是当前运行环境的版本号啊,呵呵,我抄一个高人的。然后将下载包里的所有文件拷贝到php5文件夹中,在其中找到名为php.ini-production的文件,将它重命名为php.ini。打开php.ini,找到short_open_tag,将默认为“short_open_tag= off”改为“short_open_tag =on”,即让php支持简短标签写法,如在设置为off时,在写程序时用<?=$xxx;?>会报错,要写成<?phpecho $xxx;?>才行。然后在php.ini中找到extension_dir = "./"这一行,将其修改为extension_dir = "c:/apache group/php5/ext",这样php运行环境就能根据此目录找到其所需要的扩展插件的位置了,注意要删除行前的分好”;“。然后找到windows extensions配置模块,在其下边依次寻找

extension=php_mbstring.dll
extension=php_gd2.dll
extension=php_mysql.dll

然后将前面的分号“;”,打开php环境对mysql等过程的支持,这样php程序中采可以进行连接数据库教程等的操作。最后找到disable_functions = ,将其修改为disable_functions =
passthru,exec,system,popen,chroot,escapeshellcmd,escapeshellarg,shell_exec,proc_open,proc_get_status。完成之后php运行环境的地址就是:c:apache groupphp5,这个地址将在后续的apache配置中用到。

  4.apache配置以对php的支持。打开$apache2.2$confhttpd.conf,找到#loadmodule ssl_module modules/mod_ssl.so这行,在其后,加入如下几行:

# 指定php.ini文件所在位置

phpinidir "c:apache groupphp5"

# 指定php程序的解析模块

loadmodule php5_module "c:apache groupphp5php5apache2_2.dll"

# 指定所要解析的文件的扩展名

addtype application/x-httpd-php .php

# 指定php源代码扩展名

addtype application/x-httpd-php-source .phps教程 

保存退出,此时apache+mysql+php5的运行环境就搭建完毕,你可以在测试目录中新建一个文件phpinfo.php,其中写入:<?php phpinfo(); ?>,然后通过http://localhost:8080/phpinfo.php进行访问。如果成功的话

<?php教程
if (!isset($_server["http_referer"]))
echo "no referer";
else
echo $_server["http_referer"];
?>

如果直接点击上面的链接,那么页面会显示referer页面的链接。
复制代码 代码如下:

set http = createobject("msxml2.xmlhttp")
http.open "get","http://www.111cn.net/test/referer.php",false
http.setrequestheader "referer","http://www.111cn.net"
http.send
wscript.echo http.responsetext


但是如果我用vbs调用msxml2.xmlhttp组件访问这个页面,返回的却是no referer。实在匪夷所思,难道我的代码写错了?


于是google了一下“vbs伪造http referer”,发现搜出来的内容大部分和这篇文章一样,不用看又是复制粘贴,你抄我的,我抄你的,抄来抄去不知道到底是谁的,而且还是错的!
那篇文章第一个例子是asp教程的


复制代码 代码如下:

dim http
set http=server.createobject("msxml2.xmlhttp")
http.open "get",url,false
http.setrequestheader "referer","http://www.fromdomain.cn/"
http.send()

开始我还以为asp下的vbs和我直接双击运行的vbs不一样,asp下的比较牛逼,可以改referer。为此我还专门装了iis测试,发现返回的照样是no referer。后来才看到下面的留言,“原谅我对asp不熟,给不了你什么帮助,自己查点其他资料参考一下吧”,“这我没怎么玩asp了,代码只是参考来的,asp的没测试过”。

我真的不想骂人,不熟你写也就算了,起码测试一下吧,没有测试过的代码你也好意思贴上来?后来在千一网络(这个网络貌似不错)看到一个比较靠谱的答案,referer在asp和ajax中是无法通过设置header来更改的。

怒了,既然xmlhttp组件不行,我用socket来写总行了吧!(注:不是所有电脑上都注册了winsock组件)


从当前文件夹添加全部 *.hlp 文件到压缩文件 help.rar 中

winrar a help *.hlp

从文件添加注释可以使用 -z<文件> 开关。
winrar c -zinfo.txt dummy

这样,我们就可以通过php教程调用cmd,运行上述两个winrar参数来做到批量修改rar文件的注释及添加压缩包的文件.需要注意的是,php在安全模式打开的情况下是不能直接调用cmd的.

下面的代码就是我通过我的数据库教程读取出文件路径并最终实现批量修改rar文件注释的方法.因为数据库是access,我新建了一个odbc源.同时rar.exe及cmd.exe都在1.php同目录下

<?
$id=$_get[id];
if($id==”")
{
echo “参数错误”;
exit;
}
if($id>=400)
{
echo “全部结束”;
exit;
}
$db=odbc_connect(”dw”,”",”");
$sql=”select * from `download` where `id`=$id”;
$query=odbc_exec($db,$sql);
$filename=odbc_result($query,2);
if($filename==”")
{

}
$filename=str_replace(”#1′,”",$filename);
$filename=str_replace(”#2′,”",$filename);
$filename=”soft/”.$filename;
echo $filename.”<br>”;
        if(!file_exists($filename))
        {
        echo “文件不存在,转到下一个id”;
        $id++;
        echo “<meta http-equiv=’refresh’

content=’0;url=../test/1.php?id=$id’>”;     
        exit;
        }//读出文件名,并检查文件是否存在
else
{
`winrar a $filename 使用说明.txt`;
echo “插入说明文件成功”;
$id++;
echo “<meta http-equiv=’refresh’ content=’0;url=../test/1.php?id=$id’>”;
}
odbc_close($db);
?>

 
 


××××××××××××××××××××
最近采集流行,可能许多朋友都尝试通过采集数据来建设一个内容丰富完善的站点.
可是,在某些时候我们通常采集得到的rar文件都被批量加了注释,这个时候如果将这些数据放到自己的站上无异于为人家做广告.
最近我也碰到了这样的问题,为此大伤脑筋,后来仔细的翻看winrar的帮助文件发现我们可以通过下面的方法来做到批量修改.
我们打开winrar的帮助文件,帮助文件中提到了在命令行模式下修改rar文件注释及添加压缩文档的两个参数分别为ac,winrar的说明文件如下:
从当前文件夹添加全部 *.hlp 文件到压缩文件 help.rar 中
winrar a help *.hlp

从文件添加注释可以使用 -z<文件> 开关。
winrar c -zinfo.txt dummy

下面只是简单的逻辑结构,对于正式的系统需要做具体的处理。


这里需要注意的是:加解密一定需要做安全验证。但是这个方法也不够完美,两个站点必须有相同一级域名;另外这种完全基于cookie的方式,安全性不够高

 

function login()
{
    $info = callloginserver();  //访问登录服务器
    if(!empty($info))    //登录成功了
}

//用户没有登录,则在本系统中登录并调用登录服务器接口

function login()    //正常的登录
{
    .......//验证用户的合法性
   $_session['uid'] = $user_id;
   setcookie('sign', encrypt($pass9), '', '/', 'the.com');
}
先检查用户是否在登录系统中登录
funtion sign()
{
  $sign = $_cookie['sign'];
  if(!empty($sign))
  {
     $sign = decrypt($sign);
    ..........///登录成功
  }
}

用户没有登录,则在本系统中登录并调用登录服务器接口

function loging()  //本系统登录
{
  .....//登录成功
  callseverlogin();//通知用户登录

}

所有的站点共享一个登录系统;当用户在其中的一个站点登录成功时, 该系统调用其他站点的登录接口,完成用户在其他站点的登录,同时设置相应的登录信息;或者在用户登录时,只在该系统保存用户登录信息,当用户在其他站点登录时,必须请求该系统接口,获取用户是否登录的信息。前一种方式的缺点是:不管用户有没有使用其他站点,那些站点都需要保存用户状态;后一种方式就把所有的压力都转移到登录系统上面来。而如果要实现用户退出的统一操作,就需要站点调用登录系统的退出接口,然后登录系统接口调用其他站点的退出接口;或者设置一个标记,如果这个标记不存在则标示用户退出,此时只要把该标示清空即可,其他站点发现该标示不存在就知道用户已经退出系统。

这种处理方式需要在登录系统和个站点之间规定登录接口,和注销接口。通过这些接口,个站点可以很方便的处理用户登录或退出:

 

[!--infotagslink--]

相关文章

  • PHP7快速编译安装的步骤

    编译安装非常的简单了我们现在的php版本已经到了php7了,下文小编来为各位介绍一篇关于PHP7快速编译安装的步骤,希望文章能够帮助到各位。 一、安装必要一些依赖 yum...2016-11-25
  • Rstudio中安装package出现的问题及解决

    这篇文章主要介绍了Rstudio中安装package出现的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
  • PHP编译安装后PHP-FPM使用笔记

    PHP-FPM我们相信各位用高版本的php经常使用到了,下面整理了一些关于PHP-FPM的笔记,有兴趣的可进来看看。 今天赶上了123System OPenVZ VPS全场半价的机会,购入了一...2016-11-25
  • 安装和使用percona-toolkit来辅助操作MySQL的基本教程

    一、percona-toolkit简介 percona-toolkit是一组高级命令行工具的集合,用来执行各种通过手工执行非常复杂和麻烦的mysql和系统任务,这些任务包括: 检查master和slave数据的一致性 有效地对记录进行归档 查找重复的索...2015-11-24
  • Linux安装Pytorch1.8GPU(CUDA11.1)的实现

    这篇文章主要介绍了Linux安装Pytorch1.8GPU(CUDA11.1)的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-25
  • vscode安装git及项目开发过程

    这篇文章主要介绍了vscode安装git及项目开发过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-19
  • PHP分布式框架如何使用Memcache同步SESSION教程

    本教程主要讲解PHP项目如何用实现memcache分布式,配置使用memcache存储session数据,以及memcache的SESSION数据如何同步。 至于Memcache的安装配置,我们就不讲了,以前...2016-11-25
  • Visual Studio 2015下载和安装图文教程

    这篇文章主要为大家详细介绍了Visual Studio 2015下载和安装图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-22
  • Node调试工具JSHint的安装及配置教程

    现在我们介绍一种在Node下检查简单错误的JS代码验证工具JSHint。  JSHint的具体介绍参考http://www.jshint.com/about/,说直白点儿,JSHint就是一个检查JS代码规范与否的工具,它可以用来检查任何(包括server端和client端...2014-05-31
  • Centos中彻底删除Mysql(rpm、yum安装的情况)

    我用的centos6,mysql让我整出了各种问题,我想重装一个全新的mysql,yum remove mysql-server mysql之后再install并不能得到一个干净的mysql,原来的/etc/my.cnf依然没变,datadir里面的数据已没有任何变化,手动删除/etc/my.cn...2015-03-15
  • 在PyCharm中安装PaddlePaddle的方法

    这篇文章主要介绍了在PyCharm中安装PaddlePaddle的方法,本文给大家介绍的非常想详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-05
  • linux服务器快速卸载安装node环境(简单上手)

    这篇文章主要介绍了linux服务器快速卸载安装node环境(简单上手),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-22
  • Ubuntu20.04安装cuda10.1的步骤(图文教程)

    这篇文章主要介绍了Ubuntu20.04安装cuda10.1的步骤(图文教程),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-07-30
  • uni-app从安装到卸载的入门教程

    这篇文章主要介绍了uni-app从安装到卸载的入门教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-05-15
  • Postman安装与使用详细教程 附postman离线安装包

    这篇文章主要介绍了Postman安装与使用详细教程 附postman离线安装包,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-05
  • vs2019安装和使用详细图文教程

    这篇文章主要介绍了vs2019安装和使用详细图文教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • RHEL6.5编译安装MySQL5.6.26教程

    一、准备编译环境,安装所需依赖包yum groupinstall 'Development' -y yum install openssl openssl-devel zlib zlib-devel -y yum install readline-devel pcre-devel ncurses-devel bison-devel cmake -y二、编译安...2015-10-21
  • tomcat9 下载安装和配置+整合到eclipse的教程详解

    这篇文章主要介绍了tomcat9 下载安装和配置+整合到eclipse,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-28
  • win2003 安装软件之PHP5 图文安装教程

    本教程共分八篇:系统安装与设置篇、软件安装与设置篇、文件及文件夹权限篇、系统服务篇、安全策略篇、系统组件篇、注册表篇、软件安全篇。本篇讨论的是第二篇软件安装与设置篇的第七部分:安装软件之PHP 5 安装图解。 ...2016-01-27
  • mac系统OS X10.10版本安装最新5.7.9mysql的方法

    用过mac的朋友都反映很好用,不仅美观,性能好,关键是他的系统底层对于开发人员来说,无疑就是一个最大的好处,用习惯linux的人就知道mac的强大。但是也有一点最蛋疼的是,mac的习惯跟windows两个概念,习惯了windows,难免会有点不...2015-10-30