Giter Site home page Giter Site logo

Support Debian 11 about ols1clk HOT 1 CLOSED

litespeedtech avatar litespeedtech commented on September 28, 2024
Support Debian 11

from ols1clk.

Comments (1)

ZiXia1 avatar ZiXia1 commented on September 28, 2024

` #!/bin/bash ##############################################################################

Open LiteSpeed is an open source HTTP server.

Copyright (C) 2013 - 2021 LiteSpeed Technologies, Inc.

This program is free software: you can redistribute it and/or modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation, either version 3 of the License, or

(at your option) any later version.

This program is distributed in the hope that it will be useful,

but WITHOUT ANY WARRANTY; without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

GNU General Public License for more details.

You should have received a copy of the GNU General Public License

along with this program. If not, see http://www.gnu.org/licenses/.

##############################################################################

Author: [email protected] (David Shue)

TEMPRANDSTR= OSNAMEVER=UNKNOWN OSNAME= OSVER= OSTYPE=$(uname -m) MARIADBCPUARCH= SERVER_ROOT=/usr/local/lsws WEBCF="$SERVER_ROOT/conf/httpd_config.conf" OLSINSTALLED= MYSQLINSTALLED= TESTGETERROR=no DATABASENAME=olsdbname USERNAME=olsdbuser VERBOSE=0 PURE_DB=0 WORDPRESSPATH=$SERVER_ROOT/wordpress WPPORT=80 SSLWPPORT=443 WORDPRESSINSTALLED= INSTALLWORDPRESS=0 INSTALLWORDPRESSPLUS=0 FORCEYES=0 WPLANGUAGE=en_US WPUSER=wpuser WPTITLE=MySite SITEDOMAIN=* EMAIL= ADMINPASSWORD= ROOTPASSWORD= USERPASSWORD= WPPASSWORD= LSPHPVERLIST=(56 70 71 72 73 74 80) MARIADBVERLIST=(10.2 10.3 10.4 10.5 10.6) LSPHPVER=80 MARIADBVER=10.6 WEBADMIN_LSPHPVER=80 ALLERRORS=0 TEMPPASSWORD= ACTION=INSTALL FOLLOWPARAM= CONFFILE=myssl.conf CSR=example.csr KEY=example.key CERT=example.crt EPACE=' ' FPACE=' ' APT='apt-get -qq' YUM='yum -q' MYGITHUBURL=https://raw.githubusercontent.com/litespeedtech/ols1clk/master/ols1clk.sh

function echoY { FLAG=$1 shift echo -e "\033[38;5;148m$FLAG\033[39m$@" }

function echoG { FLAG=$1 shift echo -e "\033[38;5;71m$FLAG\033[39m$@" }

function echoB { FLAG=$1 shift echo -e "\033[38;1;34m$FLAG\033[39m$@" }

function echoR { FLAG=$1 shift echo -e "\033[38;5;203m$FLAG\033[39m$@" }

function echoW { FLAG=${1} shift echo -e "\033[1m${EPACE}${FLAG}\033[0m${@}" }

function echoNW { FLAG=${1} shift echo -e "\033[1m${FLAG}\033[0m${@}" }

function echoCYAN { FLAG=$1 shift echo -e "\033[1;36m$FLAG\033[0m$@" }

function silent { if [ "${VERBOSE}" = '1' ] ; then "$@" else "$@" >/dev/null 2>&1 fi }

function change_owner { chown -R ${USER}:${GROUP} ${1} }

function check_root { local INST_USER=id -u if [ $INST_USER != 0 ] ; then echoR "Sorry, only the root user can install." echo exit 1 fi }

function update_system(){ echoG 'System update' if [ "$OSNAME" = "centos" ] ; then silent ${YUM} update -y >/dev/null 2>&1 else silent ${APT} update && ${APT} upgrade -y >/dev/null 2>&1 fi }

function check_wget { which wget >/dev/null 2>&1 if [ $? != 0 ] ; then if [ "$OSNAME" = "centos" ] ; then silent ${YUM} -y install wget else ${APT} -y install wget fi which wget >/dev/null 2>&1 if [ $? != 0 ] ; then echoR "An error occured during wget installation." ALLERRORS=1 fi fi }

function check_curl { which curl >/dev/null 2>&1 if [ $? != 0 ] ; then if [ "$OSNAME" = "centos" ] ; then silent ${YUM} -y install curl else ${APT} -y install curl fi which curl >/dev/null 2>&1 if [ $? != 0 ] ; then echoR "An error occured during curl installation." ALLERRORS=1 fi fi }

function update_email { if [ "$EMAIL" = '' ] ; then if [ "$SITEDOMAIN" = "*" ] ; then EMAIL=root@localhost else EMAIL=root@$SITEDOMAIN fi fi }

function restart_lsws { systemctl stop lsws >/dev/null 2>&1 systemctl start lsws }

function usage { echo -e "\033[1mOPTIONS\033[0m" echoNW " -A, --adminpassword [PASSWORD]" "${EPACE}To set the WebAdmin password for OpenLiteSpeed instead of using a random one." echoNW " -E, --email [EMAIL] " "${EPACE} To set the administrator email." echoW " --lsphp [VERSION] " "To set the LSPHP version, such as 80. We currently support versions '${LSPHPVERLIST[@]}'." echoW " --mariadbver [VERSION] " "To set MariaDB version, such as 10.5. We currently support versions '${MARIADBVERLIST[@]}'." echoNW " -W, --wordpress " "${EPACE} To install WordPress. You will still need to complete the WordPress setup by browser" echoW " --wordpressplus [SITEDOMAIN] " "To install, setup, and configure WordPress, also LSCache will be enabled" echoW " --wordpresspath [WP_PATH] " "To specify a location for the new WordPress installation or an existing WordPress." echoNW " -R, --dbrootpassword [PASSWORD] " " To set the database root password instead of using a random one." echoW " --dbname [DATABASENAME] " "To set the database name to be used by WordPress." echoW " --dbuser [DBUSERNAME] " "To set the WordPress username in the database." echoW " --dbpassword [PASSWORD] " "To set the WordPress table password in MySQL instead of using a random one." echoW " --listenport [PORT] " "To set the HTTP server listener port, default is 80." echoW " --ssllistenport [PORT] " "To set the HTTPS server listener port, default is 443." echoW " --wpuser [WORDPRESSUSER] " "To set the WordPress admin user for WordPress dashboard login. Default value is wpuser." echoW " --wppassword [PASSWORD] " "To set the WordPress admin user password for WordPress dashboard login." echoW " --wplang [WP_LANGUAGE] " "To set the WordPress language. Default value is "en_US" for English." echoW " --sitetitle [WP_TITLE] " "To set the WordPress site title. Default value is mySite." echoNW " -U, --uninstall " "${EPACE} To uninstall OpenLiteSpeed and remove installation directory." echoNW " -P, --purgeall " "${EPACE} To uninstall OpenLiteSpeed, remove installation directory, and purge all data in MySQL." echoNW " -Q, --quiet " "${EPACE} To use quiet mode, won't prompt to input anything." echoNW " -V, --version " "${EPACE} To display the script version information." echoNW " -v, --verbose " "${EPACE} To display more messages during the installation." echoW " --update " "To update ols1clk from github." echoNW " -H, --help " "${EPACE} To display help messages." echo echo -e "\033[1mEXAMPLES\033[0m" echoW "./ols1clk.sh " "To install OpenLiteSpeed with a random WebAdmin password." echoW "./ols1clk.sh --lsphp 80 " "To install OpenLiteSpeed with lsphp80." echoW "./ols1clk.sh -A 123456 -e [email protected] " "To install OpenLiteSpeed with WebAdmin password "123456" and email [email protected]." echoW "./ols1clk.sh -R 123456 -W " "To install OpenLiteSpeed with WordPress and MySQL root password "123456"." echoW "./ols1clk.sh --wordpressplus a.com " "To install OpenLiteSpeed with a fully configured WordPress installation at "a.com"." echo exit 0 }

function display_license { echoY '********************************************************************************************' echoY '_ Open LiteSpeed One click installation, Version 3.0 ' echoY ' Copyright (C) 2016 - 2021 LiteSpeed Technologies, Inc. ' echoY '********************************************************************************************_' }

function check_os { if [ -f /etc/redhat-release ] ; then OSNAME=centos USER='nobody' GROUP='nobody' case $(cat /etc/centos-release | tr -dc '0-9.'|cut -d . -f1) in 6) OSNAMEVER=CENTOS6 OSVER=6 ;; 7) OSNAMEVER=CENTOS7 OSVER=7 ;; 8) OSNAMEVER=CENTOS8 OSVER=8 ;; esac elif [ -f /etc/lsb-release ] ; then OSNAME=ubuntu USER='nobody' GROUP='nogroup' case $(cat /etc/os-release | grep UBUNTU_CODENAME | cut -d = -f 2) in trusty) OSNAMEVER=UBUNTU14 OSVER=trusty MARIADBCPUARCH="arch=amd64,i386,ppc64el" ;; xenial) OSNAMEVER=UBUNTU16 OSVER=xenial MARIADBCPUARCH="arch=amd64,i386,ppc64el" ;; bionic) OSNAMEVER=UBUNTU18 OSVER=bionic MARIADBCPUARCH="arch=amd64" ;; focal) OSNAMEVER=UBUNTU20 OSVER=focal MARIADBCPUARCH="arch=amd64" ;; esac elif [ -f /etc/debian_version ] ; then OSNAME=debian case $(cat /etc/os-release | grep VERSION_CODENAME | cut -d = -f 2) in wheezy) OSNAMEVER=DEBIAN7 OSVER=wheezy MARIADBCPUARCH="arch=amd64,i386" ;; jessie) OSNAMEVER=DEBIAN8 OSVER=jessie MARIADBCPUARCH="arch=amd64,i386" ;; stretch) OSNAMEVER=DEBIAN9 OSVER=stretch MARIADBCPUARCH="arch=amd64,i386" ;; buster) OSNAMEVER=DEBIAN10 OSVER=buster MARIADBCPUARCH="arch=amd64,i386" ;; bullseye) OSNAMEVER=DEBIAN11 OSVER=bullseye MARIADBCPUARCH="arch=amd64,i386" ;; esac fi if [ "$OSNAMEVER" = '' ] ; then echoR "Sorry, currently one click installation only supports Centos(6-8), Debian(7-10) and Ubuntu(14,16,18,20)." echoR "You can download the source code and build from it." echoR "The url of the source code is https://github.com/litespeedtech/openlitespeed/releases." exit 1 else if [ "$OSNAME" = "centos" ] ; then echoG "Current platform is " "$OSNAME $OSVER." else export DEBIAN_FRONTEND=noninteractive echoG "Current platform is " "$OSNAMEVER $OSNAME $OSVER." fi fi }

function update_centos_hashlib { if [ "$OSNAME" = 'centos' ] ; then silent ${YUM} -y install python-hashlib fi }

function install_ols_centos { local action=install if [ "$1" = "Update" ] ; then action=update elif [ "$1" = "Reinstall" ] ; then action=reinstall fi

local JSON=
if [ "x$LSPHPVER" = "x70" ] || [ "x$LSPHPVER" = "x71" ] || [ "x$LSPHPVER" = "x72" ] || [ "x$LSPHPVER" = "x73" ] || [ "x$LSPHPVER" = "x74" ]; then
    JSON=lsphp$LSPHPVER-json
fi
echoB "${FPACE} - add epel repo"
silent ${YUM} -y $action epel-release
echoB "${FPACE} - add litespeedtech repo"
rpm -Uvh http://rpms.litespeedtech.com/centos/litespeed-repo-1.1-1.el$OSVER.noarch.rpm >/dev/null 2>&1
echoB "${FPACE} - $1 OpenLiteSpeed"
silent ${YUM} -y $action openlitespeed
if [ ! -e $SERVER_ROOT/lsphp$LSPHPVER/bin/lsphp ] ; then
    action=install
fi
echoB "${FPACE} - $1 lsphp$LSPHPVER"
if [ "$action" = "reinstall" ] ; then
    silent ${YUM} -y remove lsphp$LSPHPVER-mysqlnd
fi
silent ${YUM} -y install lsphp$LSPHPVER-mysqlnd
if [ "$LSPHPVER" = "80" ]; then 
    silent ${YUM} -y $action lsphp$LSPHPVER lsphp$LSPHPVER-common lsphp$LSPHPVER-gd lsphp$LSPHPVER-process lsphp$LSPHPVER-mbstring \
    lsphp$LSPHPVER-xml lsphp$LSPHPVER-pdo lsphp$LSPHPVER-imap
else
    silent ${YUM} -y $action lsphp$LSPHPVER lsphp$LSPHPVER-common lsphp$LSPHPVER-gd lsphp$LSPHPVER-process lsphp$LSPHPVER-mbstring \
    lsphp$LSPHPVER-xml lsphp$LSPHPVER-mcrypt lsphp$LSPHPVER-pdo lsphp$LSPHPVER-imap $JSON
fi
echoB "${FPACE} - Setup lsphp symlink"
if [ $? != 0 ] ; then
    echoR "An error occured during OpenLiteSpeed installation."
    ALLERRORS=1
else
    ln -sf $SERVER_ROOT/lsphp$LSPHPVER/bin/lsphp $SERVER_ROOT/fcgi-bin/lsphpnew
    sed -i -e "s/fcgi-bin\/lsphp/fcgi-bin\/lsphpnew/g" "${WEBCF}"
    sed -i -e "s/lsphp${WEBADMIN_LSPHPVER}\/bin\/lsphp/lsphp$LSPHPVER\/bin\/lsphp/g" "${WEBCF}"
fi

}

function uninstall_ols_centos { echoB "${FPACE} - Remove OpenLiteSpeed" silent ${YUM} -y remove openlitespeed if [ $? != 0 ] ; then echoR "An error occured while uninstalling OpenLiteSpeed." ALLERRORS=1 fi rm -rf $SERVER_ROOT/ }

function uninstall_php_centos { ls "${SERVER_ROOT}" | grep lsphp >/dev/null if [ $? = 0 ] ; then local LSPHPSTR="$(ls ${SERVER_ROOT} | grep -i lsphp | tr '\n' ' ')" for LSPHPVER in ${LSPHPSTR}; do echoB "${FPACE} - Detect LSPHP version $LSPHPVER" if [ "$LSPHPVER" = "lsphp80" ]; then silent ${YUM} -y remove lsphp$LSPHPVER lsphp$LSPHPVER-common lsphp$LSPHPVER-gd lsphp$LSPHPVER-process lsphp$LSPHPVER-mbstring lsphp$LSPHPVER-mysqlnd lsphp$LSPHPVER-xml lsphp$LSPHPVER-pdo lsphp$LSPHPVER-imap lsphp* else silent ${YUM} -y remove lsphp$LSPHPVER lsphp$LSPHPVER-common lsphp$LSPHPVER-gd lsphp$LSPHPVER-process lsphp$LSPHPVER-mbstring lsphp$LSPHPVER-mysqlnd lsphp$LSPHPVER-xml lsphp$LSPHPVER-mcrypt lsphp$LSPHPVER-pdo lsphp$LSPHPVER-imap $JSON lsphp* fi if [ $? != 0 ] ; then echoR "An error occured while uninstalling lsphp$LSPHPVER" ALLERRORS=1 fi done else echoB "${FPACE} - Uinstall LSPHP" ${YUM} -y remove lsphp* echoR "Uninstallation cannot get the currently installed LSPHP version." echoY "May not uninstall LSPHP correctly." LSPHPVER= fi }

function install_ols_debian { local action= local INSTALL_STATUS=0 if [ "$1" = "Update" ] ; then action="--only-upgrade" elif [ "$1" = "Reinstall" ] ; then action="--reinstall" fi echoB "${FPACE} - add litespeedtech repo" grep -Fq "http://rpms.litespeedtech.com/debian/" /etc/apt/sources.list.d/lst_debian_repo.list 2>/dev/null if [ $? != 0 ] ; then echo "deb http://rpms.litespeedtech.com/debian/ $OSVER main" > /etc/apt/sources.list.d/lst_debian_repo.list fi wget -qO /etc/apt/trusted.gpg.d/lst_debian_repo.gpg http://rpms.litespeedtech.com/debian/lst_debian_repo.gpg wget -qO /etc/apt/trusted.gpg.d/lst_repo.gpg http://rpms.litespeedtech.com/debian/lst_repo.gpg echoB "${FPACE} - update list" ${APT} -y update echoB "${FPACE} - $1 OpenLiteSpeed" silent ${APT} -y install $action openlitespeed

if [ ${?} != 0 ] ; then
    echoR "An error occured during OpenLiteSpeed installation."
    ALLERRORS=1
    INSTALL_STATUS=1
fi
if [ ! -e $SERVER_ROOT/lsphp$LSPHPVER/bin/lsphp ] ; then
    action=
fi
echoB "${FPACE} - $1 lsphp$LSPHPVER"
silent ${APT} -y install $action lsphp$LSPHPVER lsphp$LSPHPVER-mysql lsphp$LSPHPVER-imap lsphp$LSPHPVER-curl
if [ "$LSPHPVER" = "56" ]; then
    silent ${APT} -y install $action lsphp$LSPHPVER-gd lsphp$LSPHPVER-mcrypt
elif [ "$LSPHPVER" = "80" ]; then
    silent ${APT} -y install $action lsphp$LSPHPVER-common
else
    silent ${APT} -y install $action lsphp$LSPHPVER-common lsphp$LSPHPVER-json
fi
if [ $? != 0 ] ; then
    echoR "An error occured during lsphp$LSPHPVER installation."
    ALLERRORS=1
fi
echoB "${FPACE} - Setup lsphp symlink"
#if [ ${INSTALL_STATUS} = 0 ]; then 
if [ -e $SERVER_ROOT/bin/openlitespeed ]; then 
    ln -sf $SERVER_ROOT/lsphp$LSPHPVER/bin/lsphp $SERVER_ROOT/fcgi-bin/lsphpnew
    sed -i -e "s/fcgi-bin\/lsphp/fcgi-bin\/lsphpnew/g" "${WEBCF}"    
    sed -i -e "s/lsphp${WEBADMIN_LSPHPVER}\/bin\/lsphp/lsphp$LSPHPVER\/bin\/lsphp/g" "${WEBCF}"
fi

}

function uninstall_ols_debian { echoB "${FPACE} - Uninstall OpenLiteSpeed" silent ${APT} -y purge openlitespeed silent ${APT} -y remove openlitespeed ${APT} clean #rm -rf $SERVER_ROOT/ }

function uninstall_php_debian { echoB "${FPACE} - Uninstall LSPHP" silent ${APT} -y --purge remove lsphp* if [ -e /usr/bin/php ] && [ -L /usr/bin/php ]; then rm -f /usr/bin/php fi }

function action_uninstall { if [ "$ACTION" = "UNINSTALL" ] ; then uninstall_warn uninstall uninstall_result exit 0 fi }

function action_purgeall { if [ "$ACTION" = "PURGEALL" ] ; then uninstall_warn if [ "$ROOTPASSWORD" = '' ] ; then passwd= echoY "Please input the MySQL root password: " read passwd ROOTPASSWORD=$passwd fi uninstall purgedatabase uninstall_result exit 0 fi }

function download_wordpress { echoG 'Start Download WordPress file' if [ ! -e "$WORDPRESSPATH" ] ; then local WPDIRNAME=$(dirname $WORDPRESSPATH) local WPBASENAME=$(basename $WORDPRESSPATH) mkdir -p "$WORDPRESSPATH"; cd "$WORDPRESSPATH" else echoG "$WORDPRESSPATH exists, will use it." fi if [ "${WORDPRESSINSTALLED}" = '0' ];then wp core download --locale=$WPLANGUAGE --path=$WORDPRESSPATH --allow-root --quiet fi echoG 'End Download WordPress file' } function create_wordpress_cf { echoG 'Start Create Wordpress config' cd "$WORDPRESSPATH" wp config create --dbname=$DATABASENAME --dbuser=$USERNAME --dbpass=$USERPASSWORD --locale=ro_RO --allow-root --quiet echoG 'Done Create Wordpress config' }

function install_wordpress_core { echoG 'Start Setting Core Wordpress' cd "$WORDPRESSPATH" wp core install --url=$SITEDOMAIN --title=$WPTITLE --admin_user=$WPUSER --admin_password=$WPPASSWORD --admin_email=$EMAIL --skip-email --allow-root echoG 'Install wordpress Cache plugin' wp plugin install litespeed-cache --allow-root --activate --quiet echoG 'End Setting Core Wordpress' }

function random_password { if [ ! -z ${1} ]; then TEMPPASSWORD="${1}" else TEMPPASSWORD=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 16 ; echo '') fi }

function main_gen_password { random_password "${ADMINPASSWORD}" ADMINPASSWORD="${TEMPPASSWORD}" random_password "${ROOTPASSWORD}" ROOTPASSWORD="${TEMPPASSWORD}" random_password "${USERPASSWORD}" USERPASSWORD="${TEMPPASSWORD}" random_password "${WPPASSWORD}" WPPASSWORD="${TEMPPASSWORD}" read_password "$ADMINPASSWORD" "webAdmin password" ADMINPASSWORD=$TEMPPASSWORD

if [ "$INSTALLWORDPRESS" = "1" ] ; then
    read_password "$ROOTPASSWORD" "MySQL root password"
    ROOTPASSWORD=$TEMPPASSWORD
    read_password "$USERPASSWORD" "MySQL user password"
    USERPASSWORD=$TEMPPASSWORD
fi

if [ "$INSTALLWORDPRESSPLUS" = "1" ] ; then
    read_password "$WPPASSWORD" "WordPress admin password"
    WPPASSWORD=$TEMPPASSWORD
fi    

}

function main_set_password { echo "WebAdmin username is [admin], password is [$ADMINPASSWORD]." > $SERVER_ROOT/password set_ols_password }

function test_mysql_password { CURROOTPASSWORD=$ROOTPASSWORD TESTPASSWORDERROR=0

mysqladmin -uroot -p$CURROOTPASSWORD password $CURROOTPASSWORD
if [ $? != 0 ] ; then
    #Sometimes, mysql will treat the password error and restart will fix it.
    service mysql restart
    if [ $? != 0 ] && [ "$OSNAME" = "centos" ] ; then
        service mysqld restart
    fi

    mysqladmin -uroot -p$CURROOTPASSWORD password $CURROOTPASSWORD
    if [ $? != 0 ] ; then
        printf '\033[31mPlease input the current root password:\033[0m'
        read answer
        mysqladmin -uroot -p$answer password $answer
        if [ $? = 0 ] ; then
            CURROOTPASSWORD=$answer
        else
            echoR "root password is incorrect. 2 attempts remaining."
            printf '\033[31mPlease input the current root password:\033[0m'
            read answer
            mysqladmin -uroot -p$answer password $answer
            if [ $? = 0 ] ; then
                CURROOTPASSWORD=$answer
            else
                echoR "root password is incorrect. 1 attempt remaining."
                printf '\033[31mPlease input the current root password:\033[0m'
                read answer
                mysqladmin -uroot -p$answer password $answer
                if [ $? = 0 ] ; then
                    CURROOTPASSWORD=$answer
                else
                    echoR "root password is incorrect. 0 attempts remaining."
                    echo
                    TESTPASSWORDERROR=1
                fi
            fi
        fi
    fi
fi

export TESTPASSWORDERROR=$TESTPASSWORDERROR
if [ "x$TESTPASSWORDERROR" = "x1" ] ; then
    export CURROOTPASSWORD=
else
    export CURROOTPASSWORD=$CURROOTPASSWORD
fi

}

function centos_install_mysql { echoB "${FPACE} - Add MariaDB repo" local REPOFILE=/etc/yum.repos.d/MariaDB.repo if [ ! -f $REPOFILE ] ; then local CENTOSVER= if [ "$OSTYPE" != "x86_64" ] ; then CENTOSVER=centos$OSVER-x86 else CENTOSVER=centos$OSVER-amd64 fi if [ "$OSNAMEVER" = "CENTOS8" ] ; then rpm --quiet --import https://downloads.mariadb.com/MariaDB/MariaDB-Server-GPG-KEY cat >> $REPOFILE <<END [mariadb] name = MariaDB baseurl = https://downloads.mariadb.com/MariaDB/mariadb-$MARIADBVER/yum/rhel/$releasever/$basearch gpgkey = file:///etc/pki/rpm-gpg/MariaDB-Server-GPG-KEY gpgcheck=1 enabled = 1 module_hotfixes = 1 END else cat >> $REPOFILE <<END [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/$MARIADBVER/$CENTOSVER gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1

END fi fi echoB "${FPACE} - Install MariaDB" if [ "$OSNAMEVER" = "CENTOS8" ] ; then silent ${YUM} install -y boost-program-options silent ${YUM} --disablerepo=AppStream install -y MariaDB-server MariaDB-client else silent ${YUM} -y install MariaDB-server MariaDB-client fi if [ $? != 0 ] ; then echoR "An error occured during installation of MariaDB. Please fix this error and try again." echoR "You may want to manually run the command '${YUM} -y install MariaDB-server MariaDB-client' to check. Aborting installation!" exit 1 fi echoB "${FPACE} - Start MariaDB" if [ "$OSNAMEVER" = "CENTOS8" ] || [ "$OSNAMEVER" = "CENTOS7" ] ; then silent systemctl enable mariadb silent systemctl start mariadb else service mysql start fi }

function debian_install_mysql { echoB "${FPACE} - Install software properties" if [ "$OSNAMEVER" = "DEBIAN7" ] ; then silent ${APT} -y -f install python-software-properties silent apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db elif [ "$OSNAMEVER" = "DEBIAN8" ] ; then silent ${APT} -y -f install software-properties-common silent apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db elif [ "$OSNAMEVER" = "DEBIAN9" ] ; then silent ${APT} -y -f install software-properties-common gnupg silent apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8 elif [ "$OSNAMEVER" = "DEBIAN10" ] ; then silent ${APT} -y -f install software-properties-common gnupg silent apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8 elif [ "$OSNAMEVER" = "DEBIAN11" ] ; then silent ${APT} -y -f install software-properties-common gnupg silent apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8 elif [ "$OSNAMEVER" = "UBUNTU14" ] ; then silent ${APT} -y -f install software-properties-common silent apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db elif [ "$OSNAMEVER" = "UBUNTU16" ] ; then silent ${APT} -y -f install software-properties-common silent apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 elif [ "$OSNAMEVER" = "UBUNTU18" ] ; then silent ${APT} -y -f install software-properties-common silent apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 elif [ "$OSNAMEVER" = "UBUNTU20" ] ; then silent ${APT} -y -f install software-properties-common silent apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 fi echoB "${FPACE} - Add MariaDB repo" if [ -e /etc/apt/sources.list.d/mariadb_repo.list ]; then grep -Fq "http://mirror.jaleco.com/mariadb/repo/" /etc/apt/sources.list.d/mariadb_repo.list >/dev/null 2>&1 if [ $? != 0 ] ; then echo "deb [$MARIADBCPUARCH] http://mirror.jaleco.com/mariadb/repo/$MARIADBVER/$OSNAME $OSVER main" > /etc/apt/sources.list.d/mariadb_repo.list fi else echo "deb [$MARIADBCPUARCH] http://mirror.jaleco.com/mariadb/repo/$MARIADBVER/$OSNAME $OSVER main" &gt; /etc/apt/sources.list.d/mariadb_repo.list fi echoB "${FPACE} - Update packages" ${APT} update echoB "${FPACE} - Install MariaDB" silent ${APT} -y -f install mariadb-server if [ $? != 0 ] ; then echoR "An error occured during installation of MariaDB. Please fix this error and try again." echoR "You may want to manually run the command 'apt-get -y -f --allow-unauthenticated install mariadb-server' to check. Aborting installation!" exit 1 fi echoB "${FPACE} - Start MariaDB" service mysql start }

function install_mysql { echoG "Start Install MariaDB" if [ "$OSNAME" = 'centos' ] ; then centos_install_mysql else debian_install_mysql fi if [ $? != 0 ] ; then echoR "An error occured when starting the MariaDB service. " echoR "Please fix this error and try again. Aborting installation!" exit 1 fi

echoB "${FPACE} - Set MariaDB root"
mysql -uroot -e "flush privileges;"
mysqladmin -uroot password $ROOTPASSWORD
if [ $? = 0 ] ; then
    CURROOTPASSWORD=$ROOTPASSWORD
else
    #test it is the current password
    mysqladmin -uroot -p$ROOTPASSWORD password $ROOTPASSWORD
    if [ $? = 0 ] ; then
        #echoG "MySQL root password is $ROOTPASSWORD"
        CURROOTPASSWORD=$ROOTPASSWORD
    else
        echoR "Failed to set MySQL root password to $ROOTPASSWORD, it may already have a root password."
        printf '\033[31mInstallation must know the password for the next step.\033[0m'
        test_mysql_password

        if [ "$TESTPASSWORDERROR" = "1" ] ; then
            echoY "If you forget your password you may stop the mysqld service and run the following command to reset it,"
            echoY "mysqld_safe --skip-grant-tables &"
            echoY "mysql --user=root mysql"
            echoY "update user set Password=PASSWORD('new-password') where user='root'; flush privileges; exit; "
            echoR "Aborting installation."
            echo
            exit 1
        fi

        if [ "$CURROOTPASSWORD" != "$ROOTPASSWORD" ] ; then
            echoY "Current MySQL root password is $CURROOTPASSWORD, it will be changed to $ROOTPASSWORD."
            printf '\033[31mDo you still want to change it?[y/N]\033[0m '
            read answer
            echo

            if [ "$answer" != "Y" ] && [ "$answer" != "y" ] ; then
                echoG "OK, MySQL root password not changed."
                ROOTPASSWORD=$CURROOTPASSWORD
            else
                mysqladmin -uroot -p$CURROOTPASSWORD password $ROOTPASSWORD
                if [ $? = 0 ] ; then
                    echoG "OK, MySQL root password changed to $ROOTPASSWORD."
                else
                    echoR "Failed to change MySQL root password, it is still $CURROOTPASSWORD."
                    ROOTPASSWORD=$CURROOTPASSWORD
                fi
            fi
        fi
    fi
fi
echoG "End Install MariaDB"

}

function setup_mysql { echoG "Start setup mysql" local ERROR= #delete user if exists mysql -uroot -p$ROOTPASSWORD -e "DELETE FROM mysql.user WHERE User = '$USERNAME@localhost';"

echo `mysql -uroot -p$ROOTPASSWORD -e "SELECT user FROM mysql.user"` | grep "$USERNAME" >/dev/null
if [ $? = 0 ] ; then
    echoG "user $USERNAME exists in mysql.user"
else
    mysql -uroot -p$ROOTPASSWORD  -e "CREATE USER $USERNAME@localhost IDENTIFIED BY '$USERPASSWORD';"
    if [ $? = 0 ] ; then
        mysql -uroot -p$ROOTPASSWORD  -e "GRANT ALL PRIVILEGES ON *.* TO '$USERNAME'@localhost IDENTIFIED BY '$USERPASSWORD';"
    else
        echoR "Failed to create MySQL user $USERNAME. This user may already exist. If it does not, another problem occured."
        echoR "Please check this and update the wp-config.php file."
        ERROR="Create user error"
    fi
fi

mysql -uroot -p$ROOTPASSWORD  -e "CREATE DATABASE IF NOT EXISTS $DATABASENAME;"
if [ $? = 0 ] ; then
    mysql -uroot -p$ROOTPASSWORD  -e "GRANT ALL PRIVILEGES ON $DATABASENAME.* TO '$USERNAME'@localhost IDENTIFIED BY '$USERPASSWORD';"
else
    echoR "Failed to create database $DATABASENAME. It may already exist. If it does not, another problem occured."
    echoR "Please check this and update the wp-config.php file."
    if [ "x$ERROR" = "x" ] ; then
        ERROR="Create database error"
    else
        ERROR="$ERROR and create database error"
    fi
fi
mysql -uroot -p$ROOTPASSWORD  -e "flush privileges;"

if [ "x$ERROR" = "x" ] ; then
    echoG "Finished MySQL setup without error."
else
    echoR "Finished MySQL setup - some error(s) occured."
fi
echoG "End setup mysql"

}

function resetmysqlroot { if [ "x$OSNAMEVER" = "xCENTOS8" ]; then MYSQLNAME='mariadb' else MYSQLNAME=mysql fi service $MYSQLNAME stop if [ $? != 0 ] && [ "x$OSNAME" = "xcentos" ] ; then service $MYSQLNAME stop fi

DEFAULTPASSWD=$1

echo "update user set Password=PASSWORD('$DEFAULTPASSWD') where user='root'; flush privileges; exit; " > /tmp/resetmysqlroot.sql
mysqld_safe --skip-grant-tables &
#mysql --user=root mysql < /tmp/resetmysqlroot.sql
mysql --user=root mysql -e "update user set Password=PASSWORD('$DEFAULTPASSWD') where user='root'; flush privileges; exit; "
sleep 1
service $MYSQLNAME restart

}

function purgedatabase { if [ "$MYSQLINSTALLED" != "1" ] ; then echoY "MySQL-server not installed." else local ERROR=0 test_mysql_password

    if [ "$TESTPASSWORDERROR" = "1" ] ; then
        echoR "Failed to purge database."
        echo
        ERROR=1
        ALLERRORS=1
    else
        ROOTPASSWORD=$CURROOTPASSWORD
    fi

    if [ "$ERROR" = "0" ] ; then
        mysql -uroot -p$ROOTPASSWORD  -e "DELETE FROM mysql.user WHERE User = '$USERNAME@localhost';"
        mysql -uroot -p$ROOTPASSWORD  -e "DROP DATABASE IF EXISTS $DATABASENAME;"
        echoY "Database purged."
    fi
fi

}

function pure_mariadb { if [ "$MYSQLINSTALLED" = "0" ] ; then install_mysql ROOTPASSWORD=$CURROOTPASSWORD setup_mysql else echoG 'MariaDB already exist, skip!' fi }

function uninstall_result { if [ "$ALLERRORS" != "0" ] ; then echoY "Some error(s) occured. Please check these as you may need to manually fix them." fi echoCYAN 'End OpenLiteSpeed one click Uninstallation << << << << << << <<' }

function install_openlitespeed { echoG "Start setup OpenLiteSpeed" local STATUS=Install if [ "$OLSINSTALLED" = "1" ] ; then OLS_VERSION=$(cat "$SERVER_ROOT"/VERSION) wget -qO "$SERVER_ROOT"/release.tmp http://open.litespeedtech.com/packages/release?ver=$OLS_VERSION LATEST_VERSION=$(cat "$SERVER_ROOT"/release.tmp) rm "$SERVER_ROOT"/release.tmp if [ "$OLS_VERSION" = "$LATEST_VERSION" ] ; then STATUS=Reinstall echoY "OpenLiteSpeed is already installed with the latest version, will attempt to reinstall it." else STATUS=Update echoY "OpenLiteSpeed is already installed and newer version is available, will attempt to update it." fi fi

if [ "$OSNAME" = "centos" ] ; then
    install_ols_centos $STATUS
else
    install_ols_debian $STATUS
fi
silent killall -9 lsphp
echoG "End setup OpenLiteSpeed"

}

function gen_selfsigned_cert { if [ -e $CONFFILE ] ; then source $CONFFILE 2&gt;/dev/null if [ $? != 0 ]; then . $CONFFILE fi fi

SSL_COUNTRY="${SSL_COUNTRY:-US}"
SSL_STATE="${SSL_STATE:-New Jersey}"
SSL_LOCALITY="${SSL_LOCALITY:-Virtual}"
SSL_ORG="${SSL_ORG:-LiteSpeedCommunity}"
SSL_ORGUNIT="${SSL_ORGUNIT:-Testing}"
SSL_HOSTNAME="${SSL_HOSTNAME:-webadmin}"
SSL_EMAIL="${SSL_EMAIL:-.}"
COMMNAME=$(hostname)

cat << EOF > $CSR

[req] prompt=no distinguished_name=openlitespeed [openlitespeed] commonName = ${COMMNAME} countryName = ${SSL_COUNTRY} localityName = ${SSL_LOCALITY} organizationName = ${SSL_ORG} organizationalUnitName = ${SSL_ORGUNIT} stateOrProvinceName = ${SSL_STATE} emailAddress = ${SSL_EMAIL} name = openlitespeed initials = CP dnQualifier = openlitespeed [server_exts] extendedKeyUsage=1.3.6.1.5.5.7.3.1 EOF openssl req -x509 -config $CSR -extensions 'server_exts' -nodes -days 820 -newkey rsa:2048 -keyout ${KEY} -out ${CERT} >/dev/null 2>&1 rm -f $CSR

mv ${KEY}   $SERVER_ROOT/conf/$KEY
mv ${CERT}  $SERVER_ROOT/conf/$CERT
chmod 0600 $SERVER_ROOT/conf/$KEY
chmod 0600 $SERVER_ROOT/conf/$CERT

}

function set_ols_password { ENCRYPT_PASS="$SERVER_ROOT/admin/fcgi-bin/admin_php" -q "$SERVER_ROOT/admin/misc/htpasswd.php" $ADMINPASSWORD if [ $? = 0 ] ; then echo "admin:$ENCRYPT_PASS" > "$SERVER_ROOT/admin/conf/htpasswd" if [ $? = 0 ] ; then echoG "Set OpenLiteSpeed Web Admin access." else echoG "OpenLiteSpeed WebAdmin password not changed." fi fi }

function config_server { if [ "$INSTALLWORDPRESS" != "1" ]; then if [ -e "${WEBCF}" ] ; then sed -i -e "s/adminEmails/adminEmails $EMAIL\n#adminEmails/" "${WEBCF}" sed -i -e "s/8088/$WPPORT/" "${WEBCF}" sed -i -e "s/ls_enabled/ls_enabled 1\n#/" "${WEBCF}"

        cat >> ${WEBCF} <<END

listener Defaultssl { address *:$SSLWPPORT secure 1 map Example * keyFile $SERVER_ROOT/conf/$KEY certFile $SERVER_ROOT/conf/$CERT }

END chown -R lsadm:lsadm $SERVER_ROOT/conf/ else echoR "${WEBCF} is missing. It appears that something went wrong during OpenLiteSpeed installation." ALLERRORS=1 fi echo ols1clk > "$SERVER_ROOT/PLAT" fi }

function config_vh_wp { echoG 'Start setup virtual host config' if [ -e "${WEBCF}" ] ; then cat ${WEBCF} | grep "virtualhost wordpress" &gt;/dev/null if [ $? != 0 ] ; then sed -i -e "s/adminEmails/adminEmails $EMAIL\n#adminEmails/" "${WEBCF}" sed -i -e "s/ls_enabled/ls_enabled 1\n#/" "${WEBCF}"

        VHOSTCONF=$SERVER_ROOT/conf/vhosts/wordpress/vhconf.conf
        echoB "${FPACE} - Check existing port"
        grep "address.*:${WPPORT}$\|${SSLWPPORT}$"  ${WEBCF} >/dev/null 2>&1
        if [ ${?} = 0 ]; then
            echoY "Detect port ${WPPORT} || ${SSLWPPORT}, will skip domain setup!"
        else   
            echoB "${FPACE} - Create wordpress listener"  
            cat >> ${WEBCF} <<END

listener wordpress { address *:$WPPORT secure 0 map wordpress $SITEDOMAIN }

listener wordpressssl { address *:$SSLWPPORT secure 1 map wordpress $SITEDOMAIN keyFile $SERVER_ROOT/conf/$KEY certFile $SERVER_ROOT/conf/$CERT }

END fi echoB "${FPACE} - Insert wordpress virtual host" cat >> ${WEBCF} <<END

virtualhost wordpress { vhRoot $WORDPRESSPATH configFile $VHOSTCONF allowSymbolLink 1 enableScript 1 restrained 0 setUIDMode 2 } END echoB "${FPACE} - Create wordpress virtual host conf" mkdir -p $SERVER_ROOT/conf/vhosts/wordpress/ cat > $VHOSTCONF <<END docRoot $VH_ROOT/ index { useServer 0 indexFiles index.php }

context / { location $VH_ROOT allowBrowse 1 indexFiles index.php

rewrite { enable 1 inherit 1 rewriteFile $WORDPRESSPATH/.htaccess } }

rewrite { enable 1 autoLoadHtaccess 1 }

END chown -R lsadm:lsadm $SERVER_ROOT/conf/ else echoY "${FPACE} - Detect wordpress exist, will skip virtual host conf setup!" fi else echoR "${WEBCF} is missing. It appears that something went wrong during OpenLiteSpeed installation." ALLERRORS=1 fi echo ols1clk > "$SERVER_ROOT/PLAT" echoG 'End setup virtual host config' }

function activate_cache { cat > $WORDPRESSPATH/activate_cache.php <<END

/dev/null 2>&1 if [ $? = 0 ] ; then MYSQLINSTALLED=1 else MYSQLINSTALLED=0 fi } function changeOlsPassword { LSWS_HOME=$SERVER_ROOT ENCRYPT_PASS="$LSWS_HOME/admin/fcgi-bin/admin_php" -q "$LSWS_HOME/admin/misc/htpasswd.php" $ADMINPASSWORD echo "$ADMIN_USER:$ENCRYPT_PASS" > "$LSWS_HOME/admin/conf/htpasswd" echoY "Finished setting OpenLiteSpeed WebAdmin password to $ADMINPASSWORD." } function uninstall { if [ "$OLSINSTALLED" = "1" ] ; then echoB "${FPACE} - Stop OpenLiteSpeed" silent $SERVER_ROOT/bin/lswsctrl stop echoB "${FPACE} - Stop LSPHP" silent killall -9 lsphp if [ "$OSNAME" = "centos" ] ; then uninstall_php_centos uninstall_ols_centos else uninstall_php_debian uninstall_ols_debian fi echoG Uninstalled. else echoY "OpenLiteSpeed not installed." fi } function read_password { if [ "$1" != "" ] ; then TEMPPASSWORD=$1 else passwd= echoY "Please input password for $2(press enter to get a random one):" read passwd if [ "$passwd" = "" ] ; then TEMPPASSWORD=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 16 ; echo '') else TEMPPASSWORD=$passwd fi fi } function check_php_param { if [ "$OSNAMEVER" = "UBUNTU20" ] || [ "$OSNAMEVER" = "UBUNTU18" ] || [ "$OSNAMEVER" = "DEBIAN9" ] || [ "$OSNAMEVER" = "DEBIAN10" ] || [ "$OSNAMEVER" = "DEBIAN11" ]; then if [ "$LSPHPVER" = "56" ]; then echoY "We do not support lsphp$LSPHPVER on $OSNAMEVER, lsphp73 will be used instead." LSPHPVER=80 fi fi } function check_value_follow { FOLLOWPARAM=$1 local PARAM=$1 local KEYWORD=$2 if [ "$1" = "-n" ] || [ "$1" = "-e" ] || [ "$1" = "-E" ] ; then FOLLOWPARAM= else local PARAMCHAR=$(echo $1 | awk '{print substr($0,1,1)}') if [ "$PARAMCHAR" = "-" ] ; then FOLLOWPARAM= fi fi if [ -z "$FOLLOWPARAM" ] ; then if [ ! -z "$KEYWORD" ] ; then echoR "Error: '$PARAM' is not a valid '$KEYWORD', please check and try again." usage fi fi } function fixLangTypo { WP_LOCALE="af ak sq am ar hy rup_MK as az az_TR ba eu bel bn_BD bs_BA bg_BG my_MM ca bal zh_CN \ zh_HK zh_TW co hr cs_CZ da_DK dv nl_NL nl_BE en_US en_AU en_CA en_GB eo et fo fi fr_BE fr_FR \ fy fuc gl_ES ka_GE de_DE de_CH el gn gu_IN haw_US haz he_IL hi_IN hu_HU is_IS ido id_ID ga it_IT \ ja jv_ID kn kk km kin ky_KY ko_KR ckb lo lv li lin lt_LT lb_LU mk_MK mg_MG ms_MY ml_IN mr xmf mn \ me_ME ne_NP nb_NO nn_NO ory os ps fa_IR fa_AF pl_PL pt_BR pt_PT pa_IN rhg ro_RO ru_RU ru_UA rue \ sah sa_IN srd gd sr_RS sd_PK si_LK sk_SK sl_SI so_SO azb es_AR es_CL es_CO es_MX es_PE es_PR es_ES \ es_VE su_ID sw sv_SE gsw tl tg tzm ta_IN ta_LK tt_RU te th bo tir tr_TR tuk ug_CN uk ur uz_UZ vi \ wa cy yor" LANGSTR=$(echo "$WPLANGUAGE" | awk '{print tolower($0)}') if [ "$LANGSTR" = "zh_cn" ] || [ "$LANGSTR" = "zh-cn" ] || [ "$LANGSTR" = "cn" ] ; then WPLANGUAGE=zh_CN fi if [ "$LANGSTR" = "zh_tw" ] || [ "$LANGSTR" = "zh-tw" ] || [ "$LANGSTR" = "tw" ] ; then WPLANGUAGE=zh_TW fi echo ${WP_LOCALE} | grep -w "${WPLANGUAGE}" -q if [ ${?} != 0 ]; then echoR "${WPLANGUAGE} language not found." echo "Please check $WP_LOCALE" exit 1 fi } function updatemyself { local CURMD=$(md5sum "$0" | cut -d' ' -f1) local SERVERMD=$(md5sum <(wget $MYGITHUBURL -O- 2>/dev/null) | cut -d' ' -f1) if [ "$CURMD" = "$SERVERMD" ] ; then echoG "You already have the latest version installed." else wget -O "$0" $MYGITHUBURL CURMD=$(md5sum "$0" | cut -d' ' -f1) if [ "$CURMD" = "$SERVERMD" ] ; then echoG "Updated." else echoG "Tried to update but seems to be failed." fi fi exit 0 } function uninstall_warn { if [ "$FORCEYES" != "1" ] ; then echo printf "\033[31mAre you sure you want to uninstall? Type 'Y' to continue, otherwise will quit.[y/N]\033[0m " read answer echo if [ "$answer" != "Y" ] && [ "$answer" != "y" ] ; then echoG "Uninstallation aborted!" exit 0 fi echo fi echoCYAN 'Start OpenLiteSpeed one click Uninstallation >> >> >> >> >> >> >>' } function befor_install_display { echo echoCYAN "Starting to install OpenLiteSpeed to $SERVER_ROOT/ with the parameters below," echoY "WebAdmin password: " "$ADMINPASSWORD" echoY "WebAdmin email: " "$EMAIL" echoY "LSPHP version: " "$LSPHPVER" echoY "MariaDB version: " "$MARIADBVER" if [ "$INSTALLWORDPRESS" = "1" ] ; then echoY "Install WordPress: " Yes echoY "WordPress HTTP port: " "$WPPORT" echoY "WordPress HTTPS port: " "$SSLWPPORT" echoY "WordPress language: " "$WPLANGUAGE" echoY "Web site domain: " "$SITEDOMAIN" echoY "MySQL root Password: " "$ROOTPASSWORD" echoY "Database name: " "$DATABASENAME" echoY "Database username: " "$USERNAME" echoY "Database password: " "$USERPASSWORD" if [ "$INSTALLWORDPRESSPLUS" = "1" ] ; then echoY "WordPress plus: " Yes echoY "WordPress site title: " "$WPTITLE" echoY "WordPress username: " "$WPUSER" echoY "WordPress password: " "$WPPASSWORD" else echoY "WordPress plus: " No fi if [ -e "$WORDPRESSPATH/wp-config.php" ] ; then echoY "WordPress location: " "$WORDPRESSPATH (Exsiting)" WORDPRESSINSTALLED=1 else echoY "WordPress location: " "$WORDPRESSPATH (New install)" WORDPRESSINSTALLED=0 fi else echoY "Server HTTP port: " "$WPPORT" echoY "Server HTTPS port: " "$SSLWPPORT" fi echoNW "Your password will be written to file: $SERVER_ROOT/password" echo if [ "$FORCEYES" != "1" ] ; then printf 'Are these settings correct? Type n to quit, otherwise will continue. [Y/n]' read answer if [ "$answer" = "N" ] || [ "$answer" = "n" ] ; then echoG "Aborting installation!" exit 0 fi fi echoCYAN 'Start OpenLiteSpeed one click installation >> >> >> >> >> >> >>' } function install_wp_cli { if [ -e /usr/local/bin/wp ] || [ -e /usr/bin/wp ]; then echoG 'WP CLI already exist' else echoG "Install wp_cli" curl -sO https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar chmod +x wp-cli.phar echo $PATH | grep '/usr/local/bin' &gt;/dev/null 2&gt;&amp;1 if [ ${?} = 0 ]; then mv wp-cli.phar /usr/local/bin/wp else mv wp-cli.phar /usr/bin/wp fi fi if [ ! -e /usr/bin/php ] && [ ! -L /usr/bin/php ]; then ln -s ${SERVER_ROOT}/lsphp${LSPHPVER}/bin/php /usr/bin/php elif [ ! -e /usr/bin/php ]; then rm -f /usr/bin/php ln -s ${SERVER_ROOT}/lsphp${LSPHPVER}/bin/php /usr/bin/php else echoG '/usr/bin/php symlink exist, skip symlink.' fi } function main_install_wordpress { if [ "${PURE_DB}" = '1' ]; then echoG 'Install MariaDB only' pure_mariadb else if [ "$WORDPRESSINSTALLED" = '1' ] ; then echoY 'Skip WordPress installation!' else if [ "$INSTALLWORDPRESS" = "1" ] ; then install_wp_cli config_vh_wp check_port_usage if [ "$MYSQLINSTALLED" != "1" ] ; then install_mysql else test_mysql_password fi if [ "$TESTPASSWORDERROR" = "1" ] ; then echoY "MySQL setup bypassed, can not get root password." else ROOTPASSWORD=$CURROOTPASSWORD setup_mysql fi download_wordpress create_wordpress_cf if [ "$INSTALLWORDPRESSPLUS" = "1" ] ; then install_wordpress_core echo "WordPress administrator username is [$WPUSER], password is [$WPPASSWORD]." >> $SERVER_ROOT/password fi change_owner ${WORDPRESSPATH} echo "mysql WordPress DataBase name is [$DATABASENAME], username is [$USERNAME], password is [$USERPASSWORD]." >> $SERVER_ROOT/password echo "mysql root password is [$ROOTPASSWORD]." >> $SERVER_ROOT/password fi fi fi } function check_port_usage { if [ "$WPPORT" = "80" ] || [ "$SSLWPPORT" = "443" ]; then echoG "Avoid port 80/443 conflict." killall -9 apache >/dev/null 2>&1 killall -9 apache2 >/dev/null 2>&1 killall -9 httpd >/dev/null 2>&1 killall -9 nginx >/dev/null 2>&1 fi } function after_install_display { chmod 600 "$SERVER_ROOT/password" if [ "$ALLERRORS" = "0" ] ; then echoG "Congratulations! Installation finished." else echoY "Installation finished. Some errors seem to have occured, please check this as you may need to manually fix them." fi if [ "$INSTALLWORDPRESSPLUS" = "0" ] && [ "$INSTALLWORDPRESS" = "1" ] && [ "${PURE_DB}" = '0' ]; then echo "Please access http://server_IP:$WPPORT/ to finish setting up your WordPress site." echo "And also you may want to activate the LiteSpeed Cache plugin to get better performance." fi echoCYAN 'End OpenLiteSpeed one click installation << << << << << << <<' echo } function test_page { local URL=$1 local KEYWORD=$2 local PAGENAME=$3 curl -skL $URL | grep -i "$KEYWORD" >/dev/null 2>&1 if [ $? != 0 ] ; then echoR "Error: $PAGENAME failed." TESTGETERROR=yes else echoG "OK: $PAGENAME passed." fi } function test_ols_admin { test_page https://localhost:7080/ "LiteSpeed WebAdmin" "test webAdmin page" } function test_ols { test_page http://localhost:$WPPORT/ Congratulation "test Example HTTP vhost page" test_page https://localhost:$SSLWPPORT/ Congratulation "test Example HTTPS vhost page" } function test_wordpress { test_page http://localhost:8088/ Congratulation "test Example vhost page" test_page http://localhost:$WPPORT/ "WordPress" "test wordpress HTTP first page" test_page https://localhost:$SSLWPPORT/ "WordPress" "test wordpress HTTPS first page" } function test_wordpress_plus { test_page http://localhost:8088/ Congratulation "test Example vhost page" test_page http://$SITEDOMAIN:$WPPORT/ WordPress "test wordpress HTTP first page" test_page https://$SITEDOMAIN:$SSLWPPORT/ WordPress "test wordpress HTTPS first page" } function main_ols_test { echoCYAN "Start auto testing >> >> >> >>" test_ols_admin if [ "${PURE_DB}" = '1' ]; then test_ols elif [ "$INSTALLWORDPRESS" = "1" ] ; then if [ "$INSTALLWORDPRESSPLUS" = "1" ] ; then test_wordpress_plus else test_wordpress fi else test_ols fi if [ "${TESTGETERROR}" = "yes" ] ; then echoG "Errors were encountered during testing. In many cases these errors can be solved manually by referring to installation logs." echoG "Service loading issues can sometimes be resolved by performing a restart of the web server." echoG "Reinstalling the web server can also help if neither of the above approaches resolve the issue." fi echoCYAN "End auto testing << << << <<" echoG 'Thanks for using OpenLiteSpeed One click installation!' echo } function main_init_check { check_root check_os check_cur_status check_php_param } function main_init_package { update_centos_hashlib update_system check_wget check_curl } function main { display_license main_init_check action_uninstall action_purgeall update_email main_gen_password befor_install_display main_init_package install_openlitespeed main_set_password gen_selfsigned_cert main_install_wordpress config_server restart_lsws after_install_display main_ols_test } while [ ! -z "${1}" ] ; do case "${1}" in -[aA] | --adminpassword ) check_value_follow "$2" "" if [ ! -z "$FOLLOWPARAM" ] ; then shift; fi ADMINPASSWORD=$FOLLOWPARAM ;; -[eE] | --email ) check_value_follow "$2" "email address" shift EMAIL=$FOLLOWPARAM ;; --lsphp ) check_value_follow "$2" "LSPHP version" shift cnt=${#LSPHPVERLIST[@]} for (( i = 0 ; i < cnt ; i++ )); do if [ "$1" = "${LSPHPVERLIST[$i]}" ] ; then LSPHPVER=$1; fi done ;; --mariadbver ) check_value_follow "$2" "MariaDB version" shift cnt=${#MARIADBVERLIST[@]} for (( i = 0 ; i < cnt ; i++ )); do if [ "$1" = "${MARIADBVERLIST[$i]}" ] ; then MARIADBVER=$1; fi done ;; --pure-mariadb ) PURE_DB=1 ;; -[wW] | --wordpress ) INSTALLWORDPRESS=1 ;; --wordpressplus ) check_value_follow "$2" "domain" shift SITEDOMAIN=$FOLLOWPARAM INSTALLWORDPRESS=1 INSTALLWORDPRESSPLUS=1 ;; --wordpresspath ) check_value_follow "$2" "WordPress path" shift WORDPRESSPATH=$FOLLOWPARAM INSTALLWORDPRESS=1 ;; -[rR] | --dbrootpassword ) check_value_follow "$2" "" if [ ! -z "$FOLLOWPARAM" ] ; then shift; fi ROOTPASSWORD=$FOLLOWPARAM ;; --dbname ) check_value_follow "$2" "database name" shift DATABASENAME=$FOLLOWPARAM ;; --dbuser ) check_value_follow "$2" "database username" shift USERNAME=$FOLLOWPARAM ;; --dbpassword ) check_value_follow "$2" "" if [ ! -z "$FOLLOWPARAM" ] ; then shift; fi USERPASSWORD=$FOLLOWPARAM ;; --listenport ) check_value_follow "$2" "HTTP listen port" shift WPPORT=$FOLLOWPARAM ;; --ssllistenport ) check_value_follow "$2" "HTTPS listen port" shift SSLWPPORT=$FOLLOWPARAM ;; --wpuser ) check_value_follow "$2" "WordPress user" shift WPUSER=$1 ;; --wppassword ) check_value_follow "$2" "" if [ ! -z "$FOLLOWPARAM" ] ; then shift; fi WPPASSWORD=$FOLLOWPARAM ;; --wplang ) check_value_follow "$2" "WordPress language" shift WPLANGUAGE=$FOLLOWPARAM fixLangTypo ;; --sitetitle ) check_value_follow "$2" "WordPress website title" shift WPTITLE=$FOLLOWPARAM ;; -[Uu] | --uninstall ) ACTION=UNINSTALL ;; -[Pp] | --purgeall ) ACTION=PURGEALL ;; -[qQ] | --quiet ) FORCEYES=1 ;; -V | --version ) display_license exit 0 ;; --update ) updatemyself ;; -v | --verbose ) VERBOSE=1 APT='apt-get' YUM='yum' ;; -[hH] | --help ) usage ;; * ) usage ;; esac shift done main `

from ols1clk.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.