Created
November 25, 2020 20:11
-
-
Save Hillzacky/5c60900e315a143602ddb6e0860d1332 to your computer and use it in GitHub Desktop.
install dan konfigurasi webserver secara otomatis dengan openlitespeed
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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