源码编译安装memcached和PHP扩展memcache整理总结

源码编译安装memcached和PHP扩展memcache整理总结

大家好,又见面了,我是全栈君。

一.开始编译memcached

安装编译需要的扩展包

yum install libevent libevent-devel

开始编译memcached

wget http://memcached.org/files/memcached-1.4.21.tar.gz
tar -zxvf memcached-1.4.21.tar.gz
cd memcached-1.4.21
./configure --prefix=/usr/local/memcached
make
make install

 

二.PHP Memcache 扩展安装

PHP Memcache 扩展包下载地址:http://pecl.php.net/package/memcache,你可以下载最新稳定包(stable)。

wget http://pecl.php.net/get/memcache-2.2.7.tgz               
tar -zxvf memcache-2.2.7.tgz
cd memcache-2.2.7
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

注意:/usr/local/php/ 为php的安装路径,需要根据你安装的实际目录调整。

安装成功后会显示你的memcache.so扩展的位置,比如我的:

Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/

最后我们需要把这个扩展添加到php中,打开你的php.ini文件在最后添加以下内容:

[Memcache]
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/"
extension = memcache.so

检查安装结果

/usr/local/php/bin/php -m | grep memcache

安装成功会输出:memcache。

或者通过浏览器访问 phpinfo() 函数来查看,如下图:

memcache-php


PHP 连接 Memcached

<?php
$memcache = new Memcache;             //创建一个memcache对象
$memcache->connect('127.0.0.1', 11211) or die ("Could not connect"); //连接Memcached服务器
$memcache->set('key', 'test');        //设置一个变量到内存中,名称是key 值是test
$get_value = $memcache->get('key');   //从内存中取出key的值
echo $get_value;
?>

 三.开机自启动

创建/usr/lib/systemd/system/memcached.service 文件

[Unit]
Description=Memcached
Before=httpd.service
After=network.target

[Service]
Type=simple
EnvironmentFile=-/etc/sysconfig/memcached
ExecStart=/usr/local/memcached/bin/memcached -u $USER -p $PORT -m $CACHESIZE -c $MAXCONN $OPTIONS

[Install]
WantedBy=multi-user.target

同时创建/etc/sysconfig/memcached 文件

PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 127.0.0.1"

常用命令

# 查看当前状态
systemctl status memcached

# 启动
systemctl start memcached

# 停止
systemctl stop memcached

#添加到开机自启动
systemctl enable memcached.service 或systemctl enable memcached 都可以

活着就是折腾.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111687.html原文链接:https://javaforall.net

(0)
上一篇 2022年2月17日 上午7:00
下一篇 2022年2月17日 上午7:00


相关推荐

  • Windows 安装 OpenClaw 全面指南 支持WSL2与Docker

    Windows 安装 OpenClaw 全面指南 支持WSL2与Docker

    2026年3月13日
    3
  • Linux(程序设计):55—非阻塞connect(EINPROGRESS)「建议收藏」

    Linux(程序设计):55—非阻塞connect(EINPROGRESS)「建议收藏」非阻塞connect详情介绍可以参见文章:https://blog.csdn.net/qq_41453285/article/details/89890429一、非阻塞connect概述man手册connect的man手册有如下一段内容:EINPROGRESSThesocketisnonblockingandtheconnectioncannotbe…

    2022年7月17日
    16
  • python约瑟夫环「建议收藏」

    python约瑟夫环「建议收藏」第一次出队的那个人的编号是(m-1)%n,第二次重新开始的编号是m%n约瑟夫环是一个经典的数学问题,我们不难发现这样的依次报数,似乎有规律可循。为了方便导出递推式,我们重新定义一下题目。 问题: N个人编号为1,2,……,N,依次报数,每报到M时,杀掉那个人,求最后胜利者的编号。这边我们先把结论抛出了。之后带领大家一步一步的理解这个公式是什么来的。 一般解法找到出列的人,把它删…

    2022年6月3日
    40
  • struts2的拦截器(4):通过继承AbstractInterceptor抽象类定义自己的拦截器

    struts2的拦截器(4):通过继承AbstractInterceptor抽象类定义自己的拦截器抽象类AbstractInterceptor实现了Interceptor接口,提供了init和destroy方法的空实现。如果我们的拦截器不需要打开资源,则可以无需实现这两个方法。可见通过继承AbstractInterceptor抽象类来实现自定义拦截器会更简单。将上篇文章中的SimpleInterceptor.java改为如下实现,其余所有代码一律不变:publicclassSim

    2022年5月14日
    35
  • Ubuntu apt-get 国内镜像源替换(新手必看,超详细!各种镜像源网站都有)

    Ubuntu apt-get 国内镜像源替换(新手必看,超详细!各种镜像源网站都有)点击名称即可进入对应网站阿里云镜像开源镜像站网易开源镜像站清华大学开源镜像站中科大开源镜像站 1 首先进入开源镜像站获取相应连接 这里以阿里云为例 2 点击 Global help 复制相应地址 3 备份一下自己系统的源文件 sudocp etc apt sources list etc apt sources bak1 第一个参数时拷贝的文件路径和文件名称 第二个是拷贝到 粘

    2026年3月17日
    1
  • android详解_MPAndroidChart

    android详解_MPAndroidChart在开发当中曲线图用的时候太多了,之前都是自己手写,之后发现太累还丑不符合需求MPAndroidChart先介绍LineChart0.效果图首先依赖1. implementation

    2022年8月6日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号