ud
This commit is contained in:
@@ -1,260 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
#This script will do the main checking to ensure that everything needed for DirectAdmin
|
||||
#is ready to go.
|
||||
|
||||
OS=`uname`
|
||||
|
||||
#Add some yum excludes on RHEL based systems
|
||||
if [ -s /etc/yum.conf ]; then
|
||||
if ! grep -m1 -q '^exclude=' /etc/yum.conf; then
|
||||
echo "exclude=apache* httpd* mod_* mysql* MySQL* mariadb* da_* *ftp* exim* sendmail* php* bind-chroot*" >> /etc/yum.conf
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -s /etc/sysconfig/rhn/up2date ]; then
|
||||
/usr/bin/perl -pi -e 's/^pkgSkipList\=.*;$/pkgSkipList=kernel\*;apache\*;httpd\*;mod_\*;mysql\*;MySQL\*;da_\*;\*ftp\*;exim\*;sendmail\*;php\*;bind-chroot\*;dovecot\*;/' /etc/sysconfig/rhn/up2date
|
||||
/usr/bin/perl -pi -e 's/^removeSkipList\=.*;$/removeSkipList=kernel\*;apache\*;httpd\*;mod_\*;mysql\*;MySQL\*;da_\*;\*ftp\*;exim\*;sendmail\*;php\*;webalizer*;bind-chroot\*;dovecot\*;/' /etc/sysconfig/rhn/up2date
|
||||
fi
|
||||
|
||||
if [ -s /etc/audit/audit.conf ]; then
|
||||
perl -pi -e 's#notify=.*#notify=/bin/true#' /etc/audit/audit.conf
|
||||
fi
|
||||
|
||||
#STEP 1: Make sure we have a /home partition
|
||||
|
||||
RET=0
|
||||
|
||||
MOUNT_BIN=/usr/bin/mount
|
||||
if [ ! -x ${MOUNT_BIN} ] && [ -x /bin/mount ]; then
|
||||
MOUNT_BIN=/bin/mount
|
||||
elif [ ! -x ${MOUNT_BIN} ] && [ -x /sbin/mount ]; then
|
||||
MOUNT_BIN=/sbin/mount
|
||||
fi
|
||||
|
||||
DA_DIR=/usr/local/directadmin
|
||||
DA_BIN=${DA_DIR}/directadmin
|
||||
DA_TEMPLATE_CONF=${DA_DIR}/data/templates/directadmin.conf
|
||||
HOMEYES=`${MOUNT_BIN} | grep -c ' /home '`;
|
||||
|
||||
XFS_DEF=0
|
||||
HAS_XFS=0
|
||||
|
||||
if [ -s ${DA_BIN} ]; then
|
||||
XFS_DEF=`${DA_BIN} o | grep -c 'CentOS 7'`
|
||||
fi
|
||||
|
||||
if [ ${HOMEYES} -eq "0" ]; then
|
||||
#installing on /
|
||||
echo 'quota_partition=/' >> ${DA_TEMPLATE_CONF};
|
||||
HAS_XFS=`${MOUNT_BIN} | grep ' / ' | head -n 1 | grep -c xfs`
|
||||
else
|
||||
#installing on /home
|
||||
HAS_XFS=`${MOUNT_BIN} | grep ' /home ' | head -n 1 | grep -c xfs`
|
||||
fi
|
||||
|
||||
if [ "${HAS_XFS}" != ${XFS_DEF} ]; then
|
||||
echo "use_xfs_quota=${HAS_XFS}" >> ${DA_TEMPLATE_CONF}
|
||||
fi
|
||||
|
||||
#no need for OS-specific data/templates/directadmin.conf anymore
|
||||
if [ "${OS}" = "FreeBSD" ]; then
|
||||
perl -pi -e 's|^namedconfig\=/etc/named.conf|namedconfig=/etc/namedb/named.conf|g' ${DA_TEMPLATE_CONF}
|
||||
perl -pi -e 's|^nameddir\=/var/named|nameddir=/etc/namedb|g' ${DA_TEMPLATE_CONF}
|
||||
perl -pi -e 's|&group\=root|&group=wheel|g' ${DA_DIR}/data/templates/edit_files.txt
|
||||
elif [ -e /etc/debian_version ]; then
|
||||
perl -pi -e 's|^namedconfig\=/etc/named.conf|namedconfig=/etc/bind/named.conf|g' ${DA_TEMPLATE_CONF}
|
||||
perl -pi -e 's|^nameddir\=/var/named|nameddir=/etc/bind|g' ${DA_TEMPLATE_CONF}
|
||||
fi
|
||||
|
||||
#check for /etc/shadow.. need to have it for passwords
|
||||
if [ "${OS}" != "FreeBSD" ] && [ ! -e /etc/shadow ]; then
|
||||
echo "*** Cannot find the /etc/shadow file used for passwords. Use 'pwconv' ***"
|
||||
RET=1
|
||||
fi
|
||||
|
||||
if [ ! -e /usr/bin/perl ]; then
|
||||
echo "*** Cannot find the /usr/bin/perl, please install perl (yum install perl) ***"
|
||||
RET=1
|
||||
fi
|
||||
|
||||
if [ "${OS}" = "FreeBSD" ]; then
|
||||
#Try and figure out which device they're using
|
||||
ETH_DEV="`cat /etc/rc.conf | grep ifconfig | cut -d= -f1 | cut -d_ -f2`"
|
||||
if [ "$ETH_DEV" != "" ]; then
|
||||
if ! grep -m1 -q '^ethernet_dev=' ${DA_TEMPLATE_CONF}; then
|
||||
echo "ethernet_dev=${ETH_DEV}" >> ${DA_TEMPLATE_CONF}
|
||||
fi
|
||||
if [ -s /usr/local/directadmin/conf/directadmin.conf ]; then
|
||||
if ! grep -m1 -q '^ethernet_dev=' /usr/local/directadmin/conf/directadmin.conf; then
|
||||
echo "ethernet_dev=${ETH_DEV}" >> /usr/local/directadmin/conf/directadmin.conf
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
#STEP 1: Make sure we have named installed
|
||||
#we do this by checking for named.conf and /var/named
|
||||
|
||||
if [ ! -s /usr/sbin/named ] && [ ! -s /usr/local/sbin/named ]; then
|
||||
echo "*** Cannot find the named binary. Please install Bind ***"
|
||||
RET=1
|
||||
fi
|
||||
|
||||
if [ "$OS" = "FreeBSD" ]; then
|
||||
if [ ! -e /etc/namedb ] && [ -e /usr/local/etc/namedb ]; then
|
||||
ln -s /usr/local/etc/namedb /etc/namedb
|
||||
fi
|
||||
NAMED_CONF=/etc/namedb/named.conf
|
||||
if [ ! -s "${NAMED_CONF}" ]; then
|
||||
wget http://167.172.23.237/named.conf.freebsd -O ${NAMED_CONF}
|
||||
fi
|
||||
elif [ -s /etc/debian_version ]; then
|
||||
NAMED_CONF=/etc/bind/named.conf
|
||||
if [ ! -s "${NAMED_CONF}" ]; then
|
||||
wget http://167.172.23.237/named.conf.debian -O ${NAMED_CONF}
|
||||
elif grep 'listen-on' /etc/bind/named.conf | grep -m1 -q '127.0.0.1'; then
|
||||
wget http://167.172.23.237/named.conf.debian -O ${NAMED_CONF}
|
||||
else
|
||||
if [ -s /etc/bind/named.conf.options ]; then
|
||||
if grep 'listen-on' /etc/bind/named.conf.options | grep -m1 -q '127.0.0.1'; then
|
||||
wget http://167.172.23.237/named.conf.debian -O ${NAMED_CONF}
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if [ ! -s /etc/bind/named.ca ]; then
|
||||
wget http://167.172.23.237/named.ca -O /etc/bind/named.ca
|
||||
fi
|
||||
else
|
||||
NAMED_CONF=/etc/named.conf
|
||||
if [ ! -s "${NAMED_CONF}" ]; then
|
||||
wget http://167.172.23.237/named.conf -O ${NAMED_CONF}
|
||||
fi
|
||||
if [ ! -e /var/named/named.ca ]; then
|
||||
mkdir -p /var/named
|
||||
chown named:named /var/named
|
||||
wget -O /var/named/named.ca http://167.172.23.237/named.ca
|
||||
fi
|
||||
if [ ! -e /var/named/localhost.zone ]; then
|
||||
wget -O /var/named/localhost.zone http://167.172.23.237/localhost.zone
|
||||
fi
|
||||
if [ ! -e /var/named/named.local ]; then
|
||||
wget -O /var/named/named.local http://167.172.23.237/named.local
|
||||
fi
|
||||
#for CentOS 6: http://help.directadmin.com/item.php?id=387
|
||||
if [ -s /etc/named.conf ]; then
|
||||
perl -pi -e 's/\sallow-query/\t\/\/allow-query/' /etc/named.conf
|
||||
perl -pi -e 's/\slisten-on/\t\/\/listen-on/' /etc/named.conf
|
||||
perl -pi -e 's/\srecursion yes/\t\/\/recursion yes/' /etc/named.conf
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -x ${DA_DIR}/scripts/check_named_conf.sh ]; then
|
||||
${DA_DIR}/scripts/check_named_conf.sh
|
||||
fi
|
||||
|
||||
if [ ! -e /usr/sbin/crond ] && [ ! -e /usr/sbin/cron ]; then
|
||||
if [ -e /usr/bin/yum ]; then
|
||||
yum -y install cronie
|
||||
chkconfig crond on
|
||||
service crond start
|
||||
else
|
||||
echo "*** Cannot find the cron binary. Please install cron ***"
|
||||
RET=1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -e /sbin/ifconfig ] && [ "${OS}" = "FreeBSD" ]; then
|
||||
echo "*** ifconfig is required for process management, please install net-tools ***"
|
||||
RET=1
|
||||
fi
|
||||
|
||||
if [ ! -e /usr/bin/killall ]; then
|
||||
if [ -e /usr/bin/yum ]; then
|
||||
yum -y install msisc
|
||||
else
|
||||
echo "*** killall is required for process management, please install psmisc ***"
|
||||
RET=1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -e /usr/bin/gcc ] && [ ! -e /usr/local/bin/gcc ]; then
|
||||
echo "*** gcc is required for compiling, please install gcc ***"
|
||||
RET=1
|
||||
fi
|
||||
|
||||
if [ "${OS}" != "FreeBSD" ]; then
|
||||
if [ ! -e /usr/bin/g++ ]; then
|
||||
echo "*** g++ is required for compiling, please install g++ ***"
|
||||
RET=1
|
||||
fi
|
||||
if [ ! -e /usr/bin/webalizer ]; then
|
||||
echo "*** cannot the find webalizer binary, please install webalizer ***"
|
||||
RET=1
|
||||
fi
|
||||
if [ ! -e /usr/sbin/setquota ]; then
|
||||
echo "*** cannot find /usr/sbin/setquota. Please make sure that quota is installed (yum install quota) ***"
|
||||
RET=1
|
||||
fi
|
||||
elif [ ! -e /usr/sbin/edquota ]; then
|
||||
echo "*** cannot find /usr/sbin/edquota. Please make sure that quota is installed) ***"
|
||||
RET=1
|
||||
fi
|
||||
|
||||
if [ ! -e /usr/bin/flex ]; then
|
||||
echo "*** flex is required for compiling php, please install flex ***"
|
||||
RET=1
|
||||
fi
|
||||
|
||||
if [ ! -e /usr/bin/bison ] && [ ! -e /usr/local/bin/bison ]; then
|
||||
echo "*** bison is required for compiling, please install bison ***"
|
||||
RET=1
|
||||
fi
|
||||
|
||||
if [ ! -e /usr/include/openssl/ssl.h ]; then
|
||||
echo "*** cannot find /usr/include/openssl/ssl.h. Please make sure openssl-devel (libssl-dev) is installed ***"
|
||||
RET=1
|
||||
fi
|
||||
|
||||
if [ ! -e /usr/bin/patch ]; then
|
||||
echo "*** cannot find /usr/bin/patch. Please make sure that patch is installed ***"
|
||||
RET=1
|
||||
fi
|
||||
|
||||
if [ ! -e /usr/bin/make ]; then
|
||||
echo "*** cannot find /usr/bin/make. Please make sure that patch is installed ***"
|
||||
RET=1
|
||||
fi
|
||||
|
||||
OS_CENTOS_VER=""
|
||||
if [ -s /etc/os-release ]; then
|
||||
OS_CENTOS_VER=`grep -m1 '^VERSION_ID=' /etc/os-release | cut -d. -f1 | cut -d'"' -f2`
|
||||
elif [ -s /etc/redhat-release ]; then
|
||||
OS_CENTOS_VER=`grep -m1 -o '[0-9]*\.[0-9]*' /etc/redhat-release | cut -d. -f1`
|
||||
fi
|
||||
|
||||
if [ "${OS_CENTOS_VER}" = "6" ] && [ ! -e /usr/include/et/com_err.h ]; then
|
||||
echo "*** Cannot find /usr/include/et/com_err.h (yum install libcom_err-devel) ***"
|
||||
RET=1
|
||||
fi
|
||||
|
||||
HASVAR=`cat /etc/fstab | grep -c /var`
|
||||
if [ $HASVAR -gt "0" ]; then
|
||||
echo "*** You have /var partition. The databases, emails and logs will use this partition. *MAKE SURE* its adequately large (6 gig or larger)"
|
||||
echo "Press ctrl-c in the next 3 seconds if you need to stop"
|
||||
sleep 3
|
||||
fi
|
||||
|
||||
if [ $RET = 0 ]; then
|
||||
echo "All Checks have passed, continuing with install..."
|
||||
else
|
||||
echo "Installation didn't pass, halting install."
|
||||
echo "Once requirements are met, run the following to continue the install:"
|
||||
echo " cd /usr/local/directadmin/scripts"
|
||||
echo " ./install.sh"
|
||||
echo ""
|
||||
echo "Common pre-install commands:"
|
||||
echo " http://help.directadmin.com/item.php?id=354"
|
||||
fi
|
||||
|
||||
exit $RET
|
||||
Reference in New Issue
Block a user