Linux 编译部署 PHP 7.x 版本 Memcache 扩展及 Memcached 服务

默认分类 2017-01-12 23:15 暂无评论
系统版本:CentOS 7.2
Memcached 版本:1.4.34
PHP 版本:7.x

PHP 安装编译过程这里就不讲述了。关于 Memcached 和 PHP 的安装顺序无所谓,两者不关联也没有特定依赖。

1. 安装 Memcached

官方下载地址:http://memcached.org/files/memcached-1.4.34.tar.gz

mkdir /usr/local/memcached
wget -c http://memcached.org/files/memcached-1.4.34.tar.gz
tar zxf memcached-1.4.34.tar.gz && cd memcached-1.x.x
./configure --prefix=/usr/local/memcached
make && make test && make install

将 Memcached 安装至 /usr/local/memcached 目录下,随后添加开机启动。

写入脚本至 /etc/init.d/memcached 并且给予执行权限 chmod +x /etc/init.d/memcached

#! /bin/sh
#
# chkconfig: - 55 45
# description:  The memcached daemon is a network memory cache service.
# processname: memcached
# config: /etc/sysconfig/memcached

# Source function library - for other linux
#. /etc/rc.d/init.d/functions
# Source function library - for suse linux
. /lib/lsb/init-functions


ip="127.0.0.1"             # 绑定侦听的IP地址
port="11211"                    # 服务端口
username="root"                 # 运行程序的用户身份
max_memory=256                   # default: 64M | 最大使用内存
max_connection=1024             # default: 1024 | 最大同时连接数



if [ -f /etc/sysconfig/memcached ];then
  . /etc/sysconfig/memcached
fi

# Check that networking is up.
if [ "$NETWORKING" = "no" ]
then
  exit 0
fi

RETVAL=0
prog="memcached"
pidfile=/tmp/memcached.pid
basedir=/usr/local/memcached
cmd=${basedir}/bin/memcached

start () {
  echo -n $"Starting service:$prog "
  chown $username $basedir
  $cmd -d -p $port -u $username  -m $max_memory -c $max_connection -P $pidfile $OPTIONS
  RETVAL=$?
  echo
  [ $RETVAL -eq 0 ] && touch /var/lock/subsys/memcached
  return $retval
}

stop() {
    echo -n $"Stopping service: $prog  "
    current_user=$(whoami)
    pidlist=$(ps -ef | grep $current_user | grep memcached | grep -v grep | awk '{print $2}')
    for pid in $pidlist ; do
        kill -9 $pid
        if [ $? -ne 0 ]; then
           return 1
        fi
    done
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/memcached
}

restart () {
  stop
  start
}

# See how we were called.
case "$1" in
  start)
  start
  ;;
  stop)
  stop
  ;;
  status)
  status memcached
  ;;
  restart|reload)
  restart
  ;;
  condrestart)
  [ -f /var/lock/subsys/memcached ] && restart || :
  ;;
  *)
  echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}"
  exit 1
esac

exit $?

添加开机自启动:

chkconfig --add memcached
chkconfig --level 2345 memcached on

至此 Memcached 安装完毕!

2. Memcache 扩展安装

目前原生 Memcache 并不能直接支持 PHP 7 使用,所以使用 Memcache 项目的 PHP 7 分支来编译扩展。

git clone https://github.com/websupport-sk/pecl-memcache
cd pecl-memcache && git checkout php7
phpize
./configure --whit-php-config=/usr/local/php/bin/php-config && make && make test && make install

注意编译扩展时需要选择 php-config 的目录,取决于你的 PHP 安装目录在哪里。

加载 Memcache 扩展只需要在 php.ini 写入即可 vim /usr/local/php/etc/php.ini 嫌麻烦直接 echo 追加至文件即可。

[memcache]
extension = memcache.so

查看是否加载成功 Memcache 扩展直接执行 php -m | grep "memcache" 返回 Memcache 说明加载成功

暂无评论