auto_lnmp/include/xcache.sh
2021-08-19 06:35:24 +08:00

110 lines
3.5 KiB
Bash

#!/usr/bin/env bash
Install_XCache()
{
echo "You will install ${XCache_Ver}..."
xadmin_pass=""
while :;do
read -p "Please enter admin password of XCache Administration Page: " xadmin_pass
if [ "${xadmin_pass}" != "" ]; then
echo "================================================="
echo "Your admin password of XCache was: ${xadmin_pass}"
echo "================================================="
break
else
Echo_Red "Password cannot be empty!"
fi
done
xmd5pass=`echo -n "${xadmin_pass}" |md5sum |awk '{print $1}'`
echo "====== Installing XCache ======"
Press_Start
rm -f ${PHP_Path}/conf.d/006-xcache.ini
Addons_Get_PHP_Ext_Dir
zend_ext="${zend_ext_dir}xcache.so"
if [ -s "${zend_ext}" ]; then
rm -f "${zend_ext}"
fi
cpu_count=`cat /proc/cpuinfo |grep -c processor`
cd ${cur_dir}/src
Download_Files ${Download_Mirror}/web/xcache/${XCache_Ver}.tar.gz ${XCache_Ver}.tar.gz
Tar_Cd ${XCache_Ver}.tar.gz ${XCache_Ver}
${PHP_Path}/bin/phpize
./configure --enable-xcache --enable-xcache-coverager --enable-xcache-optimizer --with-php-config=${PHP_Path}/bin/php-config
make
make install
cd ../
cat >${PHP_Path}/conf.d/006-xcache.ini<<EOF
[xcache-common]
extension = xcache.so
[xcache.admin]
xcache.admin.enable_auth = On
xcache.admin.user = "admin"
;run: echo -n "yourpassword" |md5sum |awk '{print $1}' to get md5 password
xcache.admin.pass = "${xmd5pass}"
[xcache]
xcache.shm_scheme = "mmap"
xcache.size = 20M
; set to cpu count (cat /proc/cpuinfo |grep -c processor)
xcache.count = ${cpu_count}
xcache.slots = 8K
xcache.ttl = 0
xcache.gc_interval = 0
xcache.var_size = 4M
xcache.var_count = 1
xcache.var_slots = 8K
xcache.var_ttl = 0
xcache.var_maxttl = 0
xcache.var_gc_interval = 300
xcache.readonly_protection = Off
; for *nix, xcache.mmap_path is a file path, not directory. (auto create/overwrite)
; Use something like "/tmp/xcache" instead of "/dev/*" if you want to turn on ReadonlyProtection
; different process group of php won't share the same /tmp/xcache
xcache.mmap_path = "/tmp/xcache"
xcache.coredump_directory = ""
xcache.experimental = Off
xcache.cacher = On
xcache.stat = On
xcache.optimizer = Off
[xcache.coverager]
; enabling this feature will impact performance
; enable only if xcache.coverager == On && xcache.coveragedump_directory == "non-empty-value"
; enable coverage data collecting and xcache_coverager_start/stop/get/clean() functions
xcache.coverager = Off
xcache.coveragedump_directory = ""
EOF
touch /tmp/xcache && chown www:www /tmp/xcache
\cp -a ${cur_dir}/src/${XCache_Ver}/htdocs ${Default_Website_Dir}/xcache
chown www:www -R ${Default_Website_Dir}/xcache
if [ -s "${zend_ext}" ]; then
Restart_PHP
Echo_Green "======== xcache install completed ======"
Echo_Green "XCache installed successfully, enjoy it!"
else
rm -f ${PHP_Path}/conf.d/006-xcache.ini
Echo_Red "XCache install failed!"
fi
}
Uninstall_XCache()
{
echo "You will uninstall XCache..."
Press_Start
rm -f ${PHP_Path}/conf.d/006-xcache.ini
echo "Delete xcache files..."
rm -rf ${Default_Website_Dir}/xcache
Restart_PHP
Echo_Green "Uninstall XCache completed."
}