memcached.sh 4.0 KB

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