memcached.sh 4.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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. {
  12. cd $oneinstack_dir/src
  13. src_url=http://www.memcached.org/files/memcached-$memcached_version.tar.gz && Download_src
  14. # memcached server
  15. id -u mysql >/dev/null 2>&1
  16. [ $? -ne 0 ] && useradd -M -s /sbin/nologin memcached
  17. tar xzf memcached-$memcached_version.tar.gz
  18. cd memcached-$memcached_version
  19. [ ! -d "$memcached_install_dir" ] && mkdir -p $memcached_install_dir
  20. ./configure --prefix=$memcached_install_dir
  21. make && make install
  22. if [ -d "$memcached_install_dir/include/memcached" ];then
  23. echo "${CSUCCESS}memcached install successfully! ${CEND}"
  24. cd ..
  25. rm -rf memcached-$memcached_version
  26. ln -s $memcached_install_dir/bin/memcached /usr/bin/memcached
  27. OS_CentOS='/bin/cp ../init.d/Memcached-init-CentOS /etc/init.d/memcached \n
  28. chkconfig --add memcached \n
  29. chkconfig memcached on'
  30. OS_Debian_Ubuntu='/bin/cp ../init.d/Memcached-init-Ubuntu /etc/init.d/memcached \n
  31. update-rc.d memcached defaults'
  32. OS_command
  33. sed -i "s@/usr/local/memcached@$memcached_install_dir@g" /etc/init.d/memcached
  34. [ -n "`grep 'CACHESIZE=' /etc/init.d/memcached`" ] && sed -i "s@^CACHESIZE=.*@CACHESIZE=`expr $Mem / 8`@" /etc/init.d/memcached
  35. [ -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
  36. service memcached start
  37. else
  38. rm -rf $memcached_install_dir
  39. echo "${CFAILURE}memcached install failed, Please contact the author! ${CEND}"
  40. kill -9 $$
  41. fi
  42. if [ -e "$php_install_dir/bin/phpize" ];then
  43. src_url=https://launchpad.net/libmemcached/1.0/$libmemcached_version/+download/libmemcached-$libmemcached_version.tar.gz && Download_src
  44. src_url=http://pecl.php.net/get/memcached-$memcached_pecl_version.tgz && Download_src
  45. src_url=http://pecl.php.net/get/memcache-$memcache_pecl_version.tgz && Download_src
  46. # php memcache extension
  47. tar xzf memcache-$memcache_pecl_version.tgz
  48. cd memcache-$memcache_pecl_version
  49. make clean
  50. $php_install_dir/bin/phpize
  51. ./configure --with-php-config=$php_install_dir/bin/php-config
  52. make && make install
  53. if [ -f "$php_install_dir/lib/php/extensions/`ls $php_install_dir/lib/php/extensions | grep zts`/memcache.so" ];then
  54. [ -z "`cat $php_install_dir/etc/php.ini | grep '^extension_dir'`" ] && sed -i "s@extension_dir = \"ext\"@extension_dir = \"ext\"\nextension_dir = \"$php_install_dir/lib/php/extensions/`ls $php_install_dir/lib/php/extensions | grep zts`\"@" $php_install_dir/etc/php.ini
  55. sed -i 's@^extension_dir\(.*\)@extension_dir\1\nextension = "memcache.so"@' $php_install_dir/etc/php.ini
  56. [ "$Apache_version" != '1' -a "$Apache_version" != '2' ] && service php-fpm restart || service httpd restart
  57. echo "${CSUCCESS}PHP memcache module install successfully! ${CEND}"
  58. cd ..
  59. rm -rf memcache-$memcache_pecl_version
  60. else
  61. echo "${CFAILURE}PHP memcache module install failed, Please contact the author! ${CEND}"
  62. fi
  63. # php memcached extension
  64. tar xzf libmemcached-$libmemcached_version.tar.gz
  65. cd libmemcached-$libmemcached_version
  66. OS_CentOS='yum -y install cyrus-sasl-devel'
  67. OS_Debian_Ubuntu='sed -i "s@lthread -pthread -pthreads@lthread -lpthread -pthreads@" ./configure'
  68. OS_command
  69. ./configure --with-memcached=$memcached_install_dir
  70. make && make install
  71. cd ..
  72. rm -rf libmemcached-$libmemcached_version
  73. tar xzf memcached-$memcached_pecl_version.tgz
  74. cd memcached-$memcached_pecl_version
  75. make clean
  76. $php_install_dir/bin/phpize
  77. ./configure --with-php-config=$php_install_dir/bin/php-config
  78. make && make install
  79. if [ -f "$php_install_dir/lib/php/extensions/`ls $php_install_dir/lib/php/extensions | grep zts`/memcached.so" ];then
  80. [ -z "`cat $php_install_dir/etc/php.ini | grep '^extension_dir'`" ] && sed -i "s@extension_dir = \"ext\"@extension_dir = \"ext\"\nextension_dir = \"$php_install_dir/lib/php/extensions/`ls $php_install_dir/lib/php/extensions/ | grep zts`\"@" $php_install_dir/etc/php.ini
  81. sed -i 's@^extension_dir\(.*\)@extension_dir\1\nextension = "memcached.so"\nmemcached.use_sasl = 1@' $php_install_dir/etc/php.ini
  82. echo "${CSUCCESS}PHP memcached module install successfully! ${CEND}"
  83. cd ..
  84. rm -rf memcached-$memcached_pecl_version
  85. [ "$Apache_version" != '1' -a "$Apache_version" != '2' ] && service php-fpm restart || service httpd restart
  86. else
  87. echo "${CFAILURE}PHP memcached module install failed, Please contact the author! ${CEND}"
  88. fi
  89. fi
  90. cd ..
  91. }