Updated CentOS installer

This commit is contained in:
Serghey Rodin 2018-06-21 15:40:22 +03:00
commit ca3956568b

View file

@ -16,30 +16,27 @@ arch=$(uname -i)
os=$(cut -f 1 -d ' ' /etc/redhat-release)
release=$(grep -o "[0-9]" /etc/redhat-release |head -n1)
codename="${os}_$release"
vestacp="http://$CHOST/$VERSION/$release"
vestacp="$VESTA/install/$VERSION/$release"
if [ "$release" -eq 7 ]; then
software="nginx httpd mod_ssl mod_ruid2 mod_fcgid php php-common php-cli
php-bcmath php-gd php-imap php-mbstring php-mcrypt php-mysql php-pdo
php-soap php-tidy php-xml php-xmlrpc php-fpm php-pgsql awstats webalizer
vsftpd proftpd bind bind-utils bind-libs exim dovecot clamav-server
clamav-update spamassassin roundcubemail mariadb mariadb-server phpMyAdmin
postgresql postgresql-server postgresql-contrib phpPgAdmin e2fsprogs
openssh-clients ImageMagick curl mc screen ftp zip unzip flex sqlite pcre
sudo bc jwhois mailx lsof tar telnet rrdtool net-tools ntp GeoIP freetype
fail2ban rsyslog iptables-services which vesta vesta-nginx vesta-php
vim-common expect vesta-ioncube vesta-softaculous"
else
software="nginx httpd mod_ssl mod_ruid2 mod_fcgid mod_extract_forwarded
php php-common php-cli php-bcmath php-gd php-imap php-mbstring php-mcrypt
php-mysql php-pdo php-soap php-tidy php-xml php-xmlrpc php-fpm php-pgsql
awstats webalizer vsftpd proftpd bind bind-utils bind-libs exim dovecot
clamd spamassassin roundcubemail mysql mysql-server phpMyAdmin postgresql
postgresql-server postgresql-contrib phpPgAdmin e2fsprogs openssh-clients
ImageMagick curl mc screen ftp zip unzip flex sqlite pcre sudo bc jwhois
mailx lsof tar telnet rrdtool net-tools ntp GeoIP freetype fail2ban
which vesta vesta-nginx vesta-php vim-common expect vesta-ioncube
vesta-softaculous"
# Defining software pack for all distros
software="awstats bc bind bind-libs bind-utils clamav-server clamav-update
curl dovecot e2fsprogs exim expect fail2ban flex freetype ftp GeoIP httpd
ImageMagick iptables-services jwhois lsof mailx mariadb mariadb-server mc
mod_fcgid mod_ruid2 mod_ssl net-tools nginx ntp openssh-clients pcre php
php-bcmath php-cli php-common php-fpm php-gd php-imap php-mbstring
php-mcrypt phpMyAdmin php-mysql php-pdo phpPgAdmin php-pgsql php-soap
php-tidy php-xml php-xmlrpc postgresql postgresql-contrib
postgresql-server proftpd roundcubemail rrdtool rsyslog screen
spamassassin sqlite sudo tar telnet unzip vesta vesta-ioncube vesta-nginx
vesta-php vesta-softaculous vim-common vsftpd webalizer which zip"
# Fix for old releases
if [ "$release" -lt 7 ]; then
software=$(echo "$software" |sed -e "s/mariadb/mysql/")
software=$(echo "$software" |sed -e "s/clamav-server/clamd/")
software=$(echo "$software" |sed -e "s/clamav-update//")
software=$(echo "$software" |sed -e "s/iptables-services//")
software="$software mod_extract_forwarded"
fi
# Defining help function
@ -105,7 +102,7 @@ set_default_value() {
fi
}
# Define function to set default language value
# Defining function to set default language value
set_default_lang() {
if [ -z "$lang" ]; then
eval lang=$1
@ -125,9 +122,6 @@ set_default_lang() {
# Verifications #
#----------------------------------------------------------#
# Creating temporary file
tmpfile=$(mktemp -p /tmp)
# Translating argument to --gnu-long-options
for arg; do
delim=""
@ -239,7 +233,6 @@ if [ "$iptables" = 'no' ]; then
fail2ban='no'
fi
# Checking root permissions
if [ "x$(id -u)" != 'x0' ]; then
check_result 1 "Script can be run executed only by root"
@ -260,16 +253,18 @@ if [ ! -e '/usr/bin/wget' ]; then
fi
# Checking repository availability
wget -q "$vestacp/GPG.txt" -O /dev/null
wget -q "c.vestacp.com/GPG.txt" -O /dev/null
check_result $? "No access to Vesta repository"
# Checking installed packages
tmpfile=$(mktemp -p /tmp)
rpm -qa > $tmpfile
for pkg in exim mysql-server httpd nginx vesta; do
if [ ! -z "$(grep $pkg $tmpfile)" ]; then
conflicts="$pkg $conflicts"
fi
done
rm -f $tmpfile
if [ ! -z "$conflicts" ] && [ -z "$force" ]; then
echo '!!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!!'
echo
@ -290,7 +285,7 @@ fi
# Brief Info #
#----------------------------------------------------------#
# Printing nice ascii as logo
# Printing nice ASCII logo
clear
echo
echo ' _| _| _|_|_|_| _|_|_| _|_|_|_|_| _|_|'
@ -302,7 +297,7 @@ echo
echo ' Vesta Control Panel'
echo -e "\n\n"
echo 'Following software will be installed on your system:'
echo 'The following software will be installed on your system:'
# Web stack
if [ "$nginx" = 'yes' ]; then
@ -323,16 +318,16 @@ if [ "$named" = 'yes' ]; then
echo ' - Bind DNS Server'
fi
# Mail Stack
# Mail stack
if [ "$exim" = 'yes' ]; then
echo -n ' - Exim mail server'
echo -n ' - Exim Mail Server'
if [ "$clamd" = 'yes' ] || [ "$spamd" = 'yes' ] ; then
echo -n ' + '
if [ "$clamd" = 'yes' ]; then
echo -n 'Antivirus '
echo -n 'ClamAV '
fi
if [ "$spamd" = 'yes' ]; then
echo -n 'Antispam'
echo -n 'SpamAssassin'
fi
fi
echo
@ -341,9 +336,9 @@ if [ "$exim" = 'yes' ]; then
fi
fi
# DB stack
# Database stack
if [ "$mysql" = 'yes' ]; then
if [ $release = 7 ]; then
if [ $release -ge 7 ]; then
echo ' - MariaDB Database Server'
else
echo ' - MySQL Database Server'
@ -393,7 +388,7 @@ if [ "$interactive" = 'yes' ]; then
# Asking to set FQDN hostname
if [ -z "$servername" ]; then
read -p "Please enter FQDN hostname [$(hostname)]: " servername
read -p "Please enter FQDN hostname [$(hostname -f)]: " servername
fi
fi
@ -448,10 +443,10 @@ fi
#----------------------------------------------------------#
# Install repositories #
# Install repository #
#----------------------------------------------------------#
# Updating system packages
# Updating system
yum -y update
check_result $? 'yum update failed'
@ -460,8 +455,8 @@ yum install epel-release -y
check_result $? "Can't install EPEL repository"
# Installing Remi repository
if [ "$remi" = 'yes' ]; then
rpm -Uvh --force $vestacp/remi-release.rpm
if [ "$remi" = 'yes' ] && [ ! -e "/etc/yum.repos.d/remi.repo" ]; then
rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-$release.rpm
check_result $? "Can't install REMI repository"
sed -i "s/enabled=0/enabled=1/g" /etc/yum.repos.d/remi.repo
fi
@ -482,7 +477,7 @@ echo "baseurl=http://$RHOST/$REPO/$release/\$basearch/" >> $vrepo
echo "enabled=1" >> $vrepo
echo "gpgcheck=1" >> $vrepo
echo "gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-VESTA" >> $vrepo
wget $vestacp/GPG.txt -O /etc/pki/rpm-gpg/RPM-GPG-KEY-VESTA
wget c.vestacp.com/GPG.txt -O /etc/pki/rpm-gpg/RPM-GPG-KEY-VESTA
#----------------------------------------------------------#
@ -495,53 +490,53 @@ cd $vst_backups
mkdir nginx httpd php php-fpm vsftpd proftpd named exim dovecot clamd \
spamassassin mysql postgresql mongodb vesta
# Backing up Nginx configuration
# Backup Nginx configuration
service nginx stop > /dev/null 2>&1
cp -r /etc/nginx/* $vst_backups/nginx > /dev/null 2>&1
# Backing up Apache configuration
# Backup Apache configuration
service httpd stop > /dev/null 2>&1
cp -r /etc/httpd/* $vst_backups/httpd > /dev/null 2>&1
# Backing up PHP configuration
# Backup PHP-FPM configuration
service php-fpm stop >/dev/null 2>&1
cp /etc/php.ini $vst_backups/php > /dev/null 2>&1
cp -r /etc/php.d $vst_backups/php > /dev/null 2>&1
cp /etc/php-fpm.conf $vst_backups/php-fpm > /dev/null 2>&1
mv -f /etc/php-fpm.d/* $vst_backups/php-fpm/ > /dev/null 2>&1
# Backing up Bind configuration
# Backup Bind configuration
yum remove bind-chroot > /dev/null 2>&1
service named stop > /dev/null 2>&1
cp /etc/named.conf $vst_backups/named >/dev/null 2>&1
# Backing up Vsftpd configuration
# Backup Vsftpd configuration
service vsftpd stop > /dev/null 2>&1
cp /etc/vsftpd/vsftpd.conf $vst_backups/vsftpd >/dev/null 2>&1
# Backing up ProFTPD configuration
# Backup ProFTPD configuration
service proftpd stop > /dev/null 2>&1
cp /etc/proftpd.conf $vst_backups/proftpd >/dev/null 2>&1
# Backing up Exim configuration
# Backup Exim configuration
service exim stop > /dev/null 2>&1
cp -r /etc/exim/* $vst_backups/exim >/dev/null 2>&1
# Backing up ClamAV configuration
# Backup ClamAV configuration
service clamd stop > /dev/null 2>&1
cp /etc/clamd.conf $vst_backups/clamd >/dev/null 2>&1
cp -r /etc/clamd.d $vst_backups/clamd >/dev/null 2>&1
# Backing up SpamAssassin configuration
# Backup SpamAssassin configuration
service spamassassin stop > /dev/null 2>&1
cp -r /etc/mail/spamassassin/* $vst_backups/spamassassin >/dev/null 2>&1
# Backing up Dovecot configuration
# Backup Dovecot configuration
service dovecot stop > /dev/null 2>&1
cp /etc/dovecot.conf $vst_backups/dovecot > /dev/null 2>&1
cp -r /etc/dovecot/* $vst_backups/dovecot > /dev/null 2>&1
# Backing up MySQL/MariaDB configuration and data
# Backup MySQL/MariaDB configuration and data
service mysql stop > /dev/null 2>&1
service mysqld stop > /dev/null 2>&1
service mariadb stop > /dev/null 2>&1
@ -550,18 +545,18 @@ cp /etc/my.cnf $vst_backups/mysql > /dev/null 2>&1
cp /etc/my.cnf.d $vst_backups/mysql > /dev/null 2>&1
mv /root/.my.cnf $vst_backups/mysql > /dev/null 2>&1
# Backing up MySQL/MariaDB configuration and data
# Backup MySQL/MariaDB configuration and data
service postgresql stop > /dev/null 2>&1
mv /var/lib/pgsql/data $vst_backups/postgresql/ >/dev/null 2>&1
# Backing up Vesta configuration and data
# Backup Vesta
service vesta stop > /dev/null 2>&1
mv $VESTA/data/* $vst_backups/vesta > /dev/null 2>&1
mv $VESTA/conf/* $vst_backups/vesta > /dev/null 2>&1
#----------------------------------------------------------#
# Package Exludes #
# Package Excludes #
#----------------------------------------------------------#
# Excluding packages
@ -636,17 +631,17 @@ fi
#----------------------------------------------------------#
# Installing rpm packages
#if [ "$remi" = 'yes' ]; then
# yum -y --disablerepo=* \
# --enablerepo="*base,*updates,nginx,epel,vesta,remi*" \
# install $software
#else
# yum -y --disablerepo=* --enablerepo="*base,*updates,nginx,epel,vesta" \
# install $software
#fi
# Temporary fix for centos vault issue
yum install $software
yum install -y $software
if [ $? -ne 0 ]; then
if [ "$remi" = 'yes' ]; then
yum -y --disablerepo=* \
--enablerepo="*base,*updates,nginx,epel,vesta,remi*" \
install $software
else
yum -y --disablerepo=* --enablerepo="*base,*updates,nginx,epel,vesta" \
install $software
fi
fi
check_result $? "yum install failed"
@ -674,7 +669,7 @@ if [ -e '/etc/sysconfig/selinux' ]; then
setenforce 0 2>/dev/null
fi
# Disable iptables
# Disablng iptables
service iptables stop
# Configuring NTP synchronization
@ -691,7 +686,7 @@ adduser backup 2>/dev/null
ln -sf /home/backup /backup
chmod a+x /backup
# Chaning default directory color
# Set directory color
echo 'LS_COLORS="$LS_COLORS:di=00;33"' >> /etc/profile
# Changing default systemd interval
@ -707,9 +702,9 @@ fi
# Configure VESTA #
#----------------------------------------------------------#
# Downlading sudo configuration
# Installing sudo configuration
mkdir -p /etc/sudoers.d
wget $vestacp/sudo/admin -O /etc/sudoers.d/admin
cp -f $vestacp/sudo/admin /etc/sudoers.d/
chmod 440 /etc/sudoers.d/admin
# Configuring system env
@ -721,9 +716,9 @@ echo 'export PATH' >> /root/.bash_profile
source /root/.bash_profile
# Configuring logrotate for vesta logs
wget $vestacp/logrotate/vesta -O /etc/logrotate.d/vesta
cp -f $vestacp/logrotate/vesta /etc/logrotate.d/
# Buidling directory tree and creating some blank files for vesta
# Building directory tree and creating some blank files for Vesta
mkdir -p $VESTA/conf $VESTA/log $VESTA/ssl $VESTA/data/ips \
$VESTA/data/queue $VESTA/data/users $VESTA/data/firewall \
$VESTA/data/sessions
@ -737,14 +732,13 @@ chmod 660 $VESTA/log/*
rm -f /var/log/vesta
ln -s $VESTA/log /var/log/vesta
chmod 770 $VESTA/data/sessions
chown admin:admin $VESTA/data/sessions
# Generating vesta configuration
# Generating Vesta configuration
rm -f $VESTA/conf/vesta.conf 2>/dev/null
touch $VESTA/conf/vesta.conf
chmod 660 $VESTA/conf/vesta.conf
# WEB stack
# Web stack
if [ "$apache" = 'yes' ] && [ "$nginx" = 'no' ] ; then
echo "WEB_SYSTEM='httpd'" >> $VESTA/conf/vesta.conf
echo "WEB_RGROUPS='apache'" >> $VESTA/conf/vesta.conf
@ -802,7 +796,7 @@ if [ "$exim" = 'yes' ]; then
fi
fi
# CRON daemon
# Cron daemon
echo "CRON_SYSTEM='crond'" >> $VESTA/conf/vesta.conf
# Firewall stack
@ -827,26 +821,18 @@ echo "LANGUAGE='$lang'" >> $VESTA/conf/vesta.conf
# Version
echo "VERSION='0.9.8'" >> $VESTA/conf/vesta.conf
# Downloading hosting packages
cd $VESTA/data
wget $vestacp/packages.tar.gz -O packages.tar.gz
tar -xzf packages.tar.gz
rm -f packages.tar.gz
# Installing hosting packages
cp -rf $vestacp/packages $VESTA/data/
# Downloading templates
wget $vestacp/templates.tar.gz -O templates.tar.gz
tar -xzf templates.tar.gz
rm -f templates.tar.gz
# Installing templates
cp -rf $vestacp/templates $VESTA/data/
# Copying index.html to default documentroot
cp templates/web/skel/public_html/index.html /var/www/html/
cp $VESTA/data/templates/web/skel/public_html/index.html /var/www/html/
sed -i 's/%domain%/It worked!/g' /var/www/html/index.html
# Downloading firewall rules
chkconfig firewalld off >/dev/null 2>&1
wget $vestacp/firewall.tar.gz -O firewall.tar.gz
tar -xzf firewall.tar.gz
rm -f firewall.tar.gz
# Installing firewall rules
cp -rf $vestacp/firewall $VESTA/data/
# Configuring server hostname
$VESTA/bin/v-change-sys-hostname $servername 2>/dev/null
@ -875,16 +861,16 @@ rm /tmp/vst.pem
if [ "$nginx" = 'yes' ]; then
rm -f /etc/nginx/conf.d/*.conf
wget $vestacp/nginx/nginx.conf -O /etc/nginx/nginx.conf
wget $vestacp/nginx/status.conf -O /etc/nginx/conf.d/status.conf
wget $vestacp/nginx/phpmyadmin.inc -O /etc/nginx/conf.d/phpmyadmin.inc
wget $vestacp/nginx/phppgadmin.inc -O /etc/nginx/conf.d/phppgadmin.inc
wget $vestacp/nginx/webmail.inc -O /etc/nginx/conf.d/webmail.inc
wget $vestacp/logrotate/nginx -O /etc/logrotate.d/nginx
cp -f $vestacp/nginx/nginx.conf /etc/nginx/
cp -f $vestacp/nginx/status.conf /etc/nginx/conf.d/
cp -f $vestacp/nginx/phpmyadmin.inc /etc/nginx/conf.d/
cp -f $vestacp/nginx/phppgadmin.inc /etc/nginx/conf.d/
cp -f $vestacp/nginx/webmail.inc /etc/nginx/conf.d/
cp -f $vestacp/logrotate/nginx /etc/logrotate.d/
echo > /etc/nginx/conf.d/vesta.conf
mkdir -p /var/log/nginx/domains
if [ "$release" -eq 7 ]; then
mkdir /etc/systemd/system/nginx.service.d
if [ "$release" -ge 7 ]; then
mkdir -p /etc/systemd/system/nginx.service.d
cd /etc/systemd/system/nginx.service.d
echo "[Service]" > limits.conf
echo "LimitNOFILE=500000" >> limits.conf
@ -894,7 +880,7 @@ if [ "$nginx" = 'yes' ]; then
check_result $? "nginx start failed"
# Workaround for OpenVZ/Virtuozzo
if [ "$release" -eq '7' ] && [ -e "/proc/vz/veinfo" ]; then
if [ "$release" -ge '7' ] && [ -e "/proc/vz/veinfo" ]; then
echo "#Vesta: workraround for networkmanager" >> /etc/rc.local
echo "sleep 3 && service nginx restart" >> /etc/rc.local
fi
@ -906,29 +892,30 @@ fi
#----------------------------------------------------------#
if [ "$apache" = 'yes' ]; then
cd /etc/httpd
wget $vestacp/httpd/httpd.conf -O conf/httpd.conf
wget $vestacp/httpd/status.conf -O conf.d/status.conf
wget $vestacp/httpd/ssl.conf -O conf.d/ssl.conf
wget $vestacp/httpd/ruid2.conf -O conf.d/ruid2.conf
wget $vestacp/logrotate/httpd -O /etc/logrotate.d/httpd
if [ $release -ne 7 ]; then
echo "MEFaccept 127.0.0.1" >> conf.d/mod_extract_forwarded.conf
echo > conf.d/proxy_ajp.conf
cp -f $vestacp/httpd/httpd.conf /etc/httpd/conf/
cp -f $vestacp/httpd/status.conf /etc/httpd/conf.d/
cp -f $vestacp/httpd/ssl.conf /etc/httpd/conf.d/
cp -f $vestacp/httpd/ruid2.conf /etc/httpd/conf.d/
cp -f $vestacp/logrotate/httpd /etc/logrotate.d/
if [ $release -lt 7 ]; then
cd /etc/httpd/conf.d
echo "MEFaccept 127.0.0.1" >> mod_extract_forwarded.conf
echo > proxy_ajp.conf
fi
if [ -e "conf.modules.d/00-dav.conf" ]; then
sed -i "s/^/#/" conf.modules.d/00-dav.conf conf.modules.d/00-lua.conf
sed -i "s/^/#/" conf.modules.d/00-proxy.conf
if [ -e "/etc/httpd/conf.modules.d/00-dav.conf" ]; then
sed -i "s/^/#/" /etc/httpd/conf.modules.d/00-dav.conf
sed -i "s/^/#/" /etc/httpd/conf.modules.d/00-lua.conf
sed -i "s/^/#/" /etc/httpd/conf.modules.d/00-proxy.conf
fi
echo > conf.d/vesta.conf
touch logs/access_log logs/error_log logs/error_log logs/suexec.log
chmod 640 logs/access_log logs/error_log logs/error_log logs/suexec.log
echo > /etc/httpd/conf.d/vesta.conf
touch /etc/httpd/logs/access_log /etc/httpd/logs/error_log
chmod 640 /etc/httpd/logs/access_log /etc/httpd/logs/error_log
chmod -f 777 /var/lib/php/session
chmod a+x /var/log/httpd
mkdir -p /var/log/httpd/domains
chmod 751 /var/log/httpd/domains
if [ "$release" -eq 7 ]; then
mkdir /etc/systemd/system/httpd.service.d
if [ "$release" -ge 7 ]; then
mkdir -p /etc/systemd/system/httpd.service.d
cd /etc/systemd/system/httpd.service.d
echo "[Service]" > limits.conf
echo "LimitNOFILE=500000" >> limits.conf
@ -938,7 +925,7 @@ if [ "$apache" = 'yes' ]; then
check_result $? "httpd start failed"
# Workaround for OpenVZ/Virtuozzo
if [ "$release" -eq '7' ] && [ -e "/proc/vz/veinfo" ]; then
if [ "$release" -ge '7' ] && [ -e "/proc/vz/veinfo" ]; then
echo "#Vesta: workraround for networkmanager" >> /etc/rc.local
echo "sleep 2 && service httpd restart" >> /etc/rc.local
fi
@ -950,7 +937,7 @@ fi
#----------------------------------------------------------#
if [ "$phpfpm" = 'yes' ]; then
wget $vestacp/php-fpm/www.conf -O /etc/php-fpm.d/www.conf
cp -f $vestacp/php-fpm/www.conf /etc/php-fpm.d/
chkconfig php-fpm on
service php-fpm start
check_result $? "php-fpm start failed"
@ -975,17 +962,14 @@ done
#----------------------------------------------------------#
# Configure VSFTPD #
# Configure Vsftpd #
#----------------------------------------------------------#
if [ "$vsftpd" = 'yes' ]; then
wget $vestacp/vsftpd/vsftpd.conf -O /etc/vsftpd/vsftpd.conf
cp -f $vestacp/vsftpd/vsftpd.conf /etc/vsftpd/
chkconfig vsftpd on
service vsftpd start
check_result $? "vsftpd start failed"
# To be deleted after release 0.9.8-18
echo "/sbin/nologin" >> /etc/shells
fi
@ -994,7 +978,7 @@ fi
#----------------------------------------------------------#
if [ "$proftpd" = 'yes' ]; then
wget $vestacp/proftpd/proftpd.conf -O /etc/proftpd.conf
cp -f $vestacp/proftpd/proftpd.conf /etc/
chkconfig proftpd on
service proftpd start
check_result $? "proftpd start failed"
@ -1019,13 +1003,13 @@ if [ "$mysql" = 'yes' ]; then
chown mysql:mysql /var/lib/mysql
mkdir -p /etc/my.cnf.d
if [ $release -ne 7 ]; then
if [ $release -lt 7 ]; then
service='mysqld'
else
service='mariadb'
fi
wget $vestacp/$service/$mycnf -O /etc/my.cnf
cp -f $vestacp/$service/$mycnf /etc/my.cnf
chkconfig $service on
service $service start
if [ "$?" -ne 0 ]; then
@ -1049,9 +1033,9 @@ if [ "$mysql" = 'yes' ]; then
# Configuring phpMyAdmin
if [ "$apache" = 'yes' ]; then
wget $vestacp/pma/phpMyAdmin.conf -O /etc/httpd/conf.d/phpMyAdmin.conf
cp -f $vestacp/pma/phpMyAdmin.conf /etc/httpd/conf.d/
fi
wget $vestacp/pma/config.inc.conf -O /etc/phpMyAdmin/config.inc.php
cp -f $vestacp/pma/config.inc.conf /etc/phpMyAdmin/
sed -i "s/%blowfish_secret%/$(gen_pass)/g" /etc/phpMyAdmin/config.inc.php
fi
@ -1061,23 +1045,23 @@ fi
#----------------------------------------------------------#
if [ "$postgresql" = 'yes' ]; then
if [ $release = 5 ]; then
if [ $release -eq 5 ]; then
service postgresql start
sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD '$vpass'"
service postgresql stop
wget $vestacp/postgresql/pg_hba.conf -O /var/lib/pgsql/data/pg_hba.conf
cp -f $vestacp/postgresql/pg_hba.conf /var/lib/pgsql/data/
service postgresql start
else
service postgresql initdb
wget $vestacp/postgresql/pg_hba.conf -O /var/lib/pgsql/data/pg_hba.conf
cp -f $vestacp/postgresql/pg_hba.conf /var/lib/pgsql/data/
service postgresql start
sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD '$vpass'"
fi
# Configuring phpPgAdmin
if [ "$apache" = 'yes' ]; then
wget $vestacp/pga/phpPgAdmin.conf -O /etc/httpd/conf.d/phpPgAdmin.conf
cp -f $vestacp/pga/phpPgAdmin.conf /etc/httpd/conf.d/
fi
wget $vestacp/pga/config.inc.php -O /etc/phpPgAdmin/config.inc.php
cp -f $vestacp/pga/config.inc.php /etc/phpPgAdmin/
fi
@ -1086,7 +1070,7 @@ fi
#----------------------------------------------------------#
if [ "$named" = 'yes' ]; then
wget $vestacp/named/named.conf -O /etc/named.conf
cp -f $vestacp/named/named.conf /etc/
chown root:named /etc/named.conf
chmod 640 /etc/named.conf
chkconfig named on
@ -1101,9 +1085,9 @@ fi
if [ "$exim" = 'yes' ]; then
gpasswd -a exim mail
wget $vestacp/exim/exim.conf -O /etc/exim/exim.conf
wget $vestacp/exim/dnsbl.conf -O /etc/exim/dnsbl.conf
wget $vestacp/exim/spam-blocks.conf -O /etc/exim/spam-blocks.conf
cp -f $vestacp/exim/exim.conf /etc/exim/
cp -f $vestacp/exim/dnsbl.conf /etc/exim/
cp -f $vestacp/exim/spam-blocks.conf /etc/exim/
touch /etc/exim/white-blocks.conf
if [ "$spamd" = 'yes' ]; then
@ -1136,12 +1120,8 @@ fi
if [ "$dovecot" = 'yes' ]; then
gpasswd -a dovecot mail
wget $vestacp/dovecot.tar.gz -O /etc/dovecot.tar.gz
wget $vestacp/logrotate/dovecot -O /etc/logrotate.d/dovecot
cd /etc
rm -rf dovecot dovecot.conf
tar -xzf dovecot.tar.gz
rm -f dovecot.tar.gz
cp -rf $vestacp/dovecot /etc/
cp -f $vestacp/logrotate/dovecot /etc/logrotate.d/
chown -R root:root /etc/dovecot*
chkconfig dovecot on
service dovecot start
@ -1157,19 +1137,17 @@ if [ "$clamd" = 'yes' ]; then
useradd clam -s /sbin/nologin -d /var/lib/clamav 2>/dev/null
gpasswd -a clam exim
gpasswd -a clam mail
wget $vestacp/clamav/clamd.conf -O /etc/clamd.conf
wget $vestacp/clamav/freshclam.conf -O /etc/freshclam.conf
mkdir -p /var/log/clamav
mkdir -p /var/run/clamav
cp -f $vestacp/clamav/clamd.conf /etc/
cp -f $vestacp/clamav/freshclam.conf /etc/
mkdir -p /var/log/clamav /var/run/clamav
chown clam:clam /var/log/clamav /var/run/clamav
chown -R clam:clam /var/lib/clamav
if [ "$release" -eq '7' ]; then
wget $vestacp/clamav/clamd.service -O \
/usr/lib/systemd/system/clamd.service
if [ "$release" -ge '7' ]; then
cp -f $vestacp/clamav/clamd.service /usr/lib/systemd/system/
systemctl --system daemon-reload
fi
/usr/bin/freshclam
if [ "$release" -eq '7' ]; then
if [ "$release" -ge '7' ]; then
sed -i "s/nofork/foreground/" /usr/lib/systemd/system/clamd.service
systemctl daemon-reload
fi
@ -1187,7 +1165,7 @@ if [ "$spamd" = 'yes' ]; then
chkconfig spamassassin on
service spamassassin start
check_result $? "spamassassin start failed"
if [ "$release" -eq '7' ]; then
if [ "$release" -ge '7' ]; then
groupadd -g 1001 spamd
useradd -u 1001 -g spamd -s /sbin/nologin -d \
/var/lib/spamassassin spamd
@ -1203,15 +1181,13 @@ fi
if [ "$exim" = 'yes' ] && [ "$mysql" = 'yes' ]; then
if [ "$apache" = 'yes' ]; then
wget $vestacp/roundcube/roundcubemail.conf \
-O /etc/httpd/conf.d/roundcubemail.conf
cp -f $vestacp/roundcube/roundcubemail.conf /etc/httpd/conf.d/
fi
wget $vestacp/roundcube/main.inc.php -O /etc/roundcubemail/config.inc.php
cp -f $vestacp/roundcube/main.inc.php /etc/roundcubemail/config.inc.php
cd /usr/share/roundcubemail/plugins/password
wget $vestacp/roundcube/vesta.php -O drivers/vesta.php
wget $vestacp/roundcube/config.inc.php -O config.inc.php
sed -i "s/localhost/$servername/g" \
/usr/share/roundcubemail/plugins/password/config.inc.php
cp -f $vestacp/roundcube/vesta.php drivers/vesta.php
cp -f $vestacp/roundcube/config.inc.php config.inc.php
sed -i "s/localhost/$servername/g" config.inc.php
chmod a+r /etc/roundcubemail/*
chmod -f 777 /var/log/roundcubemail
r="$(gen_pass)"
@ -1234,10 +1210,7 @@ fi
#----------------------------------------------------------#
if [ "$fail2ban" = 'yes' ]; then
cd /etc
wget $vestacp/fail2ban.tar.gz -O fail2ban.tar.gz
tar -xzf fail2ban.tar.gz
rm -f fail2ban.tar.gz
cp -rf $vestacp/fail2ban /etc/
if [ "$dovecot" = 'no' ]; then
fline=$(cat /etc/fail2ban/jail.local |grep -n dovecot-iptables -A 2)
fline=$(echo "$fline" |grep enabled |tail -n1 |cut -f 1 -d -)
@ -1256,9 +1229,9 @@ if [ "$fail2ban" = 'yes' ]; then
fline=$(cat /etc/fail2ban/jail.local |grep -n vsftpd-iptables -A 2)
fline=$(echo "$fline" |grep enabled |tail -n1 |cut -f 1 -d -)
sed -i "${fline}s/false/true/" /etc/fail2ban/jail.local
fi
fi
chkconfig fail2ban on
/bin/mkdir -p /var/run/fail2ban
mkdir -p /var/run/fail2ban
if [ -e "/usr/lib/systemd/system/fail2ban.service" ]; then
exec_pre='ExecStartPre=/bin/mkdir -p /var/run/fail2ban'
sed -i "s|\[Service\]|[Service]\n$exec_pre|g" \
@ -1286,37 +1259,38 @@ if [ ! -z "$(grep ^admin: /etc/group)" ] && [ "$force" = 'yes' ]; then
groupdel admin > /dev/null 2>&1
fi
# Adding vesta account
# Adding Vesta admin account
$VESTA/bin/v-add-user admin $vpass $email default System Administrator
check_result $? "can't create admin user"
$VESTA/bin/v-change-user-shell admin bash
$VESTA/bin/v-change-user-language admin $lang
# Configuring system ips
# Configuring system IPs
$VESTA/bin/v-update-sys-ip
# Get main ip
# Get main IP
ip=$(ip addr|grep 'inet '|grep global|head -n1|awk '{print $2}'|cut -f1 -d/)
# Firewall configuration
# Configuring firewall
if [ "$iptables" = 'yes' ]; then
$VESTA/bin/v-update-firewall
fi
# Get public ip
# Get public IP
pub_ip=$(curl -s vestacp.com/what-is-my-ip/)
if [ ! -z "$pub_ip" ] && [ "$pub_ip" != "$ip" ]; then
echo "$VESTA/bin/v-update-sys-ip" >> /etc/rc.local
$VESTA/bin/v-change-sys-ip-nat $ip $pub_ip
ip=$pub_ip
fi
# Configuring mysql host
# Configuring MySQL/MariaDB host
if [ "$mysql" = 'yes' ]; then
$VESTA/bin/v-add-database-host mysql localhost root $vpass
$VESTA/bin/v-add-database admin default default $(gen_pass) mysql
fi
# Configuring pgsql host
# Configuring PostgreSQL host
if [ "$postgresql" = 'yes' ]; then
$VESTA/bin/v-add-database-host pgsql localhost postgres $vpass
$VESTA/bin/v-add-database admin db db $(gen_pass) pgsql
@ -1324,8 +1298,8 @@ fi
# Adding default domain
$VESTA/bin/v-add-domain admin $servername
check_result $? "can't create $servername domain"
# Adding cron jobs
command="sudo $VESTA/bin/v-update-sys-queue disk"
$VESTA/bin/v-add-cron-job 'admin' '15' '02' '*' '*' '*' "$command"
command="sudo $VESTA/bin/v-update-sys-queue traffic"
@ -1342,7 +1316,7 @@ command="sudo $VESTA/bin/v-update-sys-rrd"
$VESTA/bin/v-add-cron-job 'admin' '*/5' '*' '*' '*' '*' "$command"
service crond restart
# Building initial rrd images
# Building RRD images
$VESTA/bin/v-update-sys-rrd
# Enabling file system quota
@ -1355,7 +1329,7 @@ if [ "$softaculous" = 'yes' ]; then
$VESTA/bin/v-add-vesta-softaculous
fi
# Starting vesta service
# Starting Vesta service
chkconfig vesta on
service vesta start
check_result $? "vesta start failed"
@ -1375,8 +1349,8 @@ $VESTA/bin/v-add-cron-vesta-autoupdate
# Sending install notification to vestacp.com
wget vestacp.com/notify/?$codename -O /dev/null -q
# Comparing hostname and ip
host_ip=$(host $servername| head -n 1 | awk '{print $NF}')
# Comparing hostname and IP
host_ip=$(host $servername| head -n 1 |awk '{print $NF}')
if [ "$host_ip" = "$ip" ]; then
ip="$servername"
fi