阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Memcached服务器端与PHP-Memcache客户端安装配置

465次阅读
没有评论

共计 20787 个字符,预计需要花费 52 分钟才能阅读完成。

本文简单介绍 memcached 服务器端的安装配置,与 php-memcache 客户端连接服务器端的配置与操作。

一.简介 

1. 简介

Memcached 是一款开源、高性能、分布式内存对象缓存系统,可应用各种需要缓存的场景,其主要目的是通过降低对 Database 的访问来加速 web 应用程序。

Memcached 一般的使用场景是:通过缓存数据库查询的结果,减少数据库访问次数,以提高动态 Web 应用的速度、提高可扩展性。

本质上,memcached 是一个基于内存的 key-value 存储,用于存储数据库调用、API 调用或页面引用结果的直接数据,如字符串、对象等小块任意数据。

工作流程如下:

Memcached 服务器端与 PHP-Memcache 客户端安装配置

2. 注意点

  1. 简单 key-value 存储:服务器不关心数据本身的意义及结构,只要是可序列化数据即可;存储项由 ” 键、过期时间、可选的标志及数据 ” 四个部分组成。
  2. 功能实现一半依赖于客户端,一半基于服务器端:客户端负责发送存储项至服务器端、从服务端获取数据以及无法连接至服务器时采用相应的动作;服务端负责接收、存储数据,并负责数据项的超时过期。
  3. Memcached 虽然是 ” 分布式 ” 缓存服务器,但服务器端并没有分布式功能,即不在服务器间进行数据同步及共享信息,” 分布式 ” 完全取决于客户端的实现。
  4. 清理超期数据:默认情况下,Memcached 是一个 LRU 缓存,同时按事先预订的时长清理超期数据;但事实上,memcached 不会删除任何已缓存数据,只是在其过期之后不再为客户所见;而且,memcached 也不会真正按期限清理缓存,而仅是当 get 命令到达时检查其时长。 

二.环境

1. OS 

Server:CentOS-7-x86_64-1511

IP:10.11.4.190 

2. Memcached 版本

1)libevent

libevent-2.1.8

官网:http://libevent.org/

下载:http://ftp.lfs-matrix.net/pub/blfs/conglomeration/libevent/

2)memcached

memcached-1.4.39

官网:https://memcached.org/

下载:https://memcached.org/files/memcached-1.4.39.tar.gz

三.安装 Memcached 服务器

Memcached 服务器端的安装相对简单。 

1. 安装 libevent

#Memcached 依赖于 libevent API,libevent 是个程序库,它将 Linux 的 epoll、BSD 类操作系统的 kqueue 等事件处理功能封装成统一的接口,即使对服务器的连接数增加,也能发挥 O(1)的性能
[root@memcached ~]# cd /usr/local/src/
[root@memcached src]# wget http://ftp.lfs-matrix.net/pub/blfs/conglomeration/libevent/libevent-2.1.8-stable.tar.gz
[root@memcached src]# tar -zxvf libevent-2.1.8-stable.tar.gz
[root@memcached src]# cd libevent-2.1.8-stable
[root@memcached libevent-2.1.8-stable]# ./configure --prefix=/usr/local/libevent
[root@memcached libevent-2.1.8-stable]# make
[root@memcached libevent-2.1.8-stable]# make install

#测试是否安装成功
[root@memcached libevent-2.1.8-stable]# ll /usr/local/libevent/lib/ | grep libevent

Memcached 服务器端与 PHP-Memcache 客户端安装配置

2. 安装 memcached

[root@memcached ~]# cd /usr/local/src/
[root@memcached src]# tar -zxvf memcached-1.4.39.tar.gz.tar
[root@memcached src]# cd memcached-1.4.39
#注意编译前,生成 Makefile 文件时,libevent 的路径 [root@memcached memcached-1.4.39]# ./configure --prefix=/usr/local/memcached -with-libevent=/usr/local/libevent [root@memcached memcached-1.4.39]# make [root@memcached memcached-1.4.39]# make install 

3. 设置环境变量

#简单通过软链接的方式设置环境变量
[root@memcached ~]# ln -s /usr/local/memcached/bin/* /usr/local/bin/ 

4. 设置 iptables

#tcp11211 端口是 memcached 默认监听端口
[root@memcached ~]# vim /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 11211 -j ACCEPT

[root@memcached ~]# service iptables restart 

5. 启动

[root@memcached ~]# /usr/local/memcached/bin/memcached -d -m 256 -u root -l 10.11.4.190 -p 11211 -c 1024 -P /usr/local/memcached/memcached.pid

参数说明:
-d:启动一个守护进程,如果前台运行,配合 -vv 参数,可查看调试信息(主要是存储的信息);
m:分配给 memcached 使用的内存数量,单位是 MB;
u:运行 memcached 的用户,比如 root 或者 memcached,建议采用非 root 账号;
l:服务器监听地址,不设置时默认监听本地所有 IP 地址;
p:设置 memcached 的监听端口,默认为 11211;
c:设置最大并发连接数,默认是 1024;
P:设置保存 memcached 的 pid 文件;
v:输出警告和错误信息;
vv:打印客户端的请求和返回信息;
h:打印帮助信息;
-i:打印 memcached 和 libevent 的版权信息。

6. 验证 

1)端口

[root@memcached ~]# netstat -tunlp

Memcached 服务器端与 PHP-Memcache 客户端安装配置

2)telnet 连接

#可以通过 telnet 连接 memcached 服务器进行数据存储,及数据获取;
#详细的 memcached 的命令可参考:http://www.linuxidc.com/Linux/2017-11/148429.htm ;
#以下红色字体是命令输入,截图可见命令输入与回显
[root@memcached ~]# telnet 10.11.4.190 11211
version            #查看版本
set test 0 0 5     #设置”key”,<command name> <key> <flags> <exptime> <bytes>
mymem              #输入“value”值,<data block>,字节数与 key 中的设的“bytes”相同
get test           #获取已设的 key 的数据
quit               #退出

Memcached 服务器端与 PHP-Memcache 客户端安装配置

7. 设置开机启动

[root@memcached ~]# vim /etc/rc.d/init.d/memcached

#!/bin/sh
#
# memcached: MemCached Daemon
#
# chkconfig: - 90 25
# description: MemCached Daemon
#
# Source function library.

. /etc/rc.d/init.d/functions
. /etc/sysconfig/network

#注意:可执行文件路径根据情况调整
MEMCACHED="/usr/local/memcached/bin/memcached"

start()
{echo -n $"Starting memcached: "
#注意:参数根据情况调整
daemon $MEMCACHED -u root -d -m 256 -p 11211 -c 1024 -P /usr/local/memcached/memcached.pid
echo
}

stop()
{echo -n $"Shutting down memcached: "
killproc memcached
echo
}

[-f $MEMCACHED ] || exit 0

# See how we were called.
case "$1" in
start)
start
;;

stop)
stop
;;

restart|reload)
stop
start
;;

condrestart)
stop
start
;;

*)

echo $"Usage: $0 {start|stop|restart|reload|condrestart}"
exit 1
esac
exit 0

[root@memcached ~]# chmod 775 /etc/rc.d/init.d/memcached
[root@memcached ~]# chkconfig --level 35 memcached on

四.安装配置基于 PHP 的客户端

Memcache 支持多客户端,如 perl,php,Python,c/c++ 等等,这里主要基于 php 配置。

其中 nginx 与 php 的详细配置请见:http://www.linuxidc.com/Linux/2017-10/147551.htm

1. 安装配置 nginx

#nginx 版本:1.12.0

#创建用户
[root@memcached ~]# groupadd www
[root@memcached ~]# useradd -g www -s /sbin/nologin www

#安装依赖包
[root@memcached ~]# yum install pcre pcre-devel openssl openssl-devel zlib zlib-devel -y

#编译安装
[root@memcached ~]# cd /usr/local/src/
[root@memcached src]# wget http://nginx.org/download/nginx-1.12.0.tar.gz
[root@memcached src]# tar -zxvf nginx-1.12.0.tar.gz
[root@memcached src]# cd nginx-1.12.0
[root@memcached nginx-1.12.0]# ./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module
[root@memcached nginx-1.12.0]# make
[root@memcached nginx-1.12.0]# make install

#修改用户 / 组
[root@memcached nginx-1.12.0]# chown -R www:www /usr/local/nginx

#设置开机启动
[root@memcached ~]# vim /etc/rc.d/init.d/nginx
[root@memcached ~]# chown www:www /etc/rc.d/init.d/nginx 
[root@memcached ~]# chmod 775 /etc/rc.d/init.d/nginx
[root@memcached ~]# chkconfig --level 35 nginx on

#启动
[root@memcached ~]# service nginx start

2. 安装配置 php

#php 版本:5.6.31

#安装依赖包
[root@memcached ~]# yum install -y gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libpng libpng-devel libxml2 libxml2-devel zlib zlib-devel xml2 xml2-devel openssl openssl-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl libcurl-devel gdbm-devel db4-devel libXpm libXpm-devel libX11 libX11-devel gd-devel gmp-devel readline-devel libxslt-devel expat-devel xmlrpc-c xmlrpc-c-devel

#编译安装 libmcrypt 库,
[root@memcached ~]# cd /usr/local/src/
[root@memcached src]# wget http://nchc.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
[root@memcached src]# tar -zxvf libmcrypt-2.5.8.tar.gz
[root@memcached src]# cd libmcrypt-2.5.8   
[root@memcached libmcrypt-2.5.8]# ./configure
[root@memcached libmcrypt-2.5.8]# make
[root@memcached libmcrypt-2.5.8]# make install

#编译安装 php
[root@memcached ~]# cd /usr/local/src/
[root@memcached src]# wget http://php.net/distributions/php-5.6.31.tar.bz2
[root@memcached src]# tar -jxvf php-5.6.31.tar.bz2
[root@memcached src]# cd php-5.6.31
[root@memcached php-5.6.31]# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-MySQL --with-pdo-mysql --with-mysqli --with-openssl --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib-dir --with-mhash --with-mcrypt --with-bz2 --enable-zip --with-curl --with-gettext --with-iconv --with-xmlrpc --enable-fpm --enable-sockets --enable-sysvshm --enable-mbstring --enable-pdo --enable-libxml --enable-xml --enable-soap --enable-session --enable-ctype --enable-ftp --enable-bcmath --enable-shmop --enable-inline-optimization --enable-opcache --enable-mbregex --enable-pcntl --enable-cgi --enable-wddx
[root@memcached php-5.6.31]# make
[root@memcached php-5.6.31]# make install

#php.ini 文件
[root@memcached ~]# cp /usr/local/src/php-5.6.31/php.ini-production /usr/local/php/etc/php.ini
[root@memcached ~]# ln -s /usr/local/php/etc/php.ini /etc/php.ini

#php-fpm.conf 文件,取消”;pid = run/php-fpm.pid”的注释,同时修改运行账号通 nginx 服务的运行账号一致
[root@memcached ~]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
[root@memcached ~]# ln -s /usr/local/php/etc/php-fpm.conf /etc/php-fpm.conf
[root@memcached ~]# sed -i 's|;pid = run/php-fpm.pid|pid = run/php-fpm.pid|g' /usr/local/php/etc/php-fpm.conf
[root@memcached etc]# sed -i 's|user = nobody|user = www|g' /usr/local/php/etc/php-fpm.conf
[root@memcached etc]# sed -i 's|group = nobody|group = www|g' /usr/local/php/etc/php-fpm.conf

#设置开机启动
[root@memcached ~]# cp /usr/local/src/php-5.6.31/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
[root@memcached ~]# chown www:www /etc/rc.d/init.d/php-fpm
[root@memcached ~]# chmod 755 /etc/rc.d/init.d/php-fpm
[root@memcached ~]# chkconfig --level 35 php-fpm on

#设置 nginx 支持 php
[root@memcached ~]# vim /usr/local/nginx/conf/nginx.conf
#第 2 行,取消 user 的注释,修改运行账号为 www www,与 /usr/local/php/etc/php-fpm.d/www.conf 中的 user/group 配置一致
user www www;
#第 45 行,添加 index.php
index index.html index.htm index.php;
#第 65~71 行,取消 FastCGI server 部分 location 的注释;注意 fastcgi_param 行的参数, 改为 $document_root$fastcgi_script_name,或者使用绝对路径
#pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

#验证测试
[root@memcached ~]# echo -e "<?php\nphpinfo();\n?>" > /usr/local/nginx/html/index.php
[root@memcached ~]# chown -R www:www /usr/local/nginx/html/
[root@memcached ~]# chmod -R 700 /usr/local/nginx/html/
[root@memcached ~]# service nginx restart
[root@memcached ~]# service php-fpm start 

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2017-11/148428p2.htm

3. 安装 libmemcached 

#memcached 在 1.2.4 版本(含)以上增加了 CAS(Check and Set)协议, 即对同一 key 的多进程的并发处理问题;
#类比数据库,如果同时有多个进程对同一张表的同一数据进行更新,数据库可以锁定整张表,也可以锁定表内某一行数据,memcached 的 CAS 功能与此相似;
#但 php-memcache 扩展不支持 CAS,需要先安装 php-memcached 扩展(注意与 php-memcache 扩展的区别),php-memcached 扩展基于 libmemcached,所以要先安装 libmemcached,即 php-memcached 的库。

#libmemcached 版本:1.0.18
#https://launchpad.net/libmemcached/+download
#下载 libmemcached [root@memcached ~]# cd /usr/local/src/ [root@memcached src]# wget https://launchpadlibrarian.net/165454254/libmemcached-1.0.18.tar.gz #编译安装,生成 Makefile 文件时,切记“--with-memcached”参数 [root@memcached src]# tar -zxvf libmemcached-1.0.18.tar.gz.tar [root@memcached src]# cd libmemcached-1.0.18 [root@memcached libmemcached-1.0.18]# ./configure --prefix=/usr/local/libmemcached --with-memcached [root@memcached libmemcached-1.0.18]# make [root@memcached libmemcached-1.0.18]# make install 

4. 安装 php-memcached

#php-memcached 版本:2.2.0(3.0.0 及以上版本针对 php7.0 及以上版本)
#http://pecl.php.net/package/memcached

#php 扩展分原生扩展与第三方扩展,在 php 的源码解压包下的“ext/”目录下可查看所有的原生扩展,php-memcached 及 php-memcache 属于第三方扩展。

#下载 php-memcached
[root@memcached ~]# cd /usr/local/src/
[root@memcached src]# wget http://pecl.php.net/get/memcached-2.2.0.tgz

#编译安装
#phpize: 用于扩展 php 模块,通过 phpize 可以建立 php 的外挂模块
#--enable-memcached: 配置编译环境,编译器编译 php 源码时使能相应扩展
#--with-php-config:指定 php-config 文件路径
#--with-libmemcached-dir:指定 libmemcached 安装目录
#--disable-memcached-sasl:去使能 sasl 认证,因为没有预安装相应功能
#make:把源码编译成 xxxxx.so 文件
#make install: 把 xxxxx.so 文件移动到当前安装 php 的扩展目录
[root@memcached src]# tar -zxvf memcached-2.2.0.tgz
[root@memcached src]# cd memcached-2.2.0
[root@memcached memcached-2.2.0]# /usr/local/php/bin/phpize 
[root@memcached memcached-2.2.0]# ./configure --enable-memcached --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached --disable-memcached-sasl
[root@memcached memcached-2.2.0]# make
[root@memcached memcached-2.2.0]# make install

Memcached 服务器端与 PHP-Memcache 客户端安装配置

Memcached 服务器端与 PHP-Memcache 客户端安装配置

5. 安装 php-memcache

#php-memcached 版本:2.2.7(stable version)
#http://pecl.php.net/package/memcache

#下载 php-memcache
[root@memcached ~]# cd /usr/local/src/
[root@memcached src]# wget http://pecl.php.net/get/memcache-2.2.7.tgz

#编译安装
[root@memcached src]# tar -zxvf memcache-2.2.7.tgz
[root@memcached src]# cd memcache-2.2.7
[root@memcached memcache-2.2.7]# /usr/local/php/bin/phpize 
[root@memcached memcache-2.2.7]# ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config
[root@memcached memcache-2.2.7]# make
[root@memcached memcache-2.2.7]# make install 

Memcached 服务器端与 PHP-Memcache 客户端安装配置

Memcached 服务器端与 PHP-Memcache 客户端安装配置

6. 安装 php-intl(原生扩展样例,非必须项)

#php-intl 版本:3.0.0
#http://pecl.php.net/package/intl

#php-intl 是 php 国际化扩展,是 ICU 库的一个包装器,安装 php-intl 扩展前要先安装 ICU 库
[root@memcached ~]# yum install -y icu libicu libicu-devel

#下载 php-intl;
#通过查看 php 源码解压包下的“ext/”目录,php-intl 属于原生扩展,理论上可以不用下载,直接在“ext/”下相应扩展目录下编译安装即可;
[root@memcached ~]# cd /usr/local/src/
[root@memcached src]# wget http://pecl.php.net/get/intl-3.0.0.tgz

#编译安装
[root@memcached src]# tar -zxvf intl-3.0.0.tgz
[root@memcached src]# cd intl-3.0.0
[root@memcached intl-3.0.0]# /usr/local/php/bin/phpize 
[root@memcached intl-3.0.0]# ./configure --enable-intl --with-php-config=/usr/local/php/bin/php-config
[root@memcached intl-3.0.0]# make
[root@memcached intl-3.0.0]# make install

Memcached 服务器端与 PHP-Memcache 客户端安装配置

Memcached 服务器端与 PHP-Memcache 客户端安装配置 

7. 启用扩展

php 启用扩展有 2 种方式(本文介绍方式 1):

  1. 直接在 php.ini 文件中添加扩展如“extension = xxx.so”
  2. 单独创建 ini 文件,然后 php.ini 调用这些创建的文件即可(可通过 php5enmod 工具支持或者手工配置)
#修改 php.ini,添加扩展,可在第 732 行后添加扩展(非必须);
# 第 732 行的”extension_dir”路径修改为绝对路径(非必须,相对路径也可),即以上各扩展“make install”之后的安装路径
[root@memcached ~]# vim /usr/local/php/etc/php.ini [Intl] extension = intl.so [Memcached] extension = memcached.so [Memcache] extension = memcache.so [root@memcached ~]# service php-fpm restart 

8. 验证扩展是否安装成功

#查看扩展模块方式
[root@memcached ~]# /usr/local/php/bin/php -m | grep -E 'memcache|intl'

Memcached 服务器端与 PHP-Memcache 客户端安装配置

#phpinfo()方式,利用前面已经生成的 index.php 文件即可
http://10.11.4.190/index.php

Memcached 服务器端与 PHP-Memcache 客户端安装配置

Memcached 服务器端与 PHP-Memcache 客户端安装配置

9. php-memcache 访问 memcached 服务器

#修改 index.php
[root@memcached ~]# cd /usr/local/nginx/html/
[root@memcached html]# cp index.php index.php.bak
[root@memcached html]# echo "" > index.php
[root@memcached html]# vim index.php

<?php
$memcache = new Memcache;                                            #创建一个 memcache 对象
$memcache->connect('localhost', 11211) or die ("Could not connect"); #连接 memcached 服务器
$memcache->set('key', 'memcache-test');                              #设置 1 个变量到内存中,key=key, value=memcache-test
$get_value = $memcache->get('key');                                  #从内存取出 key 的 value
echo $get_value;                                                     #回显
?> 

浏览器访问:http://10.11.4.190/index.php

Memcached 服务器端与 PHP-Memcache 客户端安装配置

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-11/148428.htm

本文简单介绍 memcached 服务器端的安装配置,与 php-memcache 客户端连接服务器端的配置与操作。

一.简介 

1. 简介

Memcached 是一款开源、高性能、分布式内存对象缓存系统,可应用各种需要缓存的场景,其主要目的是通过降低对 Database 的访问来加速 web 应用程序。

Memcached 一般的使用场景是:通过缓存数据库查询的结果,减少数据库访问次数,以提高动态 Web 应用的速度、提高可扩展性。

本质上,memcached 是一个基于内存的 key-value 存储,用于存储数据库调用、API 调用或页面引用结果的直接数据,如字符串、对象等小块任意数据。

工作流程如下:

Memcached 服务器端与 PHP-Memcache 客户端安装配置

2. 注意点

  1. 简单 key-value 存储:服务器不关心数据本身的意义及结构,只要是可序列化数据即可;存储项由 ” 键、过期时间、可选的标志及数据 ” 四个部分组成。
  2. 功能实现一半依赖于客户端,一半基于服务器端:客户端负责发送存储项至服务器端、从服务端获取数据以及无法连接至服务器时采用相应的动作;服务端负责接收、存储数据,并负责数据项的超时过期。
  3. Memcached 虽然是 ” 分布式 ” 缓存服务器,但服务器端并没有分布式功能,即不在服务器间进行数据同步及共享信息,” 分布式 ” 完全取决于客户端的实现。
  4. 清理超期数据:默认情况下,Memcached 是一个 LRU 缓存,同时按事先预订的时长清理超期数据;但事实上,memcached 不会删除任何已缓存数据,只是在其过期之后不再为客户所见;而且,memcached 也不会真正按期限清理缓存,而仅是当 get 命令到达时检查其时长。 

二.环境

1. OS 

Server:CentOS-7-x86_64-1511

IP:10.11.4.190 

2. Memcached 版本

1)libevent

libevent-2.1.8

官网:http://libevent.org/

下载:http://ftp.lfs-matrix.net/pub/blfs/conglomeration/libevent/

2)memcached

memcached-1.4.39

官网:https://memcached.org/

下载:https://memcached.org/files/memcached-1.4.39.tar.gz

三.安装 Memcached 服务器

Memcached 服务器端的安装相对简单。 

1. 安装 libevent

#Memcached 依赖于 libevent API,libevent 是个程序库,它将 Linux 的 epoll、BSD 类操作系统的 kqueue 等事件处理功能封装成统一的接口,即使对服务器的连接数增加,也能发挥 O(1)的性能
[root@memcached ~]# cd /usr/local/src/
[root@memcached src]# wget http://ftp.lfs-matrix.net/pub/blfs/conglomeration/libevent/libevent-2.1.8-stable.tar.gz
[root@memcached src]# tar -zxvf libevent-2.1.8-stable.tar.gz
[root@memcached src]# cd libevent-2.1.8-stable
[root@memcached libevent-2.1.8-stable]# ./configure --prefix=/usr/local/libevent
[root@memcached libevent-2.1.8-stable]# make
[root@memcached libevent-2.1.8-stable]# make install

#测试是否安装成功
[root@memcached libevent-2.1.8-stable]# ll /usr/local/libevent/lib/ | grep libevent

Memcached 服务器端与 PHP-Memcache 客户端安装配置

2. 安装 memcached

[root@memcached ~]# cd /usr/local/src/
[root@memcached src]# tar -zxvf memcached-1.4.39.tar.gz.tar
[root@memcached src]# cd memcached-1.4.39
#注意编译前,生成 Makefile 文件时,libevent 的路径 [root@memcached memcached-1.4.39]# ./configure --prefix=/usr/local/memcached -with-libevent=/usr/local/libevent [root@memcached memcached-1.4.39]# make [root@memcached memcached-1.4.39]# make install 

3. 设置环境变量

#简单通过软链接的方式设置环境变量
[root@memcached ~]# ln -s /usr/local/memcached/bin/* /usr/local/bin/ 

4. 设置 iptables

#tcp11211 端口是 memcached 默认监听端口
[root@memcached ~]# vim /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 11211 -j ACCEPT

[root@memcached ~]# service iptables restart 

5. 启动

[root@memcached ~]# /usr/local/memcached/bin/memcached -d -m 256 -u root -l 10.11.4.190 -p 11211 -c 1024 -P /usr/local/memcached/memcached.pid

参数说明:
-d:启动一个守护进程,如果前台运行,配合 -vv 参数,可查看调试信息(主要是存储的信息);
m:分配给 memcached 使用的内存数量,单位是 MB;
u:运行 memcached 的用户,比如 root 或者 memcached,建议采用非 root 账号;
l:服务器监听地址,不设置时默认监听本地所有 IP 地址;
p:设置 memcached 的监听端口,默认为 11211;
c:设置最大并发连接数,默认是 1024;
P:设置保存 memcached 的 pid 文件;
v:输出警告和错误信息;
vv:打印客户端的请求和返回信息;
h:打印帮助信息;
-i:打印 memcached 和 libevent 的版权信息。

6. 验证 

1)端口

[root@memcached ~]# netstat -tunlp

Memcached 服务器端与 PHP-Memcache 客户端安装配置

2)telnet 连接

#可以通过 telnet 连接 memcached 服务器进行数据存储,及数据获取;
#详细的 memcached 的命令可参考:http://www.linuxidc.com/Linux/2017-11/148429.htm ;
#以下红色字体是命令输入,截图可见命令输入与回显
[root@memcached ~]# telnet 10.11.4.190 11211
version            #查看版本
set test 0 0 5     #设置”key”,<command name> <key> <flags> <exptime> <bytes>
mymem              #输入“value”值,<data block>,字节数与 key 中的设的“bytes”相同
get test           #获取已设的 key 的数据
quit               #退出

Memcached 服务器端与 PHP-Memcache 客户端安装配置

7. 设置开机启动

[root@memcached ~]# vim /etc/rc.d/init.d/memcached

#!/bin/sh
#
# memcached: MemCached Daemon
#
# chkconfig: - 90 25
# description: MemCached Daemon
#
# Source function library.

. /etc/rc.d/init.d/functions
. /etc/sysconfig/network

#注意:可执行文件路径根据情况调整
MEMCACHED="/usr/local/memcached/bin/memcached"

start()
{echo -n $"Starting memcached: "
#注意:参数根据情况调整
daemon $MEMCACHED -u root -d -m 256 -p 11211 -c 1024 -P /usr/local/memcached/memcached.pid
echo
}

stop()
{echo -n $"Shutting down memcached: "
killproc memcached
echo
}

[-f $MEMCACHED ] || exit 0

# See how we were called.
case "$1" in
start)
start
;;

stop)
stop
;;

restart|reload)
stop
start
;;

condrestart)
stop
start
;;

*)

echo $"Usage: $0 {start|stop|restart|reload|condrestart}"
exit 1
esac
exit 0

[root@memcached ~]# chmod 775 /etc/rc.d/init.d/memcached
[root@memcached ~]# chkconfig --level 35 memcached on

四.安装配置基于 PHP 的客户端

Memcache 支持多客户端,如 perl,php,Python,c/c++ 等等,这里主要基于 php 配置。

其中 nginx 与 php 的详细配置请见:http://www.linuxidc.com/Linux/2017-10/147551.htm

1. 安装配置 nginx

#nginx 版本:1.12.0

#创建用户
[root@memcached ~]# groupadd www
[root@memcached ~]# useradd -g www -s /sbin/nologin www

#安装依赖包
[root@memcached ~]# yum install pcre pcre-devel openssl openssl-devel zlib zlib-devel -y

#编译安装
[root@memcached ~]# cd /usr/local/src/
[root@memcached src]# wget http://nginx.org/download/nginx-1.12.0.tar.gz
[root@memcached src]# tar -zxvf nginx-1.12.0.tar.gz
[root@memcached src]# cd nginx-1.12.0
[root@memcached nginx-1.12.0]# ./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module
[root@memcached nginx-1.12.0]# make
[root@memcached nginx-1.12.0]# make install

#修改用户 / 组
[root@memcached nginx-1.12.0]# chown -R www:www /usr/local/nginx

#设置开机启动
[root@memcached ~]# vim /etc/rc.d/init.d/nginx
[root@memcached ~]# chown www:www /etc/rc.d/init.d/nginx 
[root@memcached ~]# chmod 775 /etc/rc.d/init.d/nginx
[root@memcached ~]# chkconfig --level 35 nginx on

#启动
[root@memcached ~]# service nginx start

2. 安装配置 php

#php 版本:5.6.31

#安装依赖包
[root@memcached ~]# yum install -y gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libpng libpng-devel libxml2 libxml2-devel zlib zlib-devel xml2 xml2-devel openssl openssl-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl libcurl-devel gdbm-devel db4-devel libXpm libXpm-devel libX11 libX11-devel gd-devel gmp-devel readline-devel libxslt-devel expat-devel xmlrpc-c xmlrpc-c-devel

#编译安装 libmcrypt 库,
[root@memcached ~]# cd /usr/local/src/
[root@memcached src]# wget http://nchc.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
[root@memcached src]# tar -zxvf libmcrypt-2.5.8.tar.gz
[root@memcached src]# cd libmcrypt-2.5.8   
[root@memcached libmcrypt-2.5.8]# ./configure
[root@memcached libmcrypt-2.5.8]# make
[root@memcached libmcrypt-2.5.8]# make install

#编译安装 php
[root@memcached ~]# cd /usr/local/src/
[root@memcached src]# wget http://php.net/distributions/php-5.6.31.tar.bz2
[root@memcached src]# tar -jxvf php-5.6.31.tar.bz2
[root@memcached src]# cd php-5.6.31
[root@memcached php-5.6.31]# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-MySQL --with-pdo-mysql --with-mysqli --with-openssl --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib-dir --with-mhash --with-mcrypt --with-bz2 --enable-zip --with-curl --with-gettext --with-iconv --with-xmlrpc --enable-fpm --enable-sockets --enable-sysvshm --enable-mbstring --enable-pdo --enable-libxml --enable-xml --enable-soap --enable-session --enable-ctype --enable-ftp --enable-bcmath --enable-shmop --enable-inline-optimization --enable-opcache --enable-mbregex --enable-pcntl --enable-cgi --enable-wddx
[root@memcached php-5.6.31]# make
[root@memcached php-5.6.31]# make install

#php.ini 文件
[root@memcached ~]# cp /usr/local/src/php-5.6.31/php.ini-production /usr/local/php/etc/php.ini
[root@memcached ~]# ln -s /usr/local/php/etc/php.ini /etc/php.ini

#php-fpm.conf 文件,取消”;pid = run/php-fpm.pid”的注释,同时修改运行账号通 nginx 服务的运行账号一致
[root@memcached ~]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
[root@memcached ~]# ln -s /usr/local/php/etc/php-fpm.conf /etc/php-fpm.conf
[root@memcached ~]# sed -i 's|;pid = run/php-fpm.pid|pid = run/php-fpm.pid|g' /usr/local/php/etc/php-fpm.conf
[root@memcached etc]# sed -i 's|user = nobody|user = www|g' /usr/local/php/etc/php-fpm.conf
[root@memcached etc]# sed -i 's|group = nobody|group = www|g' /usr/local/php/etc/php-fpm.conf

#设置开机启动
[root@memcached ~]# cp /usr/local/src/php-5.6.31/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
[root@memcached ~]# chown www:www /etc/rc.d/init.d/php-fpm
[root@memcached ~]# chmod 755 /etc/rc.d/init.d/php-fpm
[root@memcached ~]# chkconfig --level 35 php-fpm on

#设置 nginx 支持 php
[root@memcached ~]# vim /usr/local/nginx/conf/nginx.conf
#第 2 行,取消 user 的注释,修改运行账号为 www www,与 /usr/local/php/etc/php-fpm.d/www.conf 中的 user/group 配置一致
user www www;
#第 45 行,添加 index.php
index index.html index.htm index.php;
#第 65~71 行,取消 FastCGI server 部分 location 的注释;注意 fastcgi_param 行的参数, 改为 $document_root$fastcgi_script_name,或者使用绝对路径
#pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

#验证测试
[root@memcached ~]# echo -e "<?php\nphpinfo();\n?>" > /usr/local/nginx/html/index.php
[root@memcached ~]# chown -R www:www /usr/local/nginx/html/
[root@memcached ~]# chmod -R 700 /usr/local/nginx/html/
[root@memcached ~]# service nginx restart
[root@memcached ~]# service php-fpm start 

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2017-11/148428p2.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计20787字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7963508
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流! 大家好,我是星哥,今天才思枯竭,不写技术文章了!来吐槽一下 CSDN。...
恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击 PHP-FPM(FastCGl Process M...
手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板 前言 大家好,我是星哥。星哥发现很多新手刚接触服务器时,都会被“选购...
星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛 NAS 硬件 02:某鱼 6 张左右就可拿下 5 盘位的飞牛圣体 NAS 前言 大家好,我是星...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare 也瘫了连监控都挂,根因藏在哪? 最近两天的互联网堪称“故障...
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸 前言 作为天天跟架构图、拓扑图死磕的...
你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你 为什么要用宝塔跑分? 宝塔跑分其实就是对 CPU、内存、磁盘、IO 做...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛 NAS 硬件 03:五盘位 +N5105+ 双网口的成品 NAS 值得入手吗 前言 大家好,我...