1
0

memcached.sh 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. #!/bin/bash
  2. # Author: yeho <lj2007331 AT gmail.com>
  3. # BLOG: https://blog.linuxeye.com
  4. #
  5. # Notes: OneinStack for CentOS/RadHat 5+ Debian 6+ and Ubuntu 12+
  6. #
  7. # Project home page:
  8. # http://oneinstack.com
  9. # https://github.com/lj2007331/oneinstack
  10. Install_memcached() {
  11. cd $oneinstack_dir/src
  12. src_url=http://www.memcached.org/files/memcached-$memcached_version.tar.gz && Download_src
  13. # memcached server
  14. id -u memcached >/dev/null 2>&1
  15. [ $? -ne 0 ] && useradd -M -s /sbin/nologin memcached
  16. tar xzf memcached-$memcached_version.tar.gz
  17. cd memcached-$memcached_version
  18. [ ! -d "$memcached_install_dir" ] && mkdir -p $memcached_install_dir
  19. ./configure --prefix=$memcached_install_dir
  20. make -j ${THREAD} && make install
  21. if [ -d "$memcached_install_dir/include/memcached" ];then
  22. echo "${CSUCCESS}memcached install successfully! ${CEND}"
  23. cd ..
  24. rm -rf memcached-$memcached_version
  25. ln -s $memcached_install_dir/bin/memcached /usr/bin/memcached
  26. [ "$OS" == 'CentOS' ] && { /bin/cp ../init.d/Memcached-init-CentOS /etc/init.d/memcached; chkconfig --add memcached; chkconfig memcached on; }
  27. [[ $OS =~ ^Ubuntu$|^Debian$ ]] && { /bin/cp ../init.d/Memcached-init-Ubuntu /etc/init.d/memcached; update-rc.d memcached defaults; }
  28. sed -i "s@/usr/local/memcached@$memcached_install_dir@g" /etc/init.d/memcached
  29. [ -n "`grep 'CACHESIZE=' /etc/init.d/memcached`" ] && sed -i "s@^CACHESIZE=.*@CACHESIZE=`expr $Mem / 8`@" /etc/init.d/memcached
  30. [ -n "`grep 'start_instance default 256;' /etc/init.d/memcached`" ] && sed -i "s@start_instance default 256;@start_instance default `expr $Mem / 8`;@" /etc/init.d/memcached
  31. service memcached start
  32. else
  33. rm -rf $memcached_install_dir
  34. echo "${CFAILURE}memcached install failed, Please contact the author! ${CEND}"
  35. kill -9 $$
  36. fi
  37. cd ..
  38. }
  39. Install_php-memcache() {
  40. cd $oneinstack_dir/src
  41. if [ -e "$php_install_dir/bin/phpize" ];then
  42. # php memcache extension
  43. if [ "`$php_install_dir/bin/php -r 'echo PHP_VERSION;' | awk -F. '{print $1}'`" == '7' ];then
  44. #git clone https://github.com/websupport-sk/pecl-memcache.git
  45. #cd pecl-memcache
  46. src_url=http://mirrors.linuxeye.com/oneinstack/src/pecl-memcache-php7.tgz && Download_src
  47. tar xzf pecl-memcache-php7.tgz
  48. cd pecl-memcache-php7
  49. else
  50. src_url=http://pecl.php.net/get/memcache-$memcache_pecl_version.tgz && Download_src
  51. tar xzf memcache-$memcache_pecl_version.tgz
  52. cd memcache-$memcache_pecl_version
  53. fi
  54. make clean
  55. $php_install_dir/bin/phpize
  56. ./configure --with-php-config=$php_install_dir/bin/php-config
  57. make -j ${THREAD} && make install
  58. if [ -f "`$php_install_dir/bin/php-config --extension-dir`/memcache.so" ];then
  59. cat > $php_install_dir/etc/php.d/ext-memcache.ini << EOF
  60. extension=memcache.so
  61. EOF
  62. [ "$Apache_version" != '1' -a "$Apache_version" != '2' ] && service php-fpm restart || service httpd restart
  63. echo "${CSUCCESS}PHP memcache module install successfully! ${CEND}"
  64. cd ..
  65. rm -rf memcache-$memcache_pecl_version
  66. else
  67. echo "${CFAILURE}PHP memcache module install failed, Please contact the author! ${CEND}"
  68. fi
  69. fi
  70. cd ..
  71. }
  72. Install_php-memcached() {
  73. cd $oneinstack_dir/src
  74. if [ -e "$php_install_dir/bin/phpize" ];then
  75. src_url=https://launchpad.net/libmemcached/1.0/$libmemcached_version/+download/libmemcached-$libmemcached_version.tar.gz && Download_src
  76. # php memcached extension
  77. tar xzf libmemcached-$libmemcached_version.tar.gz
  78. cd libmemcached-$libmemcached_version
  79. [ "$OS" == 'CentOS' ] && yum -y install cyrus-sasl-devel
  80. [[ $OS =~ ^Ubuntu$|^Debian$ ]] && sed -i "s@lthread -pthread -pthreads@lthread -lpthread -pthreads@" ./configure
  81. ./configure --with-memcached=$memcached_install_dir
  82. make -j ${THREAD} && make install
  83. cd ..
  84. rm -rf libmemcached-$libmemcached_version
  85. if [ "`$php_install_dir/bin/php -r 'echo PHP_VERSION;' | awk -F. '{print $1}'`" == '7' ];then
  86. #git clone -b php7 https://github.com/php-memcached-dev/php-memcached.git
  87. #cd php-memcached
  88. src_url=http://mirrors.linuxeye.com/oneinstack/src/php-memcached-php7.tgz && Download_src
  89. tar xzf php-memcached-php7.tgz
  90. cd php-memcached-php7
  91. else
  92. src_url=http://pecl.php.net/get/memcached-$memcached_pecl_version.tgz && Download_src
  93. tar xzf memcached-$memcached_pecl_version.tgz
  94. cd memcached-$memcached_pecl_version
  95. fi
  96. make clean
  97. $php_install_dir/bin/phpize
  98. ./configure --with-php-config=$php_install_dir/bin/php-config
  99. make -j ${THREAD} && make install
  100. if [ -f "`$php_install_dir/bin/php-config --extension-dir`/memcached.so" ];then
  101. cat > $php_install_dir/etc/php.d/ext-memcached.ini << EOF
  102. extension=memcached.so
  103. memcached.use_sasl=1
  104. EOF
  105. echo "${CSUCCESS}PHP memcached module install successfully! ${CEND}"
  106. cd ..
  107. rm -rf memcached-$memcached_pecl_version
  108. [ "$Apache_version" != '1' -a "$Apache_version" != '2' ] && service php-fpm restart || service httpd restart
  109. else
  110. echo "${CFAILURE}PHP memcached module install failed, Please contact the author! ${CEND}"
  111. fi
  112. fi
  113. cd ..
  114. }