• 注册
  • 查看作者
  • WordPress安装Memcached教程和注意事项

    我们用WordPress搭建的网站,随着访问量增大或者插件越装越多的时候,网站加载页面会很慢,这是有WordPress内存机制决定的,用Memcached可以解决这一问题,Memcached让最常访问的那些内容缓存在内存中,有新访客到来的时候,先从内存中找,找到了就直接返回,否则再去查数据库,这样就极大地提高了性能。那么,在 WordPress 中,我们怎么使用 memcached 呢?这不是仅仅安装 memcached 软件就可以做到的,还要和 PHP 结合起来,所以涉及到好几个部分,下面分别阐述:

    1. 通过yum安装

    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″ #内存大小 (MB)
    OPTIONS=”” #附加参数

    其中 “memcached数据库未授权访问漏洞解决”
    设置 OPTIONS=”-l 127.0.0.1″ 即可

    4. 安装libmemached
    wget 链接+download/libmemcached-1.0.16.tar.gz
    tar -zxvf libmemcached-1.0.16.tar.gz
    cd libmemcached-1.0.16
    ./configure -prefix=/usr/local/libmemcached -with-memcached
    make && make install

    如遇到报错:g++: command not found 请安装gcc+
    yum -y install gcc+ gcc-c++
    make clean后,重新执行:make && make install

     

    5. 安装php-devel
    yum install php-devel

    6. 安装PHP Memcached扩展
    wget 链接
    tar -zxvf memcached-2.1.0.tgz
    cd memcached-2.1.0
    /usr/local/php/bin/phpize (若提示-bash: /usr/local/php/bin/phpize: No such file or directory,直接phpize,若依旧提示命令错误,请百度php环境安装)
    (在phpize生成configure文件过程中,不要输入任何命令,否则造成./configure: line 7933: syntax error: unexpected end of file的错误,若出现此错误,
    请重新输入命令 phpize重新生成configure文件)

    ./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: error: Cannot find php-config. Please use –with-php-config=PATH,表示你的php-config文件不
    在目录/usr/local/php/bin/下,使用命令 find / -name php-config 查找,我的在 /usr/bin/php-config)

    make && make install

    报错:memcache support requires ZLIB解决办法
    yum install zlib-devel

    记录下安装成功后的提示,类似于:
    Installing shared extensions: /usr/lib/php/modules/

    7.增加扩展extension配置文件
    vi /etc/php.d/memcached.ini
    最后一行增加
    extension=memcached.so

    产看memchached运行状态
    telnet 127.0.0.1 11211 (提示-bash: telnet: command not found,直接用命令“ yum -y install telnet”安装就行了,
    提示 telnet: connect to address 127.0.0.1: Connection refused 表示memcached未启用
    使用命令memcached -d start -u root
    )

    出现 Trying 127.0.0.1…
    Connected to 127.0.0.1.
    Escape character is ‘^]’.
    时,使用以下命令

    stats 查看memcached运行状态
    quit(退出时命令)

    8.find / -name php.ini 找到 php.ini文件
    php.ini
    新增一行 extension=memcached.so
    9.重启nginx/amapche,重启php-fpm,使用phpinfo()查看memcached模块是否安装成功。

    10.wordpress 支持 memcached ,使用插件 memcached is your frend ,安装即可

    注意了,使用 Memcahced 的时候,请不要把过期时间设置成超过30天

    最近做项目的时候,使用 Memcahced 进行缓存的时候,有个数据因为使用比较少,就像缓存的旧一些,把设置为一年,写入缓存的时候返回 true,但是使用该 key 去获取的时候总是返回 null,最后查手册才发现,Memcahced 过期时间不能超过 30 天

    关于 Memcached 过期时间的详细解释:

    • 过期时间是一个 Unix 时间戳,也可以是一个从现在算起的以秒为单位的数字。
    • 那么怎么判断是 Unix 时间戳还是一个从现在算起的以秒为单位的数字呢?小于 60×60×24×30(30天时间的秒数),就算是从现在算起的以秒为单位的数字。如果大于服务端会将其作为一个真实的Unix时间戳来处理而不是自当前时间的偏移。
    • 如果过期时间被设置为0(默认),此元素永不过期(但是它可能由于服务端为了给其他新的元素分配空间而被删除)。

    所以如果真的要设置一个 key 的过期时间为一年后,其值应该设置为:time()+60×60×24×365

  • 0
  • 0
  • 0
  • 78
  • 请登录之后再进行评论

    登录

    捐助

    请在小工具里添加二维码

  • 任务
  • 发布
  • 单栏布局 侧栏位置: