Skip to content

Instantly share code, notes, and snippets.

@Hillzacky
Created November 25, 2020 20:11
Show Gist options
  • Save Hillzacky/5c60900e315a143602ddb6e0860d1332 to your computer and use it in GitHub Desktop.
Save Hillzacky/5c60900e315a143602ddb6e0860d1332 to your computer and use it in GitHub Desktop.
install dan konfigurasi webserver secara otomatis dengan openlitespeed
#!/bin/bash
TEMPRANDSTR=
function getRandPassword
{
dd if=/dev/urandom bs=8 count=1 of=/tmp/randpasswdtmpfile >/dev/null 2>&1
TEMPRANDSTR=`cat /tmp/randpasswdtmpfile`
rm /tmp/randpasswdtmpfile
local DATE=`date`
TEMPRANDSTR=`echo "$TEMPRANDSTR$RANDOM$DATE" | md5sum | base64 | head -c 8`
}
OSNAMEVER=UNKNOWN
OSNAME=
OSVER=
OSTYPE=`uname -m`
MARIADBCPUARCH=
SERVER_ROOT=/usr/local/lsws
#Current status
OLSINSTALLED=
MYSQLINSTALLED=
TESTGETERROR=no
getRandPassword
ADMINPASSWORD=$TEMPRANDSTR
getRandPassword
ROOTPASSWORD=$TEMPRANDSTR
getRandPassword
USERPASSWORD=$TEMPRANDSTR
getRandPassword
WPPASSWORD=$TEMPRANDSTR
DATABASENAME=olsdbname
USERNAME=olsdbuser
WORDPRESSPATH=$SERVER_ROOT/wordpress
WPPORT=80
SSLWPPORT=443
INSTALLWORDPRESS=0
INSTALLWORDPRESSPLUS=0
FORCEYES=0
WPLANGUAGE=en
WPUSER=wpuser
WPTITLE=MySite
SITEDOMAIN=*
EMAIL=
#Semua versi lsphp, tetap gunakan dua digit untuk mengidentifikasi versi!!!
#jika tidak, perlu memperbarui fungsi uninstall yang akan memeriksa versinya
LSPHPVERLIST=(54 55 56 70 71 72 73 74)
MARIADBVERLIST=(10.0 10.1 10.2 10.3 10.4)
#default version
LSPHPVER=74
USEDEFAULTLSPHP=1
MARIADBVER=10.4
USEDEFAULTLSMARIADB=1
ALLERRORS=0
TEMPPASSWORD=
ACTION=INSTALL
FOLLOWPARAM=
CONFFILE=myssl.conf
CSR=example.csr
KEY=example.key
CERT=example.crt
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 echoR
{
FLAG=$1
shift
echo -e "\033[38;5;203m$FLAG\033[39m$@"
}
function check_root
{
local INST_USER=`id -u`
if [ $INST_USER != 0 ] ; then
echoR "Maaf, hanya pengguna root yang dapat menginstal."
echo
exit 1
fi
}
function check_wget
{
which wget >/dev/null 2>&1
if [ $? != 0 ] ; then
if [ "x$OSNAME" = "xcentos" ] ; then
yum -y install wget
else
apt-get -y install wget
fi
which wget >/dev/null 2>&1
if [ $? != 0 ] ; then
echoR "Terjadi kesalahan selama instalasi wget."
ALLERRORS=1
fi
fi
}
function display_license
{
echoY '**********************************************************************************************'
echoY '* Install Webserver *'
echoY '* 2016 - 2020 akunk *'
echoY '**********************************************************************************************'
}
function check_os
{
OSNAMEVER=
OSNAME=
OSVER=
MARIADBCPUARCH=
if [ -f /etc/redhat-release ] ; then
cat /etc/redhat-release | grep " 6." >/dev/null
if [ $? = 0 ] ; then
OSNAMEVER=CENTOS6
OSNAME=centos
OSVER=6
else
cat /etc/redhat-release | grep " 7." >/dev/null
if [ $? = 0 ] ; then
OSNAMEVER=CENTOS7
OSNAME=centos
OSVER=7
else
cat /etc/redhat-release | grep " 8." >/dev/null
if [ $? = 0 ] ; then
OSNAMEVER=CENTOS8
OSNAME=centos
OSVER=8
fi
fi
fi
elif [ -f /etc/lsb-release ] ; then
cat /etc/lsb-release | grep "DISTRIB_RELEASE=14." >/dev/null
if [ $? = 0 ] ; then
OSNAMEVER=UBUNTU14
OSNAME=ubuntu
OSVER=trusty
MARIADBCPUARCH="arch=amd64,i386,ppc64el"
else
cat /etc/lsb-release | grep "DISTRIB_RELEASE=16." >/dev/null
if [ $? = 0 ] ; then
OSNAMEVER=UBUNTU16
OSNAME=ubuntu
OSVER=xenial
MARIADBCPUARCH="arch=amd64,i386,ppc64el"
else
cat /etc/lsb-release | grep "DISTRIB_RELEASE=18." >/dev/null
if [ $? = 0 ] ; then
OSNAMEVER=UBUNTU18
OSNAME=ubuntu
OSVER=bionic
MARIADBCPUARCH="arch=amd64"
else
cat /etc/lsb-release | grep "DISTRIB_RELEASE=20." >/dev/null
if [ $? = 0 ] ; then
OSNAMEVER=UBUNTU20
OSNAME=ubuntu
OSVER=focal
MARIADBCPUARCH="arch=amd64"
fi
fi
fi
fi
elif [ -f /etc/debian_version ] ; then
cat /etc/debian_version | grep "^7." >/dev/null
if [ $? = 0 ] ; then
OSNAMEVER=DEBIAN7
OSNAME=debian
OSVER=wheezy
MARIADBCPUARCH="arch=amd64,i386"
else
cat /etc/debian_version | grep "^8." >/dev/null
if [ $? = 0 ] ; then
OSNAMEVER=DEBIAN8
OSNAME=debian
OSVER=jessie
MARIADBCPUARCH="arch=amd64,i386"
else
cat /etc/debian_version | grep "^9." >/dev/null
if [ $? = 0 ] ; then
OSNAMEVER=DEBIAN9
OSNAME=debian
OSVER=stretch
MARIADBCPUARCH="arch=amd64,i386"
else
cat /etc/debian_version | grep "^10." >/dev/null
if [ $? = 0 ] ; then
OSNAMEVER=DEBIAN10
OSNAME=debian
OSVER=buster
MARIADBCPUARCH="arch=amd64,i386"
fi
fi
fi
fi
fi
if [ "x$OSNAMEVER" = "x" ] ; then
echoR "Maaf, saat ini instalasi satu klik hanya mendukung Centos(6-8), Debian(7-10) and Ubuntu(14,16,18,20)."
echo
exit 1
else
if [ "x$OSNAME" = "xcentos" ] ; then
echoG "Platform saat ini adalah " "$OSNAME $OSVER."
else
export DEBIAN_FRONTEND=noninteractive
echoG "Platform saat ini adalah " "$OSNAMEVER $OSNAME $OSVER."
fi
fi
}
function update_centos_hashlib
{
if [ "x$OSNAME" = "xcentos" ] ; then
yum -y install python-hashlib
fi
}
function install_ols_centos
{
local action=install
if [ "x$1" = "xUpdate" ] ; then
action=update
elif [ "x$1" = "xReinstall" ] ; 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
yum -y $action epel-release
rpm -Uvh http://rpms.litespeedtech.com/centos/litespeed-repo-1.1-1.el$OSVER.noarch.rpm
yum -y $action openlitespeed
#Sometimes it may fail and do a reinstall to fix
if [ ! -e "$SERVER_ROOT/conf/httpd_config.conf" ] ; then
yum -y reinstall openlitespeed
fi
if [ ! -e $SERVER_ROOT/lsphp$LSPHPVER/bin/lsphp ] ; then
action=install
fi
#special case for lsphp-mysql
if [ "x$action" = "xreinstall" ] ; then
yum -y remove lsphp$LSPHPVER-mysqlnd
fi
yum -y install lsphp$LSPHPVER-mysqlnd
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
if [ $? != 0 ] ; then
echoR "Terjadi kesalahan selama penginstalan OpenLiteSpeed."
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" "$SERVER_ROOT/conf/httpd_config.conf"
#fix lsphp 73 to current version
sed -i -e "s/lsphp73\/bin\/lsphp/lsphp$LSPHPVER\/bin\/lsphp/g" "$SERVER_ROOT/conf/httpd_config.conf"
fi
}
function uninstall_ols_centos
{
yum -y remove openlitespeed
if [ $? != 0 ] ; then
echoR "Terjadi kesalahan saat mencopot OpenLiteSpeed."
ALLERRORS=1
fi
#Perlu menemukan versi lsphp saat ini
yum list installed | grep lsphp | grep process >/dev/null 2>&1
if [ $? = 0 ] ; then
local LSPHPSTR=`yum list installed | grep lsphp | grep process`
LSPHPVER=`echo $LSPHPSTR | awk '{print substr($0,6,2)}'`
echoY "The installed LSPHP version is $LSPHPVER"
local JSON=
if [ "x$LSPHPVER" = "x70" ] || [ "x$LSPHPVER" = "x71" ] || [ "x$LSPHPVER" = "x72" ] || [ "x$LSPHPVER" = "x73" ] || [ "x$LSPHPVER" = "x74" ] ; then
JSON=lsphp$LSPHPVER-json
fi
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*
if [ $? != 0 ] ; then
echoR "Terjadi kesalahan saat mencopot pemasangan lsphp$LSPHPVER"
ALLERRORS=1
fi
else
yum -y remove lsphp*
echoR "Pencopotan pemasangan tidak bisa mendapatkan yang terpasang saat ini versi LSPHP."
echoY "Mungkin tidak menghapus LSPHP dengan benar."
LSPHPVER=
fi
rm -rf $SERVER_ROOT/
}
function install_ols_debian
{
local action=
if [ "x$1" = "xUpdate" ] ; then
action="--only-upgrade"
elif [ "x$1" = "xReinstall" ] ; then
action="--reinstall"
fi
grep -Fq "http://rpms.litespeedtech.com/debian/" /etc/apt/sources.list.d/lst_debian_repo.list
if [ $? != 0 ] ; then
echo "deb http://rpms.litespeedtech.com/debian/ $OSVER main" > /etc/apt/sources.list.d/lst_debian_repo.list
fi
wget -O /etc/apt/trusted.gpg.d/lst_debian_repo.gpg http://rpms.litespeedtech.com/debian/lst_debian_repo.gpg
wget -O /etc/apt/trusted.gpg.d/lst_repo.gpg http://rpms.litespeedtech.com/debian/lst_repo.gpg
apt-get -y update
apt-get -y install $action openlitespeed
if [ ! -e $SERVER_ROOT/lsphp$LSPHPVER/bin/lsphp ] ; then
action=
fi
apt-get -y install $action lsphp$LSPHPVER lsphp$LSPHPVER-mysql lsphp$LSPHPVER-imap lsphp$LSPHPVER-curl
if [ "x$LSPHPVER" != "x70" ] && [ "x$LSPHPVER" != "x71" ] && [ "x$LSPHPVER" != "x72" ] && [ "x$LSPHPVER" != "x73" ] && [ "x$LSPHPVER" != "x74" ] ; then
apt-get -y install $action lsphp$LSPHPVER-gd lsphp$LSPHPVER-mcrypt
else
apt-get -y install $action lsphp$LSPHPVER-common lsphp$LSPHPVER-json
fi
if [ $? != 0 ] ; then
echoR "Terjadi kesalahan selama penginstalan OpenLiteSpeed."
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" "$SERVER_ROOT/conf/httpd_config.conf"
#fix lsphp 73 to current version
sed -i -e "s/lsphp73\/bin\/lsphp/lsphp$LSPHPVER\/bin\/lsphp/g" "$SERVER_ROOT/conf/httpd_config.conf"
fi
}
function uninstall_ols_debian
{
apt-get -y --purge remove openlitespeed
dpkg -l | grep lsphp | grep mysql >/dev/null 2>&1
if [ $? = 0 ] ; then
local LSPHPSTR=`dpkg -l | grep lsphp | grep mysql`
LSPHPVER=`echo $LSPHPSTR | awk '{print substr($2,6,2)}'`
echoY "Versi LSPHP yang diinstal adalah $LSPHPVER"
if [ "x$LSPHPVER" != "x70" ] && [ "x$LSPHPVER" != "x71" ] && [ "x$LSPHPVER" != "x72" ] && [ "x$LSPHPVER" != "x73" ] && [ "x$LSPHPVER" != "x74" ] ; then
apt-get -y --purge remove lsphp$LSPHPVER-gd lsphp$LSPHPVER-mcrypt
else
apt-get -y --purge remove lsphp$LSPHPVER-common
fi
apt-get -y --purge remove lsphp$LSPHPVER lsphp$LSPHPVER-mysql lsphp$LSPHPVER-imap 'lsphp*'
if [ $? != 0 ] ; then
echoR "Terjadi kesalahan saat mencopot OpenLiteSpeed / LSPHP."
ALLERRORS=1
fi
else
apt-get -y --purge remove lsphp*
echoR "Penghapusan penginstalan tidak dapat memperoleh versi LSPHP yang saat ini diinstal."
echoR "Mungkin tidak menghapus LSPHP dengan benar."
LSPHPVER=
fi
rm -rf $SERVER_ROOT/
}
function install_wordpress
{
if [ ! -e "$WORDPRESSPATH" ] ; then
local WPDIRNAME=`dirname $WORDPRESSPATH`
local WPBASENAME=`basename $WORDPRESSPATH`
mkdir -p "$WPDIRNAME"
cd "$WPDIRNAME"
wget --no-check-certificate http://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz >/dev/null 2>&1
rm latest.tar.gz
if [ "x$WPBASENAME" != "xwordpress" ] ; then
mv wordpress/ $WPBASENAME/
fi
wget -q -r --level=0 -nH --cut-dirs=2 --no-parent https://plugins.svn.wordpress.org/litespeed-cache/trunk/ --reject html -P $WORDPRESSPATH/wp-content/plugins/litespeed-cache/
chown -R --reference=$SERVER_ROOT/autoupdate $WORDPRESSPATH
cd -
else
echoY "$WORDPRESSPATH exists, akan menggunakannya."
fi
}
function setup_wordpress
{
if [ -e "$WORDPRESSPATH/wp-config-sample.php" ] ; then
sed -e "s/database_name_here/$DATABASENAME/" -e "s/username_here/$USERNAME/" -e "s/password_here/$USERPASSWORD/" "$WORDPRESSPATH/wp-config-sample.php" > "$WORDPRESSPATH/wp-config.php"
if [ -e "$WORDPRESSPATH/wp-config.php" ] ; then
chown -R --reference="$WORDPRESSPATH/wp-config-sample.php" "$WORDPRESSPATH/wp-config.php"
echoG "Finished setting up WordPress."
else
echoR "Penyiapan WordPress gagal. Anda mungkin tidak memiliki cukup hak untuk mengakses $WORDPRESSPATH/wp-config.php."
ALLERRORS=1
fi
else
echoR "Penyiapan WordPress gagal. File $WORDPRESSPATH/wp-config-sample.php tidak ada."
ALLERRORS=1
fi
}
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 ] && [ "x$OSNAME" = "xcentos" ] ; then
service mysqld restart
fi
mysqladmin -uroot -p$CURROOTPASSWORD password $CURROOTPASSWORD
if [ $? != 0 ] ; then
printf '\033[31mHarap masukkan kata sandi root saat ini:\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[31mHarap masukkan kata sandi root saat ini:\033[0m'
read answer
mysqladmin -uroot -p$answer password $answer
if [ $? = 0 ] ; then
CURROOTPASSWORD=$answer
else
echoR "kata sandi root salah. 1 upaya tersisa."
printf '\033[31mHarap masukkan kata sandi root saat ini:\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 install_mysql
{
if [ "x$OSNAME" = "xcentos" ] ; then
#Add mariadb repo here if not exist
local REPOFILE=/etc/yum.repos.d/MariaDB.repo
if [ ! -f $REPOFILE ] ; then
local CENTOSVER=
if [ "x$OSTYPE" != "xx86_64" ] ; then
CENTOSVER=centos$OSVER-x86
else
CENTOSVER=centos$OSVER-amd64
fi
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
if [ "x$OSNAMEVER" = "xCENTOS8" ] ; then
yum install -y boost-program-options
yum --disablerepo=AppStream install -y MariaDB-server MariaDB-client
else
yum -y install MariaDB-server MariaDB-client
fi
if [ $? != 0 ] ; then
echoR "Terjadi kesalahan selama penginstalan MariaDB. Harap perbaiki kesalahan ini dan coba lagi."
echoR "Anda mungkin ingin menjalankan perintah secara manual 'yum -y install MariaDB-server MariaDB-client' untuk memeriksa. Membatalkan instalasi!"
exit 1
fi
else
if [ "x$OSNAMEVER" = "xDEBIAN7" ] ; then
apt-get -y -f install python-software-properties
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
elif [ "x$OSNAMEVER" = "xDEBIAN8" ] ; then
apt-get -y -f install software-properties-common
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
elif [ "x$OSNAMEVER" = "xDEBIAN9" ] ; then
apt-get -y -f install software-properties-common gnupg
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8
elif [ "x$OSNAMEVER" = "xDEBIAN10" ] ; then
apt-get -y -f install software-properties-common gnupg
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8
elif [ "x$OSNAMEVER" = "xUBUNTU12" ] ; then
apt-get -y -f install python-software-properties
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
elif [ "x$OSNAMEVER" = "xUBUNTU14" ] ; then
apt-get -y -f install software-properties-common
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
elif [ "x$OSNAMEVER" = "xUBUNTU16" ] ; then
apt-get -y -f install software-properties-common
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
elif [ "x$OSNAMEVER" = "xUBUNTU18" ] ; then
apt-get -y -f install software-properties-common
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
elif [ "x$OSNAMEVER" = "xUBUNTU20" ] ; then
apt-get -y -f install software-properties-common
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
fi
grep -Fq "http://mirror.jaleco.com/mariadb/repo/" /etc/apt/sources.list.d/mariadb_repo.list
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
apt-get update
apt-get -y -f --force-yes install mariadb-server
if [ $? != 0 ] ; then
echoR "Terjadi kesalahan selama penginstalan MariaDB. Harap perbaiki kesalahan ini dan coba lagi."
echoR "Anda mungkin ingin menjalankan perintah secara manual 'apt-get -y -f --force-yes install mariadb-server' untuk memeriksa. Membatalkan instalasi!"
exit 1
fi
fi
if [ "x$OSNAMEVER" = "xCENTOS8" ] || [ "x$OSNAMEVER" = "xCENTOS7" ] ; then
systemctl enable mariadb
systemctl start mariadb
else
service mysql start
fi
if [ $? != 0 ] ; then
echoR "Terjadi kesalahan saat memulai layanan MariaDB. "
echoR "Harap perbaiki kesalahan ini dan coba lagi. Membatalkan instalasi!"
exit 1
fi
#mysql_secure_installation
#mysql_install_db
mysql -uroot -e "update mysql.user set plugin='' where user='root';"
mysql -uroot -e "flush privileges;"
#service mysql restart
mysqladmin -uroot password $ROOTPASSWORD
if [ $? = 0 ] ; then
echoG "MySQL root password set to $ROOTPASSWORD"
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 "Gagal menyetel kata sandi root MySQL ke $ROOTPASSWORD, itu mungkin sudah memiliki kata sandi root."
printf '\033[31mInstalasi harus mengetahui kata sandi untuk langkah selanjutnya.\033[0m'
test_mysql_password
if [ "x$TESTPASSWORDERROR" = "x1" ] ; then
echoY "Jika Anda lupa kata sandi Anda, Anda dapat menghentikan layanan mysqld dan menjalankan perintah berikut untuk mengatur ulang,"
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 "Membatalkan instalasi."
echo
exit 1
fi
if [ "x$CURROOTPASSWORD" != "x$ROOTPASSWORD" ] ; then
echoY "Kata sandi root MySQL saat ini adalah $CURROOTPASSWORD, itu akan diubah menjadi $ROOTPASSWORD."
printf '\033[31mApakah Anda masih ingin mengubahnya?[y/N]\033[0m '
read answer
echo
if [ "x$answer" != "xY" ] && [ "x$answer" != "xy" ] ; then
echoG "OK, MySQL root password tidak berubah."
ROOTPASSWORD=$CURROOTPASSWORD
else
mysqladmin -uroot -p$CURROOTPASSWORD password $ROOTPASSWORD
if [ $? = 0 ] ; then
echoG "OK, MySQL root password changed to $ROOTPASSWORD."
else
echoR "Gagal mengubah kata sandi root MySQL, ini masih $CURROOTPASSWORD."
ROOTPASSWORD=$CURROOTPASSWORD
fi
fi
fi
fi
fi
}
function setup_mysql
{
local ERROR=
#delete user if exists because I need to set the password
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 "Gagal membuat pengguna MySQL $USERNAME. Pengguna ini mungkin sudah ada. Jika tidak, masalah lain terjadi."
echoR "Silakan periksa file ini dan perbarui wp-config.php ."
ERROR="Buat kesalahan pengguna"
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 "Gagal membuat database $DATABASENAME. Ini mungkin sudah ada. Jika tidak, masalah lain terjadi."
echoR "Silakan periksa file ini dan perbarui wp-config.php ."
if [ "x$ERROR" = "x" ] ; then
ERROR="Buat kesalahan database"
else
ERROR="$ERROR dan membuat kesalahan database"
fi
fi
mysql -uroot -p$ROOTPASSWORD -e "flush privileges;"
if [ "x$ERROR" = "x" ] ; then
echoG "Pengaturan MySQL selesai tanpa kesalahan."
else
echoR "Pengaturan MySQL selesai - terjadi beberapa kesalahan."
fi
}
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 [ "x$MYSQLINSTALLED" != "x1" ] ; then
echoY "MySQL-server not installed."
else
local ERROR=0
test_mysql_password
if [ "x$TESTPASSWORDERROR" = "x1" ] ; then
echoR "Gagal membersihkan database."
echo
ERROR=1
ALLERRORS=1
#ROOTPASSWORD=123456
#resetmysqlroot $ROOTPASSWORD
else
ROOTPASSWORD=$CURROOTPASSWORD
fi
if [ "x$ERROR" = "x0" ] ; 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 uninstall_result
{
if [ "x$ALLERRORS" = "x0" ] ; then
echoG "Pencopotan pemasangan selesai."
else
echoY "Pencopotan pemasangan selesai - terjadi beberapa kesalahan. Silakan periksa ini karena Anda mungkin perlu memperbaikinya secara manual."
fi
echo
}
function install_ols
{
local STATUS=Install
if [ "x$OLSINSTALLED" = "x1" ] ; then
OLS_VERSION=$(cat "$SERVER_ROOT"/VERSION)
wget -O "$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 [ "x$OLS_VERSION" = "x$LATEST_VERSION" ] ; then
STATUS=Reinstall
echoY "OpenLiteSpeed sudah diinstal dengan versi terbaru, akan mencoba untuk menginstalnya kembali."
else
STATUS=Update
echoY "OpenLiteSpeed sudah diinstal dan versi yang lebih baru tersedia, akan mencoba untuk memperbaruinya."
fi
fi
if [ "x$OSNAME" = "xcentos" ] ; then
echo "$STATUS on Centos"
install_ols_centos $STATUS
else
echo "$STATUS on Debian/Ubuntu"
install_ols_debian $STATUS
fi
killall -9 lsphp
}
function gen_selfsigned_cert
{
# source outside config file
if [ -e $CONFFILE ] ; then
source $CONFFILE 2>/dev/null
if [ $? != 0 ]; then
. $CONFFILE
fi
fi
# set default value
if [ "${SSL_COUNTRY}" = "" ] ; then
SSL_COUNTRY=US
fi
if [ "${SSL_STATE}" = "" ] ; then
SSL_STATE="New Jersey"
fi
if [ "${SSL_LOCALITY}" = "" ] ; then
SSL_LOCALITY=Virtual
fi
if [ "${SSL_ORG}" = "" ] ; then
SSL_ORG=LiteSpeedCommunity
fi
if [ "${SSL_ORGUNIT}" = "" ] ; then
SSL_ORGUNIT=Testing
fi
if [ "${SSL_HOSTNAME}" = "" ] ; then
SSL_HOSTNAME=webadmin
fi
if [ "${SSL_EMAIL}" = "" ] ; then
SSL_EMAIL=.
fi
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}
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
{
#setup 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
echoY "Selesai mengatur kata sandi OpenLiteSpeed WebAdmin ke $ADMINPASSWORD."
echoY "Selesai memperbarui konfigurasi server."
else
echoY "Sandi OpenLiteSpeed WebAdmin tidak berubah."
fi
fi
}
function config_server
{
if [ -e "$SERVER_ROOT/conf/httpd_config.conf" ] ; then
sed -i -e "s/adminEmails/adminEmails $EMAIL\n#adminEmails/" "$SERVER_ROOT/conf/httpd_config.conf"
sed -i -e "s/8088/$WPPORT/" "$SERVER_ROOT/conf/httpd_config.conf"
sed -i -e "s/ls_enabled/ls_enabled 1\n#/" "$SERVER_ROOT/conf/httpd_config.conf"
cat >> $SERVER_ROOT/conf/httpd_config.conf <<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 "$SERVER_ROOT/conf/httpd_config.conf hilang. Tampaknya ada yang tidak beres selama penginstalan OpenLiteSpeed."
ALLERRORS=1
fi
}
function config_server_wp
{
if [ -e "$SERVER_ROOT/conf/httpd_config.conf" ] ; then
cat $SERVER_ROOT/conf/httpd_config.conf | grep "virtualhost wordpress" >/dev/null
if [ $? != 0 ] ; then
sed -i -e "s/adminEmails/adminEmails $EMAIL\n#adminEmails/" "$SERVER_ROOT/conf/httpd_config.conf"
sed -i -e "s/ls_enabled/ls_enabled 1\n#/" "$SERVER_ROOT/conf/httpd_config.conf"
VHOSTCONF=$SERVER_ROOT/conf/vhosts/wordpress/vhconf.conf
cat >> $SERVER_ROOT/conf/httpd_config.conf <<END
virtualhost wordpress {
vhRoot $WORDPRESSPATH
configFile $VHOSTCONF
allowSymbolLink 1
enableScript 1
restrained 0
setUIDMode 2
}
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
mkdir -p $SERVER_ROOT/conf/vhosts/wordpress/
cat > $VHOSTCONF <<END
docRoot \$VH_ROOT/
index {
useServer 0
indexFiles index.php
}
context / {
type NULL
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/
fi
else
echoR "$SERVER_ROOT/conf/httpd_config.conf hilang. Tampaknya ada yang tidak beres selama penginstalan OpenLiteSpeed."
ALLERRORS=1
fi
}
function activate_cache
{
cat > $WORDPRESSPATH/activate_cache.php <<END
<?php
include '$WORDPRESSPATH/wp-load.php';
include_once '$WORDPRESSPATH/wp-admin/includes/plugin.php';
include_once '$WORDPRESSPATH/wp-admin/includes/file.php';
define('WP_ADMIN', true);
activate_plugin('litespeed-cache/litespeed-cache.php', '', false, false);
END
$SERVER_ROOT/fcgi-bin/lsphpnew $WORDPRESSPATH/activate_cache.php
rm $WORDPRESSPATH/activate_cache.php
}
function getCurStatus
{
if [ -e $SERVER_ROOT/bin/openlitespeed ] ; then
OLSINSTALLED=1
else
OLSINSTALLED=0
fi
which mysqladmin >/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 "Selesai mengatur kata sandi OpenLiteSpeed WebAdmin ke $ADMINPASSWORD."
}
function uninstall
{
if [ "x$OLSINSTALLED" = "x1" ] ; then
echoY "Menghapus instalasi ..."
$SERVER_ROOT/bin/lswsctrl stop
killall -9 lsphp
if [ "x$OSNAME" = "xcentos" ] ; then
echo "Uninstall on Centos"
uninstall_ols_centos
else
echo "Uninstall on Debian/Ubuntu"
uninstall_ols_debian
fi
echoG Uninstalled.
else
echoY "OpenLiteSpeed tidak diinstal."
fi
}
function read_password
{
if [ "x$1" != "x" ] ; then
TEMPPASSWORD=$1
else
passwd=
echoY "Harap masukkan kata sandi untuk $2(tekan enter untuk mendapatkan yang acak):"
read passwd
if [ "x$passwd" = "x" ] ; then
local RAND=$RANDOM
local DATE0=`date`
TEMPPASSWORD=`echo "$RAND0$DATE0" | md5sum | base64 | head -c 8`
else
TEMPPASSWORD=$passwd
fi
fi
}
function check_value_follow
{
FOLLOWPARAM=$1
local PARAM=$1
local KEYWORD=$2
#test if first letter is - or not.
if [ "x$1" = "x-n" ] || [ "x$1" = "x-e" ] || [ "x$1" = "x-E" ] ; then
FOLLOWPARAM=
else
local PARAMCHAR=`echo $1 | awk '{print substr($0,1,1)}'`
if [ "x$PARAMCHAR" = "x-" ] ; then
FOLLOWPARAM=
fi
fi
if [ "x$FOLLOWPARAM" = "x" ] ; then
if [ "x$KEYWORD" != "x" ] ; then
echoR "Error: '$PARAM' tidak valid '$KEYWORD', silakan periksa dan coba lagi."
usage
exit 1
fi
fi
}
function fixLangTypo
{
#Now change type for chinese
LANGSTR=`echo "$WPLANGUAGE" | awk '{print tolower($0)}'`
if [ "x$LANGSTR" = "xzh_cn" ] || [ "x$LANGSTR" = "xzh-cn" ] || [ "x$LANGSTR" = "xcn" ] ; then
WPLANGUAGE=zh_CN
fi
if [ "x$LANGSTR" = "xzh_tw" ] || [ "x$LANGSTR" = "xzh-tw" ] || [ "x$LANGSTR" = "xtw" ] ; then
WPLANGUAGE=zh_TW
fi
}
function updatemyself
{
local CURMD=`md5sum "$0" | cut -d' ' -f1`
local SERVERMD=`md5sum <(wget $MYGITHUBURL -O- 2>/dev/null) | cut -d' ' -f1`
if [ "x$CURMD" = "x$SERVERMD" ] ; then
echoG "Anda sudah menginstal versi terbaru."
else
wget -O "$0" $MYGITHUBURL
CURMD=`md5sum "$0" | cut -d' ' -f1`
if [ "x$CURMD" = "x$SERVERMD" ] ; then
echoG "Updated."
else
echoG "Mencoba memperbarui tetapi tampaknya gagal."
fi
fi
}
function usage
{
echoY "USAGE: " "$0 [options] [options] ..."
echoY "OPTIONS "
echoG " --adminpassword(-a) [PASSWORD] " "Untuk menyetel kata sandi WebAdmin untuk OpenLiteSpeed alih-alih menggunakan kata sandi acak."
echoG " " "Jika Anda menghilangkan [PASSWORD], kami akan meminta Anda untuk memberikan kata sandi ini selama instalasi."
echoG " --email(-e) EMAIL " "Untuk mengatur email administrator."
echoG " --lsphp VERSION " "Untuk mengatur versi LSPHP, seperti 56. Saat ini kami mendukung versi '${LSPHPVERLIST[@]}'."
echoG " --mariadbver VERSION " "Untuk menyetel versi MariaDB, seperti 10.3. Saat ini kami mendukung versi '${MARIADBVERLIST[@]}'."
echoG " --wordpress(-w) " "Untuk menginstal dan mengatur WordPress. Anda masih perlu mengakses /wp-admin/wp-config.php"
echoG " " "file oleh browser untuk menyelesaikan instalasi WordPress."
echoG " --wordpressplus SITEDOMAIN " "Untuk menginstal, mengatur, dan mengkonfigurasi WordPress, menghilangkan kebutuhan setup untuk menggunakan file wp-config.php ."
echoG " --wordpresspath WORDPRESSPATH " "Untuk menentukan lokasi penginstalan WordPress baru atau menggunakan penginstalan WordPress yang sudah ada."
echoG " --dbrootpassword(-r) [PASSWORD] " "Untuk mengatur kata sandi root database daripada menggunakan kata sandi acak."
echoG " " "Jika Anda menghilangkan [PASSWORD], kami akan meminta Anda untuk memberikan sandi ini selama instalasi."
echoG " --dbname DATABASENAME " "Untuk mengatur nama database yang akan digunakan oleh WordPress."
echoG " --dbuser DBUSERNAME " "Untuk mengatur nama pengguna WordPress di database."
echoG " --dbpassword [PASSWORD] " "Untuk mengatur kata sandi tabel WordPress di MySQL daripada menggunakan kata sandi acak."
echoG " " "Jika Anda menghilangkan [PASSWORD], kami akan meminta Anda untuk memberikan sandi ini selama instalasi."
echoG " --listenport LISTENPORT " "Untuk menyetel port pendengar server HTTP, defaultnya adalah 80."
echoG " --ssllistenport LISTENPORT " "Untuk menyetel port pendengar server HTTPS, defaultnya adalah 443."
echoG " --wpuser WORDPRESSUSER " "Untuk mengatur pengguna admin WordPress untuk login dashboard WordPress. Nilai defaultnya adalah wpuser."
echoG " --wppassword [PASSWORD] " "Untuk mengatur kata sandi pengguna admin WordPress untuk login dashboard WordPress."
echoG " " "Jika Anda menghilangkan [PASSWORD], ols1clk akan meminta Anda untuk memberikan sandi ini selama instalasi."
echoG " --wplang WORDPRESSLANGUAGE " "Untuk mengatur bahasa WordPress. Nilai defaultnya adalah \"en\" untuk English."
echoG " --sitetitle WORDPRESSSITETITLE " "Untuk mengatur judul situs WordPress. Nilai defaultnya adalah mySite."
echoG " --uninstall " "Untuk menghapus OpenLiteSpeed dan menghapus direktori instalasi."
echoG " --purgeall " "Untuk menghapus OpenLiteSpeed, hapus direktori instalasi, dan bersihkan semua data di MySQL."
echoG " --quiet " "Setel ke mode diam, tidak akan meminta untuk memasukkan apapun."
echoG " --version(-v) " "Untuk menampilkan informasi versi."
echoG " --update " "Untuk memperbarui program ini dari github."
echoG " --help(-h) " "Untuk menampilkan penggunaan."
echo
echoY "EXAMPLES "
echoG "./myserver.sh " "Untuk menginstal versi terbaru OpenLiteSpeed dengan kata sandi WebAdmin acak."
echoG "./myserver.sh --lsphp 72 " "Untuk menginstal versi terbaru OpenLiteSpeed dengan lsphp72."
echoG "./myserver.sh -a 123456 -e [email protected] " "Untuk menginstal OpenLiteSpeed versi terbaru dengan kata sandi WebAdmin \"123456\" dan email [email protected]."
echoG "./myserver.sh -r 123456 -w " "Untuk menginstal OpenLiteSpeed dengan kata sandi root WordPress dan MySQL \"123456\"."
echoG "./myserver.sh -a 123 -r 1234 --wordpressplus a.com" ""
echo " Untuk menginstal OpenLiteSpeed dengan penginstalan WordPress yang dikonfigurasi sepenuhnya di \"a.com\" menggunakan kata sandi WebAdmin \"123\" dan kata sandi root MySQL \"1234\"."
echoG "./ols1clk.sh -a 123 -r 1234 --wplang zh_CN --sitetitle mySite --wordpressplus a.com" ""
echo " Untuk menginstal OpenLiteSpeed dengan penginstalan WordPress bahasa China (China) yang dikonfigurasi sepenuhnya di \"a.com\" menggunakan kata sandi WebAdmin \"123\", dan kata sandi root MySQL \"1234\", dan judul situs WordPress \"mySite\"."
echo
}
function uninstall_warn
{
if [ "x$FORCEYES" != "x1" ] ; then
echo
printf "\033[31mApakah Anda yakin ingin mencopot pemasangan? Type 'Y' untuk melanjutkan, jika tidak akan berhenti.[y/N]\033[0m "
read answer
echo
if [ "x$answer" != "xY" ] && [ "x$answer" != "xy" ] ; then
echoG "Pencopotan pemasangan dibatalkan!"
exit 0
fi
echo
fi
}
function test_page
{
local URL=$1
local KEYWORD=$2
local PAGENAME=$3
rm -rf tmp.tmp
wget --no-check-certificate -O tmp.tmp $URL >/dev/null 2>&1
grep "$KEYWORD" tmp.tmp >/dev/null 2>&1
if [ $? != 0 ] ; then
echoR "Error: $PAGENAME failed."
TESTGETERROR=yes
else
echoG "OK: $PAGENAME passed."
fi
rm tmp.tmp
}
function test_ols_admin
{
test_page https://localhost:7080/ "LiteSpeed WebAdmin" "test webAdmin page"
}
function test_ols
{
test_page http://localhost:$WPPORT/ Selamat "test Example HTTP vhost page"
test_page https://localhost:$SSLWPPORT/ Selamat "test Example HTTPS vhost page"
}
function test_wordpress
{
test_page http://localhost:8088/ Selamat "test Example vhost page"
test_page http://localhost:$WPPORT/ "data-continue" "test wordpress HTTP halaman pertama"
test_page https://localhost:$SSLWPPORT/ "data-continue" "test wordpress HTTPS halaman pertama"
}
function test_wordpress_plus
{
test_page http://localhost:8088/ Selamat "test Example vhost page"
test_page http://$SITEDOMAIN:$WPPORT/ hello-world "test wordpress HTTP halaman pertama"
test_page https://$SITEDOMAIN:$SSLWPPORT/ hello-world "test wordpress HTTPS halaman pertama"
}
#####################################################################################
#### Main function here
#####################################################################################
display_license
while [ "$1" != "" ] ; do
case $1 in
-a | --adminpassword ) check_value_follow "$2" ""
if [ "x$FOLLOWPARAM" != "x" ] ; then
shift
fi
ADMINPASSWORD=$FOLLOWPARAM
;;
-e | --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 [ "x$1" = "x${LSPHPVERLIST[$i]}" ] ; then
LSPHPVER=$1
USEDEFAULTLSPHP=0
fi
done
;;
--mariadbver ) check_value_follow "$2" "MariaDB version"
shift
cnt=${#MARIADBVERLIST[@]}
for (( i = 0 ; i < cnt ; i++ ))
do
if [ "x$1" = "x${MARIADBVERLIST[$i]}" ] ; then
MARIADBVER=$1
USEDEFAULTLSMARIADB=0
fi
done
;;
-w | --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
;;
-r | --dbrootpassword ) check_value_follow "$2" ""
if [ "x$FOLLOWPARAM" != "x" ] ; 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 [ "x$FOLLOWPARAM" != "x" ] ; 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 [ "x$FOLLOWPARAM" != "x" ] ; then
shift
fi
WPPASSWORD=$FOLLOWPARAM
;;
--wplang ) check_value_follow "$2" "Bahasa WordPress"
shift
WPLANGUAGE=$FOLLOWPARAM
fixLangTypo
;;
--sitetitle ) check_value_follow "$2" "WordPress judul website"
shift
WPTITLE=$FOLLOWPARAM
;;
--uninstall ) ACTION=UNINSTALL
;;
--purgeall ) ACTION=PURGEALL
;;
--quiet ) FORCEYES=1
;;
-v | --version ) exit 0
;;
--update ) updatemyself
exit 0
;;
-h | --help ) usage
exit 0
;;
* ) usage
exit 0
;;
esac
shift
done
check_root
check_os
getCurStatus
#test if have $SERVER_ROOT , and backup it
if [ "x$ACTION" = "xUNINSTALL" ] ; then
uninstall_warn
uninstall
uninstall_result
exit 0
fi
if [ "x$ACTION" = "xPURGEALL" ] ; then
uninstall_warn
if [ "x$ROOTPASSWORD" = "x" ] ; then
passwd=
echoY "Silakan masukkan kata sandi root MySQL: "
read passwd
ROOTPASSWORD=$passwd
fi
uninstall
purgedatabase
uninstall_result
exit 0
fi
if [ "x$OSNAMEVER" = "xUBUNTU20" ] || [ "x$OSNAMEVER" = "xUBUNTU18" ] || [ "x$OSNAMEVER" = "xDEBIAN9" ] ; then
if [ "x$LSPHPVER" = "x54" ] || [ "x$LSPHPVER" = "x55" ] || [ "x$LSPHPVER" = "x56" ] ; then
echoY "We do not support lsphp$LSPHPVER on $OSNAMEVER, lsphp71 will be used instead."
LSPHPVER=71
fi
fi
if [ "x$EMAIL" = "x" ] ; then
if [ "x$SITEDOMAIN" = "x*" ] ; then
EMAIL=root@localhost
else
EMAIL=root@$SITEDOMAIN
fi
fi
read_password "$ADMINPASSWORD" "webAdmin password"
ADMINPASSWORD=$TEMPPASSWORD
if [ "x$INSTALLWORDPRESS" = "x1" ] ; then
read_password "$ROOTPASSWORD" "MySQL root password"
ROOTPASSWORD=$TEMPPASSWORD
read_password "$USERPASSWORD" "MySQL user password"
USERPASSWORD=$TEMPPASSWORD
fi
if [ "x$INSTALLWORDPRESSPLUS" = "x1" ] ; then
read_password "$WPPASSWORD" "WordPress admin password"
WPPASSWORD=$TEMPPASSWORD
fi
if [ "x$USEDEFAULTLSPHP" = "x1" ] ; then
if [ "x$INSTALLWORDPRESS" = "x1" ] && [ -e "$WORDPRESSPATH/wp-config.php" ] ; then
#For existing wordpress, choose lsphp56 as default
LSPHPVER=56
fi
fi
if [ "x$USEDEFAULTLSMARIADB" = "x1" ] ; then
if [ "x$INSTALLWORDPRESS" = "x1" ] && [ -e "$WORDPRESSPATH/wp-config.php" ] ; then
#For existing wordpress, choose MariaDB10.1 as default
MARIADBVER=10.1
fi
fi
echo
echoR "Mulai menginstal OpenLiteSpeed ke $SERVER_ROOT/ dengan parameter di bawah ini,"
echoY "WebAdmin password: " "$ADMINPASSWORD"
echoY "WebAdmin email: " "$EMAIL"
echoY "LSPHP version: " "$LSPHPVER"
echoY "MariaDB version: " "$MARIADBVER"
WORDPRESSINSTALLED=
if [ "x$INSTALLWORDPRESS" = "x1" ] ; then
echoY "Install WordPress: " Yes
echoY "WordPress HTTP port: " "$WPPORT"
echoY "WordPress HTTPS port: " "$SSLWPPORT"
echoY "Web site domain: " "$SITEDOMAIN"
echoY "MySQL root Password: " "$ROOTPASSWORD"
echoY "Database name: " "$DATABASENAME"
echoY "Database username: " "$USERNAME"
echoY "Database password: " "$USERPASSWORD"
if [ "x$INSTALLWORDPRESSPLUS" = "x1" ] ; then
echoY "WordPress plus: " Yes
echoY "WordPress language: " "$WPLANGUAGE"
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
echo
if [ "x$FORCEYES" != "x1" ] ; then
printf '\033[31mApakah pengaturan ini benar? Ketik n untuk keluar, jika tidak akan melanjutkan.[Y/n]\033[0m '
read answer
echo
if [ "x$answer" = "xN" ] || [ "x$answer" = "xn" ] ; then
echoG "Membatalkan instalasi!"
exit 0
fi
echo
fi
####begin here#####
update_centos_hashlib
check_wget
install_ols
#write the password file for record and remove the previous file.
echo "WebAdmin username adalah [admin], password adalah [$ADMINPASSWORD]." > $SERVER_ROOT/password
set_ols_password
gen_selfsigned_cert
if [ "x$INSTALLWORDPRESS" = "x1" ] ; then
if [ "x$MYSQLINSTALLED" != "x1" ] ; then
install_mysql
else
test_mysql_password
fi
if [ "x$WORDPRESSINSTALLED" != "x1" ] ; then
install_wordpress
setup_wordpress
if [ "x$TESTPASSWORDERROR" = "x1" ] ; then
echoY "MySQL setup bypassed, can not get root password."
else
ROOTPASSWORD=$CURROOTPASSWORD
setup_mysql
fi
fi
config_server_wp
echo "mysql root password adalah [$ROOTPASSWORD]." >> $SERVER_ROOT/password
else
#normal ols installation without wordpress
config_server
fi
if [ "x$WPPORT" = "x80" ] ; then
echoY "Mencoba menghentikan beberapa server web yang mungkin menggunakan porta 80."
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
echo ols1clk > "$SERVER_ROOT/PLAT"
$SERVER_ROOT/bin/lswsctrl stop >/dev/null 2>&1
$SERVER_ROOT/bin/lswsctrl start
if [ "x$INSTALLWORDPRESSPLUS" = "x1" ] ; then
if [ "x$WPPORT" != "x80" ] ; then
INSTALLURL=http://$SITEDOMAIN:$WPPORT/wp-admin/install.php
else
INSTALLURL=http://$SITEDOMAIN/wp-admin/install.php
fi
wget $INSTALLURL >/dev/null 2>&1
sleep 5
#echo "wget --post-data 'language=$WPLANGUAGE' --referer=$INSTALLURL $INSTALLURL?step=1"
wget --no-check-certificate --post-data "language=$WPLANGUAGE" --referer=$INSTALLURL $INSTALLURL?step=1 >/dev/null 2>&1
sleep 1
#echo "wget --post-data 'weblog_title=$WPTITLE&user_name=$WPUSER&admin_password=$WPPASSWORD&pass1-text=$WPPASSWORD&admin_password2=$WPPASSWORD&pw_weak=on&admin_email=$EMAIL&Submit=Install+WordPress&language=$WPLANGUAGE' --referer=$INSTALLURL?step=1 $INSTALLURL?step=2 "
wget --no-check-certificate --post-data "weblog_title=$WPTITLE&user_name=$WPUSER&admin_password=$WPPASSWORD&pass1-text=$WPPASSWORD&admin_password2=$WPPASSWORD&pw_weak=on&admin_email=$EMAIL&Submit=Install+WordPress&language=$WPLANGUAGE" --referer=$INSTALLURL?step=1 $INSTALLURL?step=2 >/dev/null 2>&1
activate_cache
echo "WordPress administrator username adalah [$WPUSER], password adalah [$WPPASSWORD]." >> $SERVER_ROOT/password
fi
chmod 600 "$SERVER_ROOT/password"
echoY "Perlu diketahui bahwa kata sandi Anda telah ditulis ke file '$SERVER_ROOT/password'."
if [ "x$ALLERRORS" = "x0" ] ; then
echoG "Selamat! Instalasi selesai."
else
echoY "Instalasi selesai. Beberapa kesalahan tampaknya telah terjadi, harap periksa karena Anda mungkin perlu memperbaikinya secara manual."
fi
if [ "x$INSTALLWORDPRESSPLUS" = "x0" ] && [ "x$INSTALLWORDPRESS" = "x1" ] ; then
echoG "Silakan akses http://localhost:$WPPORT/ untuk menyelesaikan penyiapan situs WordPress Anda."
echoG "Dan juga Anda mungkin ingin mengaktifkan plugin LiteSpeed Cache untuk mendapatkan kinerja yang lebih baik."
fi
echo
echoY "Testing ..."
test_ols_admin
if [ "x$INSTALLWORDPRESS" = "x1" ] ; then
if [ "x$INSTALLWORDPRESSPLUS" = "x1" ] ; then
test_wordpress_plus
else
test_wordpress
fi
else
test_ols
fi
if [ "x${TESTGETERROR}" = "xyes" ] ; then
echoG "Kesalahan ditemukan selama pengujian. Dalam banyak kasus kesalahan ini dapat diatasi secara manual dengan merujuk ke log instalasi."
echoG "Masalah pemuatan layanan terkadang dapat diselesaikan dengan memulai ulang server web."
echoG "Menginstal ulang server web juga dapat membantu jika tidak satu pun dari pendekatan di atas menyelesaikan masalah."
fi
echo
echoG "Jika Anda mengalami masalah apa pun, masalah tersebut terkadang dapat diperbaiki dengan menjalankan --purgeall flag dan menginstal ulang."
echoG "Jika Anda memiliki sertifikat dan kunci pribadi yang ada untuk situs Anda, Anda perlu mengganti $KEY dan $CERT di $SERVER_ROOT/conf dengan file-file ini."
echoG 'Terima kasih telah menggunakan "OpenLiteSpeed auto installation".'
echoG "Enjoy!"
echo
echo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment