oneinstack/include/memcached.sh
2024-07-15 13:21:08 +08:00

128 lines
5.1 KiB
Bash

#!/bin/bash
# Author: yeho <lj2007331 AT gmail.com>
# BLOG: https://linuxeye.com
#
# Notes: OneinStack for CentOS/RedHat 7+ Debian 9+ and Ubuntu 16+
#
# Project home page:
# https://oneinstack.com
# https://github.com/oneinstack/oneinstack
Install_memcached_server() {
pushd ${oneinstack_dir}/src > /dev/null
# memcached server
id -u memcached >/dev/null 2>&1
[ $? -ne 0 ] && useradd -M -s /sbin/nologin memcached
tar xzf memcached-${memcached_ver}.tar.gz
pushd memcached-${memcached_ver} > /dev/null
[ ! -d "${memcached_install_dir}" ] && mkdir -p ${memcached_install_dir}
./configure --prefix=${memcached_install_dir}
make -j ${THREAD} && make install
popd > /dev/null
if [ -f "${memcached_install_dir}/bin/memcached" ]; then
echo "${CSUCCESS}memcached installed successfully! ${CEND}"
rm -rf memcached-${memcached_ver}
ln -s ${memcached_install_dir}/bin/memcached /usr/bin/memcached
/bin/cp ../init.d/memcached.service /lib/systemd/system/
systemctl enable memcached
systemctl start memcached
rm -rf memcached-${memcached_ver}
else
rm -rf ${memcached_install_dir}
echo "${CFAILURE}memcached-server install failed, Please contact the author! ${CEND}" && grep -Ew 'NAME|ID|ID_LIKE|VERSION_ID|PRETTY_NAME' /etc/os-release
kill -9 $$; exit 1;
fi
popd > /dev/null
}
Install_pecl_memcache() {
if [ -e "${php_install_dir}/bin/phpize" ]; then
pushd ${oneinstack_dir}/src > /dev/null
phpExtensionDir=$(${php_install_dir}/bin/php-config --extension-dir)
PHP_detail_ver=$(${php_install_dir}/bin/php-config --version)
PHP_main_ver=${PHP_detail_ver%.*}
if [ "$(${php_install_dir}/bin/php-config --version | awk -F. '{print $1}')" == '5' ]; then
tar xzf memcache-3.0.8.tgz
pushd memcache-3.0.8 > /dev/null
elif [ "$(${php_install_dir}/bin/php-config --version | awk -F. '{print $1}')" == '7' ]; then
tar xzf memcache-${pecl_memcache_oldver}.tgz
pushd memcache-${pecl_memcache_oldver} > /dev/null
else
#git clone https://github.com/websupport-sk/pecl-memcache.git
tar xzf memcache-${pecl_memcache_ver}.tgz
pushd memcache-${pecl_memcache_ver} > /dev/null
fi
${php_install_dir}/bin/phpize
./configure --with-php-config=${php_install_dir}/bin/php-config
make -j ${THREAD} && make install
popd > /dev/null
if [ -f "${phpExtensionDir}/memcache.so" ]; then
echo "extension=memcache.so" > ${php_install_dir}/etc/php.d/05-memcache.ini
echo "${CSUCCESS}PHP memcache module installed successfully! ${CEND}"
rm -rf memcache-${pecl_memcache_ver} memcache-${pecl_memcache_oldver} memcache-3.0.8
else
echo "${CFAILURE}PHP memcache module install failed, Please contact the author! ${CEND}" && grep -Ew 'NAME|ID|ID_LIKE|VERSION_ID|PRETTY_NAME' /etc/os-release
fi
popd > /dev/null
fi
}
Install_pecl_memcached() {
if [ -e "${php_install_dir}/bin/phpize" ]; then
pushd ${oneinstack_dir}/src > /dev/null
phpExtensionDir=$(${php_install_dir}/bin/php-config --extension-dir)
# php memcached extension
tar xzf libmemcached-${libmemcached_ver}.tar.gz
patch -d libmemcached-${libmemcached_ver} -p0 < libmemcached-build.patch
pushd libmemcached-${libmemcached_ver} > /dev/null
[ "${PM}" == 'yum' ] && yum -y install cyrus-sasl-devel
[ "${PM}" == 'apt-get' ] && sed -i "s@lthread -pthread -pthreads@lthread -lpthread -pthreads@" ./configure
./configure --with-memcached=${memcached_install_dir}
make -j ${THREAD} && make install
popd > /dev/null
rm -rf libmemcached-${libmemcached_ver}
if [ "$(${php_install_dir}/bin/php-config --version | awk -F. '{print $1}')" == '5' ]; then
tar xzf memcached-${pecl_memcached_oldver}.tgz
pushd memcached-${pecl_memcached_oldver} > /dev/null
else
tar xzf memcached-${pecl_memcached_ver}.tgz
pushd memcached-${pecl_memcached_ver} > /dev/null
fi
${php_install_dir}/bin/phpize
./configure --with-php-config=${php_install_dir}/bin/php-config
make -j ${THREAD} && make install
popd > /dev/null
if [ -f "${phpExtensionDir}/memcached.so" ]; then
cat > ${php_install_dir}/etc/php.d/05-memcached.ini << EOF
extension=memcached.so
memcached.use_sasl=1
EOF
echo "${CSUCCESS}PHP memcached module installed successfully! ${CEND}"
rm -rf memcached-${pecl_memcached_oldver} memcached-${pecl_memcached_ver}
else
echo "${CFAILURE}PHP memcached module install failed, Please contact the author! ${CEND}" && grep -Ew 'NAME|ID|ID_LIKE|VERSION_ID|PRETTY_NAME' /etc/os-release
fi
popd > /dev/null
fi
}
Uninstall_pecl_memcache() {
if [ -e "${php_install_dir}/etc/php.d/05-memcache.ini" ]; then
rm -f ${php_install_dir}/etc/php.d/05-memcache.ini
echo; echo "${CMSG}PHP memcache module uninstall completed${CEND}"
else
echo; echo "${CWARNING}PHP memcache module does not exist! ${CEND}"
fi
}
Uninstall_pecl_memcached() {
if [ -e "${php_install_dir}/etc/php.d/05-memcached.ini" ]; then
rm -f ${php_install_dir}/etc/php.d/05-memcached.ini
echo; echo "${CMSG}PHP memcached module uninstall completed${CEND}"
else
echo; echo "${CWARNING}PHP memcached module does not exist! ${CEND}"
fi
}