heroes1412

Directadmin 1.43.0 Nulled | Crack

Sep 10th, 2017
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 40.36 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. ###############################################################################
  4. # setup.sh
  5. # DirectAdmin  setup.sh  file  is  the  first  file  to  download  when doing a
  6. # DirectAdmin Install.   It  will  ask  you  for  relevant information and will
  7. # download  all  required  files.   If  you  are unable to run this script with
  8. # ./setup.sh  then  you probably need to set it's permissions.  You can do this
  9. # by typing the following:
  10. #
  11. # chmod 755 setup.sh
  12. #
  13. # after this has been done, you can type ./setup.sh to run the script.
  14. #
  15. ###############################################################################
  16.  
  17. OS=`uname`;
  18.  
  19. ADMIN_USER=admin
  20. DB_USER=da_admin
  21. ADMIN_PASS=`perl -le'print map+(A..Z,a..z,0..9)[rand 62],0..7'`;
  22. DB_ROOT_PASS=`perl -le'print map+(A..Z,a..z,0..9)[rand 62],0..7'`;
  23.  
  24. FTP_HOST=files.directadmin.com
  25. if [ "$OS" = "FreeBSD" ]; then
  26.     WGET_PATH=/usr/local/bin/wget
  27. else
  28.     WGET_PATH=/usr/bin/wget
  29. fi
  30.  
  31. WGET_OPTION="";
  32. COUNT=`$WGET_PATH --help | grep -c no-check-certificate`
  33. if [ "$COUNT" -ne 0 ]; then
  34.     WGET_OPTION="--no-check-certificate";
  35. fi
  36.  
  37. #WGET_10=`$WGET_PATH -V 2>/dev/null | head -n1 | grep -c 1.10`
  38. #WGET_OPTION="";
  39. #if [ $WGET_10 -eq 1 ]; then
  40. #   WGET_OPTION="--no-check-certificate";
  41. #fi
  42.  
  43.  
  44. CID=0;
  45. LID=0;
  46. HOST=`hostname`;
  47. CMD_LINE=0;
  48. ETH_DEV=eth0;
  49. IP=0
  50.  
  51. if [ $# -gt 0 ]; then
  52. case "$1" in
  53.     --help|help|\?|-\?|h)
  54.         echo "";
  55.         echo "Usage: $0";
  56.         echo "";
  57.         echo "or";
  58.         echo "";
  59.         echo "Usage: $0 <uid> <lid> <hostname> <ethernet_dev> (<ip>)";
  60.         echo "          <uid> : Your Client ID";
  61.         echo "          <lid> : Your License ID";
  62.         echo "     <hostname> : Your server's hostname (FQDN)";
  63.         echo " <ethernet_dev> : Your ethernet device with the server IP";
  64.         echo "           <ip> : Optional.  Use to override the IP in <ethernet_dev>";
  65.         echo "";
  66.         echo "";
  67.         echo "Common pre-install commands:";
  68.         echo " http://help.directadmin.com/item.php?id=354";
  69.         exit 0;
  70.         ;;
  71. esac
  72.     CID=$1;
  73.     LID=$2;
  74.     HOST=$3;
  75.     if [ $# -lt 4 ]; then
  76.         $0 --help
  77.         exit 56;
  78.     fi
  79.  
  80.     ETH_DEV=$4;
  81.     CMD_LINE=1;
  82.     if [ $# -gt 4 ]; then
  83.         IP=$5;
  84.     fi
  85. fi
  86.  
  87. B64=0
  88. if [ "$OS" = "FreeBSD" ]; then
  89.     B64=`uname -m | grep -c 64`
  90.  
  91.     if [ "$B64" -gt 0 ]; then
  92.         echo "*** 64-bit OS ***";
  93.         echo "*** that being said, this should be a FreeBSD 7, 8 or 9 system. ***";
  94.         sleep 2;
  95.         B64=1
  96.     fi
  97. else
  98.     B64=`uname -m | grep -c 64`
  99.     if [ "$B64" -gt 0 ]; then
  100.         echo "*** 64-bit OS ***";
  101.         echo "";
  102.         sleep 2;
  103.         B64=1
  104.     fi
  105. fi
  106.  
  107. if [ -e /usr/local/directadmin ]; then
  108.     echo "";
  109.     echo "";
  110.     echo "*** DirectAdmin already exists ***";
  111.     echo "    Press Ctrl-C within the next 10 seconds to cancel the install";
  112.     echo "    Else, wait, and the install will continue, but will destroy existing data";
  113.     echo "";
  114.     echo "";
  115.     sleep 10;
  116. fi
  117.  
  118. if [ -e /usr/local/cpanel ]; then
  119.         echo "";
  120.         echo "";
  121.         echo "*** CPanel exists on this system ***";
  122.         echo "    Press Ctrl-C within the next 10 seconds to cancel the install";
  123.         echo "    Else, wait, and the install will continue overtop (as best it can)";
  124.         echo "";
  125.         echo "";
  126.         sleep 10;
  127. fi
  128.  
  129. OS_VER=;
  130.  
  131. REDHAT_RELEASE=/etc/redhat-release
  132. DEBIAN_VERSION=/etc/debian_version
  133. DA_PATH=/usr/local/directadmin
  134. CB_OPTIONS=${DA_PATH}/custombuild/options.conf
  135. SCRIPTS_PATH=$DA_PATH/scripts
  136. PACKAGES=$SCRIPTS_PATH/packages
  137. SETUP=$SCRIPTS_PATH/setup.txt
  138.  
  139. SERVER=http://files.directadmin.com/services
  140.  
  141. if [ $OS = "FreeBSD" ]; then
  142.     OS_VER=`uname -r | cut -d- -f1`
  143. elif [ -e /etc/fedora-release ]; then
  144.     OS=fedora
  145.     OS_VER=`cat /etc/fedora-release | cut -d\  -f4`
  146.     if [ "$OS_VER" = "(Moonshine)" ]; then
  147.         OS_VER=`cat /etc/fedora-release | cut -d\  -f3`
  148.     fi
  149.         if [ "$OS_VER" = "(Werewolf)" ]; then
  150.                 OS_VER=`cat /etc/fedora-release | cut -d\  -f3`
  151.         fi
  152.         if [ "$OS_VER" = "(Sulphur)" ]; then
  153.                 OS_VER=`cat /etc/fedora-release | cut -d\  -f3`
  154.         fi
  155. elif [ -e /etc/whitebox-release ]; then
  156.     if [ ! -e /etc/redhat-release ]; then
  157.         ln -s /etc/whitebox-release /etc/redhat-release
  158.     fi
  159.     OS_VER=`cat /etc/redhat-release | cut -d\  -f5`
  160. elif [ -e $DEBIAN_VERSION ]; then
  161.     OS=debian
  162.     OS_VER=`cat $DEBIAN_VERSION | head -n1`
  163.     if [ "$OS_VER" = "testing/unstable" ]; then
  164.         OS_VER=3.1
  165.     fi
  166.     if [ "$OS_VER" = "lenny/sid" ]; then
  167.         OS_VER=5.0
  168.     fi
  169.     if [ "$OS_VER" = "squeeze/sid" ]; then
  170.         OS_VER=6.0
  171.         #should be 6.0, but used to be 5.
  172.     fi
  173.     if [ "$OS_VER" = "wheezy/sid" ]; then
  174.         OS_VER=6.0
  175.         echo "";
  176.         echo "********************************************************************************************";
  177.         echo "";
  178.         echo "This is debian wheezy/unstable, which is debian 7 beta, which we do not yet support.";
  179.         echo "please install debian 6.x instead";
  180.         echo "";
  181.         echo "See debian releases:";
  182.         echo "  http://www.debian.org/releases/";
  183.         echo "";
  184.         exit 99;
  185.     fi
  186. else
  187.     OS_VER=`cat /etc/redhat-release | cut -d\  -f5`
  188. fi
  189.  
  190. if [ "$OS_VER" = "release" ]; then
  191.     OS=Enterprise
  192.     OS_VER=`cat /etc/redhat-release | cut -d\  -f6`
  193. elif [ "$OS_VER" = "ES" ]; then
  194.     OS=Enterprise
  195.     OS_VER=`cat /etc/redhat-release | cut -d\  -f7`
  196. elif [ "$OS_VER" = "WS" ]; then
  197.     OS=Enterprise
  198.     OS_VER=`cat /etc/redhat-release | cut -d\  -f7`
  199. elif [ "$OS_VER" = "AS" ]; then
  200.     OS=Enterprise
  201.     OS_VER=`cat /etc/redhat-release | cut -d\  -f7`
  202. elif [ "$OS_VER" = "Server" ]; then
  203.     OS=Enterprise
  204.     OS_VER=`cat /etc/redhat-release | cut -d\  -f7`
  205. elif [ "`cat /etc/redhat-release 2>/dev/null| cut -d\  -f1`" = "CentOS" ]; then
  206.     OS=Enterprise
  207.     OS_VER=`cat /etc/redhat-release |cut -d\  -f3`;
  208.     if [ "$OS_VER" = "release" ]; then
  209.         OS_VER=`cat /etc/redhat-release | cut -d\  -f4`
  210.     fi
  211. elif [ "`cat /etc/redhat-release 2>/dev/null| cut -d\  -f3`" = "Enterprise" ]; then
  212.     OS=Enterprise
  213.     OS_VER=`cat /etc/redhat-release 2>/dev/null| cut -d\  -f7`
  214. elif [ "`cat /etc/redhat-release 2>/dev/null| cut -d\  -f1`" = "CloudLinux" ]; then
  215.     OS=Enterprise
  216.     OS_VER=`cat /etc/redhat-release 2>/dev/null| cut -d\  -f4`
  217. fi
  218.  
  219. # Get the services file name:
  220. # services72.tar.gz
  221. # services73.tar.gz
  222. # services80.tar.gz
  223. # services90.tar.gz
  224. # services_freebsd48.tar.gz
  225.  
  226. SERVICES="";
  227.  
  228. if [ "$OS" = "fedora" ]; then
  229.  
  230.     case "$OS_VER" in
  231.             1|1.90) SERVICES=services_fedora1.tar.gz
  232.                     ;;
  233.             2|2.0) SERVICES=services_fedora2.tar.gz
  234.             ;;
  235.         3|3.0) SERVICES=services_fedora3.tar.gz
  236.             ;;
  237.         4|4.0) SERVICES=services_fedora4.tar.gz
  238.             ;;
  239.         5|5.0) SERVICES=services_fedora5.tar.gz
  240.             ;;
  241.         6|6.0) SERVICES=services_fedora6.tar.gz
  242.             ;;
  243.                 7|7.0|8|8.0) SERVICES=services_fedora7.tar.gz
  244.                         ;;
  245.         9|9.0) SERVICES=services_fedora9.tar.gz
  246.             ;;
  247.     esac
  248.  
  249. elif [ "$OS" = "debian" ]; then
  250.     OS_VER=`echo $OS_VER | cut -d. -f1,2`
  251.     if [ "$B64" -eq 1 ]; then
  252.         case "$OS_VER" in
  253.             #5.0|5.0.1|5.0.2|5.0.3|5.0.4|5.0.5|5.0.6|5.0.7|5.0.8|5.0.9|5.1) SERVICES=services_debian50_64.tar.gz
  254.             5.0|5.1|5) SERVICES=services_debian50_64.tar.gz
  255.                 ;;
  256.             6.0|6.1|6) SERVICES=services_debian60_64.tar.gz
  257.                 ;;
  258.             *) SERVICES=services_debian50_64.tar.gz
  259.                 ;;
  260.         esac
  261.     else
  262.         case "$OS_VER" in
  263.             3.0|3) SERVICES=services_debian30.tar.gz
  264.                 ;;
  265.             3.1) SERVICES=services_debian31.tar.gz
  266.                 ;;
  267.             #5|5.0|5.0.1|5.0.2|5.0.3|5.0.4|5.0.5|5.0.6|5.0.7|5.0.8|5.0.9|5.1) SERVICES=services_debian50.tar.gz
  268.             5|5.0|5.1) SERVICES=services_debian50.tar.gz
  269.                 ;;
  270.             6|6.0|6.1) SERVICES=services_debian60.tar.gz
  271.                 ;;
  272.             *) SERVICES=services_debian31.tar.gz
  273.                 ;;
  274.         esac
  275.     fi
  276.  
  277. elif [ "$OS" = "FreeBSD" ] && [ "$B64" -eq 0 ]; then
  278.     case "$OS_VER" in
  279.                 4.8|4.9|4.10|4.11) SERVICES=services_freebsd48.tar.gz
  280.                         ;;
  281.                 5.0|5.1|5.2|5.2.1|5.3|5.4|5.5) SERVICES=services_freebsd51.tar.gz
  282.             ;;
  283.         6.0|6.1|6.2|6.3|6.4|6.5) SERVICES=services_freebsd60.tar.gz
  284.             ;;
  285.         7|7.0|7.1|7.2|7.3|7.4|7.5) SERVICES=services_freebsd70.tar.gz
  286.             ;;
  287.     esac
  288. elif [ "$OS" = "FreeBSD" ] && [ "$B64" -eq 1 ]; then
  289.         case "$OS_VER" in
  290.                 7|7.0|7.1|7.2|7.3|7.4|7.5) SERVICES=services_freebsd71_64.tar.gz
  291.                         ;;
  292.         8|8.0|8.1|8.2|8.3) SERVICES=services_freebsd80_64.tar.gz
  293.             ;;
  294.         9|9.0|9.1|9.2|9.3) SERVICES=services_freebsd90_64.tar.gz
  295.             ;;
  296.         esac
  297. elif [ $B64 -eq 1 ]; then
  298.     case "$OS_VER" in
  299.         4.0|4.1|4.2|4.3|4.4|4.5|4.6|4.7|4.8|4.9) SERVICES=services_es41_64.tar.gz
  300.             ;;
  301.         5|5.0|5.1|5.2|5.3|5.4|5.5|5.6|5.7|5.8|5.9) SERVICES=services_es50_64.tar.gz
  302.             ;;
  303.         6|6.0|6.1|6.2|6.3|6.4|6.5|6.5|6.6|6.7|6.8|6.9) SERVICES=services_es60_64.tar.gz
  304.     esac
  305. else
  306.     case "$OS_VER" in
  307.         7.2) SERVICES=services72.tar.gz
  308.             ;;
  309.         7.3) SERVICES=services73.tar.gz
  310.                     ;;
  311.         8.0) SERVICES=services80.tar.gz
  312.                     ;;
  313.         9|9.0) SERVICES=services90.tar.gz
  314.                     ;;
  315.         2.1|3|3.0|3.1|3.3|3.4|3.5|3.6|3.7|3.8|3.9) SERVICES=services_es30.tar.gz
  316.             ;;
  317.         4|4.0|4.1|4.2|4.3|4.4|4.5|4.6|4.7|4.8|4.9) SERVICES=services_es40.tar.gz
  318.             ;;
  319.         5|5.0|5.1|5.2|5.3|5.4|5.5|5.6|5.7|5.8|5.9) SERVICES=services_es50.tar.gz
  320.             ;;
  321.         6|6.0|6.1|6.2|6.3|6.4|6.5|6.5|6.6|6.7|6.8|6.9) SERVICES=services_es60.tar.gz
  322.     esac
  323.  
  324. fi
  325.  
  326. if [ "$SERVICES" = "" ]; then
  327.  
  328.     yesno="n";
  329.     while [ "$yesno" = "n" ];
  330.     do
  331.     {
  332.         echo "";
  333.         echo "*** Unable to determine which services pack to use ***";
  334.         echo "";
  335.         echo "Please type in the file name closest to your system from the following list:";
  336.         echo "";
  337.         echo "Redhat:";
  338.         echo "  services72.tar.gz";
  339.         echo "  services73.tar.gz";
  340.         echo "  services80.tar.gz";
  341.         echo "  services90.tar.gz";
  342.         echo "";
  343.         echo "Fedora:";
  344.         echo "  services_fedora1.tar.gz";
  345.         echo "  services_fedora2.tar.gz";
  346.         echo "  services_fedora3.tar.gz";
  347.         echo "  services_fedora4.tar.gz";
  348.         echo "  services_fedora5.tar.gz";
  349.         echo "  services_fedora6.tar.gz";
  350.         echo "  services_fedora7.tar.gz";
  351.         echo "  services_fedora9.tar.gz";
  352.         echo "";
  353.         echo "Enterprise/Whitebox/CentOS:";
  354.         echo "  services_es30.tar.gz";
  355.         echo "  services_es40.tar.gz";
  356.         echo "  services_es50.tar.gz";
  357.         echo "  services_es60.tar.gz";
  358.         echo "  services_es41_64.tar.gz";
  359.         echo "  services_es50_64.tar.gz";
  360.         echo "  services_es60_64.tar.gz";
  361.         echo "";
  362.         echo "FreeBSD:";
  363.         echo "  services_freebsd48.tar.gz";
  364.         echo "  services_freebsd49.tar.gz";
  365.         echo "  services_freebsd51.tar.gz";
  366.         echo "  services_freebsd60.tar.gz";
  367.         echo "  services_freebsd70.tar.gz";
  368.         echo "  services_freebsd71_64.tar.gz";
  369.         echo "  services_freebsd80_64.tar.gz";
  370.         echo "  services_freebsd90_64.tar.gz";
  371.         echo "";
  372.         echo "Debian:";
  373.         echo "  services_debian30.tar.gz";
  374.         echo "  services_debian31.tar.gz";
  375.         echo "  services_debian50.tar.gz";
  376.         echo "  services_debian50_64.tar.gz";
  377.         echo "  services_debian60.tar.gz";
  378.         echo "  services_debian60_64.tar.gz";
  379.         echo "";
  380.    
  381.         echo -n "Type the filename: ";
  382.         read SERVICES
  383.    
  384.         echo "";
  385.         echo "Value entered: $SERVICES";
  386.    
  387.             echo -n "Is this correct? (y,n) : ";
  388.             read yesno;
  389.     }
  390.     done;
  391.  
  392. fi
  393.  
  394. /bin/mkdir -p $PACKAGES
  395.  
  396. yesno=n;
  397. if [ "$CMD_LINE" -eq 1 ]; then
  398.     yesno=y;
  399. else
  400.     echo "*****************************************************";
  401.     echo "*";
  402.     echo "* Have you run the pre-install commands? CTRL-C if not.";
  403.     echo "*   http://help.directadmin.com/item.php?id=354";
  404.     echo "*";
  405.     echo "*****************************************************";
  406. fi
  407.  
  408. while [ "$yesno" = "n" ];
  409. do
  410. {
  411.     echo -n "Please enter your Client ID : ";
  412.     read CID;
  413.  
  414.     echo -n "Please enter your License ID : ";
  415.     read LID;
  416.  
  417.     echo -e "Please enter your hostname \(server.domain.com\)";
  418.     echo "It must be a Fully Qualified Domain Name";
  419.     echo "Do *not* use a domain you plan on using for the hostname:";
  420.     echo "eg. don't use domain.com. Use server.domain.com instead.";
  421.     echo "Do not enter http:// or www";
  422.     echo "";
  423.     echo -n "Enter your hostname (FQDN) : ";
  424.     read HOST;
  425.  
  426.     echo "Client ID:  $CID";
  427.     echo "License ID: $LID";
  428.     echo "Hostname: $HOST";
  429.     echo -n "Is this correct? (y,n) : ";
  430.     read yesno;
  431. }
  432. done;
  433.  
  434.  
  435. ############
  436.  
  437. # Get the other info
  438. EMAIL=${ADMIN_USER}@${HOST}
  439.  
  440. TEST=`echo $HOST | cut -d. -f3`
  441. if [ "$TEST" = "" ]
  442. then
  443.         NS1=ns1.`echo $HOST | cut -d. -f1,2`
  444.         NS2=ns2.`echo $HOST | cut -d. -f1,2`
  445. else
  446.         NS1=ns1.`echo $HOST | cut -d. -f2,3,4,5,6`
  447.         NS2=ns2.`echo $HOST | cut -d. -f2,3,4,5,6`
  448. fi
  449.  
  450. ## Get the ethernet_dev
  451.  
  452.  
  453. if [ $OS = "FreeBSD" ]; then
  454.  
  455.     if [ $CMD_LINE -eq 0 ]; then
  456.  
  457.         DEVS=`/sbin/ifconfig -a | grep -e "^[a-z]" | cut -d: -f1 |grep -v lp0|grep -v lo0|grep -v tun0|grep -v sl0|grep -v ppp0|grep -v faith0`
  458.  
  459.         COUNT=0;
  460.         for i in $DEVS; do
  461.         {
  462.             COUNT=$(($COUNT+1));
  463.         };
  464.         done;
  465.  
  466.         if [ $COUNT -eq 0 ]; then
  467.                 echo "Could not find your ethernet device.";
  468.                 echo -n "Please enter the name of your ethernet device: ";
  469.                 read ETH_DEV;
  470.         elif [ $COUNT -eq 1 ]; then
  471.                 echo -n "Is $DEVS your network adaptor with the license IP? (y,n) : ";
  472.                 read yesno;
  473.                 if [ "$yesno" = "n" ]; then
  474.                         echo -n "Enter the name of the ethernet device you wish to use : ";
  475.                         read ETH_DEV;
  476.                 else
  477.                         ETH_DEV=$DEVS
  478.                 fi
  479.         else
  480.                 # more than one
  481.                 echo "The following ethernet devices were found. Please enter the name of the one you wish to use:";
  482.                 echo "";
  483.                 echo $DEVS;
  484.                 echo "";
  485.                 echo -n "Enter the device name: ";
  486.                 read ETH_DEV;
  487.         fi
  488.     fi
  489.  
  490.     echo "Using $ETH_DEV";
  491.  
  492.     if [ "$IP" = "0" ]; then
  493.  
  494.         IP=`/sbin/ifconfig $ETH_DEV | grep 'inet ' | head -n1 | cut -d\  -f2`
  495.     fi
  496.  
  497.     echo "Using $IP";
  498.  
  499.     NM_HEX=`/sbin/ifconfig $ETH_DEV | grep 'inet ' | head -n1 | cut -d\  -f4 | cut -dx -f2 | tr '[a-f]' '[A-F]'`
  500.  
  501.     NMH1=`echo $NM_HEX | awk '{print substr($1,1,2)}'`
  502.     NMH2=`echo $NM_HEX | awk '{print substr($1,3,2)}'`
  503.     NMH3=`echo $NM_HEX | awk '{print substr($1,5,2)}'`
  504.     NMH4=`echo $NM_HEX | awk '{print substr($1,7,2)}'`
  505.  
  506.     NM1=`echo "ibase=16; $NMH1" | bc`
  507.     NM2=`echo "ibase=16; $NMH2" | bc`
  508.     NM3=`echo "ibase=16; $NMH3" | bc`
  509.     NM4=`echo "ibase=16; $NMH4" | bc`
  510.    
  511.     NM=$NM1.$NM2.$NM3.$NM4;
  512.  
  513. else
  514.     if [ $CMD_LINE -eq 0 ]; then
  515.  
  516.         DEVS=`/sbin/ifconfig -a | grep -e "^[a-z]" | awk '{ print $1; }' | grep -v lo | grep -v sit0 | grep -v ppp0 | grep -v faith0`
  517.    
  518.         COUNT=0;
  519.         for i in $DEVS; do
  520.         {
  521.             COUNT=$(($COUNT+1));
  522.         };
  523.         done;
  524.  
  525.         if [ $COUNT -eq 0 ]; then
  526.                 echo "Could not find your ethernet device.";
  527.                 echo -n "Please enter the name of your ethernet device: ";
  528.                 read ETH_DEV;
  529.         elif [ $COUNT -eq 1 ]; then
  530.        
  531.             DIP=`/sbin/ifconfig $DEVS | grep 'inet addr:' | cut -d: -f2 | cut -d\  -f1`;
  532.        
  533.                 echo -n "Is $DEVS your network adaptor with the license IP ($DIP)? (y,n) : ";
  534.                 read yesno;
  535.                 if [ "$yesno" = "n" ]; then
  536.                         echo -n "Enter the name of the ethernet device you wish to use : ";
  537.                         read ETH_DEV;
  538.                 else
  539.                         ETH_DEV=$DEVS
  540.                 fi
  541.         else
  542.                 # more than one
  543.                 echo "The following ethernet devices/IPs were found. Please enter the name of the device you wish to use:";
  544.                 echo "";
  545.                 #echo $DEVS;
  546.                 for i in $DEVS; do
  547.                 {
  548.                     DIP=`/sbin/ifconfig $i | grep 'inet addr:' | cut -d: -f2 | cut -d\  -f1`;
  549.                     echo "$i       $DIP";
  550.                 };
  551.                 done;
  552.                
  553.                 echo "";
  554.                 echo -n "Enter the device name: ";
  555.                 read ETH_DEV;
  556.         fi
  557.  
  558.             #echo -n "Is $ETH_DEV your network adaptor with the license IP? (y,n) : ";
  559.             #read yesno;
  560.             #if [ "$yesno" = "n" ]; then
  561.             #        echo -n "Enter the name of the ethernet device you wish to use : ";
  562.                 #   read ETH_DEV;
  563.             #fi
  564.     fi
  565.  
  566.     if [ "$IP" = "0" ]; then
  567.         IP=`/sbin/ifconfig $ETH_DEV | grep 'inet addr:' | cut -d: -f2 | cut -d\  -f1`;
  568.     fi
  569.  
  570.     NM=`/sbin/ifconfig $ETH_DEV | grep 'Mask:' | cut -d: -f4`
  571. fi
  572.  
  573. if [ $CMD_LINE -eq 0 ]; then
  574.  
  575.     if [ "$IP" = "" ]; then
  576.         yesno="n";
  577.     else
  578.         echo -n "Is $IP the IP in your license? (y,n) : ";
  579.         read yesno;
  580.     fi
  581.  
  582.     if [ "$yesno" = "n" ]; then
  583.         echo -n "Enter the IP used in your license file : ";
  584.         read IP;
  585.     fi
  586.  
  587.     if [ "$IP" = "" ]; then
  588.         echo "The IP entered is blank.  Please try again, and enter a valid IP";
  589.     fi
  590. fi
  591.  
  592. ############
  593.  
  594. echo "";
  595. echo "DirectAdmin will now be installed on: $OS $OS_VER";
  596.  
  597. if [ $CMD_LINE -eq 0 ]; then
  598.     echo -n "Is this correct? (must match license) (y,n) : ";
  599.     read yesno;
  600.  
  601.     if [ "$yesno" = "n" ]; then
  602.         echo -e "\nPlease change the value in your license, or install the correct operating system\n";
  603.         exit 1;
  604.     fi
  605. fi
  606.  
  607.  
  608. ################
  609.  
  610. if [ $CMD_LINE -eq 0 ]; then
  611.         echo "";
  612.         echo "You now have 4 options for your apache/php setup.";
  613.         echo "";
  614.         echo "1: customapache:         end-of-life software.  Apache 1.3, php 4, frontpage.  Do not use.  No support.";
  615.         echo "2: custombuild 1.1:      older software.  Apache 2.x, php 4, 5, or both in cli and/or suphp. Defaults to php 5.2";
  616.     echo "3: custombuild 1.2:      * Recommended. simlar to 1.1, newer default versions.  Apache 2.x, php 5, 6, or both in cli and/or suphp. Defaults to php 5.3";
  617.     echo "4: custombuild 2.0 ALPHA: Not yet recommended, still in testing. Apache 2.4, mod_ruid2, php 5.4. Can be set to use php-FPM. Experts only. Requires pre-release binaries.";
  618.     echo "";
  619.     echo "      Post any issues with custombuild to the forum: http://www.directadmin.com/forum/forumdisplay.php?f=61";
  620.         echo "";
  621.         #echo -n "Enter your choice (1 or 2): ";
  622.     echo -n "Enter your choice (1, 2, 3 or 4): ";
  623.  
  624.         read onetwo;
  625.  
  626.         if [ "$onetwo" = "2" ] || [ "$onetwo" = "3" ] || [ "$onetwo" = "4" ]; then
  627.             CB_VER=1.1
  628.             PHP_V=5.2
  629.         PHP_T=cli
  630.         AP_VER=2.2
  631.         RUID="";
  632.             if [ "$onetwo" = "3" ]; then
  633.             CB_VER=1.2
  634.             PHP_V=5.3
  635.             fi
  636.         if [ "$onetwo" = "4" ]; then
  637.             CB_VER=2.0
  638.             PHP_V=5.4
  639.             AP_VER=2.4
  640.             RUID=" with mod_ruid2";
  641.  
  642.             if [ "${OS}" = "FreeBSD" ]; then
  643.                 RUID="";
  644.                 PHP_T=suPhp
  645.             fi
  646.         fi
  647.        
  648.                 echo "You have chosen custombuild $CB_VER.";
  649.         echo "$CB_VER" > /root/.custombuild
  650.  
  651.         #grab the build file.
  652.  
  653.         CBPATH=$DA_PATH/custombuild
  654.         mkdir -p $CBPATH
  655.  
  656.         BUILD=$CBPATH/build
  657.         BFILE=$SERVER/custombuild/${CB_VER}/custombuild/build
  658.         if [ $OS = "FreeBSD" ]; then
  659.             fetch -o $BUILD $BFILE
  660.         else
  661.             $WGET_PATH -O $BUILD $BFILE
  662.         fi
  663.         chmod 755 $BUILD
  664.  
  665.                 echo "";
  666.                 echo -n "Would you like the default settings of apache ${AP_VER}${RUID} and php ${PHP_V} ${PHP_T}? (y/n): ";
  667.                 read yesno;
  668.                 if [ "$yesno" = "n" ]; then
  669.                         echo "You have chosen to customize the custombuild options.  Please wait while options configurator is downloaded... ";
  670.                         echo "";
  671.  
  672.                         if [ -e $BUILD ]; then
  673.                                 $BUILD create_options
  674.                         else
  675.                                 echo "unable to download the build file.  Using defaults instead.";
  676.                         fi
  677.                 else
  678.                         echo "Using the default settings for custombuild.";
  679.                 fi
  680.                
  681.                 echo -n "Would you like to search for the fastest download mirror? (y/n): ";
  682.                 read yesno;
  683.                 if [ "$yesno" = "y" ]; then
  684.                     $BUILD set_fastest;
  685.            
  686.             if [ -s "${CB_OPTIONS}" ]; then
  687.                 DL=`grep ^downloadserver= ${CB_OPTIONS} | cut -d= -f2`
  688.                 if [ "${DL}" != "" ]; then
  689.                     SERVER=http://${DL}/services
  690.                     FTP_HOST=${DL}
  691.                 fi
  692.             fi
  693.                 fi
  694.                
  695.         else
  696.                 echo "Using customapache with apache 1.3 and php 4.";
  697.         fi
  698.  
  699.         sleep 2
  700. fi
  701.  
  702. ##########
  703.  
  704. echo "beginning pre-checks, please wait...";
  705.  
  706. # Things to check for:
  707. #
  708. # bison
  709. # flex
  710. # webalizer
  711. # bind (named)
  712. # patch
  713. # openssl-devel
  714. # wget
  715.  
  716. BIN_DIR=/usr/bin
  717. LIB_DIR=/usr/lib
  718. if [ $OS = "FreeBSD" ]; then
  719.     BIN_DIR=/usr/local/bin
  720.     LIB_DIR=/usr/local/lib
  721. fi
  722.  
  723. checkFile()
  724. {
  725.         if [ -e $1 ]; then
  726.                 echo 1;
  727.         else
  728.                 echo 0;
  729.         fi
  730. }
  731.  
  732. if [ $OS = "FreeBSD" ]; then
  733.         PERL=`pkg_info | grep -ce '^perl'`;
  734. else
  735.         PERL=`checkFile /usr/bin/perl`;
  736. fi
  737. BISON=`checkFile $BIN_DIR/bison`;
  738. FLEX=`checkFile /usr/bin/flex`;
  739. WEBALIZER=`checkFile $BIN_DIR/webalizer`;
  740. BIND=`checkFile /usr/sbin/named`;
  741. PATCH=`checkFile /usr/bin/patch`;
  742. SSL_DEVEL=`checkFile /usr/include/openssl/ssl.h`;
  743. WGET=`checkFile $BIN_DIR/wget`;
  744. WGET_PATH=$BIN_DIR/wget;
  745. KRB5=`checkFile /usr/kerberos/include/krb5.h`;
  746. KILLALL=`checkFile /usr/bin/killall`;
  747. if [ $KRB5 -eq 0 ]; then
  748.     KRB5=`checkFile /usr/include/krb5.h`;
  749. fi
  750. if [ $OS = "FreeBSD" ]; then
  751.     GD=`checkFile $LIB_DIR/libgd.so.2`;
  752. else
  753.     GD=`checkFile $LIB_DIR/libgd.so.1`; #1.8.4
  754. fi
  755. CURLDEV=`checkFile /usr/include/curl/curl.h`
  756.  
  757. E2FS=1;
  758. E2FS_DEVEL=1;
  759. if [ -e /etc/fedora-release ]; then
  760.     E2FS=`checkFile /lib/libcom_err.so.2`;
  761.     E2FS_DEVEL=`checkFile /usr/include/et/com_err.h`;
  762. fi
  763. if [ "$OS" = "Enterprise" ]; then
  764.     if [ $B64 -eq 1 ]; then
  765.         E2FS=`checkFile /lib64/libcom_err.so.2`;
  766.     else
  767.             E2FS=`checkFile /lib/libcom_err.so.2`;
  768.     fi
  769.         E2FS_DEVEL=`checkFile /usr/include/et/com_err.h`;
  770. fi
  771.  
  772.  
  773.  
  774. ###############################################################################
  775. ###############################################################################
  776.  
  777. # We now have all information gathered, now we need to start making decisions
  778.  
  779. if [ "$OS" = "debian" ]; then
  780.     if [ -e /bin/bash ] && [ -e /bin/dash ]; then
  781.         COUNT=`ls -la /bin/sh | grep -c dash`
  782.         if [ "$COUNT" -eq 1 ]; then
  783.             ln -sf bash /bin/sh
  784.         fi
  785.     fi
  786.  
  787.     apt-get -y install ca-certificates
  788. fi
  789.  
  790. if [ "$OS" = "debian" ] && [ "$OS_VER" = "3.0" ]; then
  791.     COUNT=`cat /etc/apt/sources.list |grep backports |grep -c debconf`
  792.     if [ "$COUNT" -eq 0 ]; then
  793.         echo "deb http://www.backports.org/debian/ woody debconf" >> /etc/apt/sources.list
  794.     fi
  795. fi
  796.  
  797. if [ $WGET -eq 0 ]; then
  798.     if [ "$OS" = "FreeBSD" ]; then
  799.         echo "wget not found: Attempting to install wget ... ";
  800.  
  801.         if [ "$B64" -eq 1 ]; then
  802.             case "$OS_VER" in
  803.                 7.0|7.1|7.2|7.3|7.4|7.5) pkg_add -r http://$FTP_HOST/services/packages-7.1-release/Latest/wget.tbz
  804.                     ;;
  805.                 8.0|8.1|8.2|8.3) pkg_add -r http://$FTP_HOST/services/packages-8.0-release/Latest/wget.tbz
  806.                     ;;
  807.                 9.0|9.1|9.2|9.3) pkg_add -r http://$FTP_HOST/services/packages-9.0-release/Latest/wget.tbz
  808.                     ;;
  809.             esac
  810.         else
  811.  
  812.             case "$OS_VER" in
  813.                 7.0|7.1|7.2|7.3|7.4|7.5) pkg_add -r http://$FTP_HOST/services/packages-7-stable/Latest/wget.tbz
  814.                     ;;
  815.                 6.0|6.1|6.2|6.3|6.4|6.5) pkg_add -r http://$FTP_HOST/services/packages-6-stable/Latest/wget.tbz
  816.                     ;;
  817.                 5.3|5.4|5.5) pkg_add -r http://$FTP_HOST/services/packages-5.3-release/Latest/wget.tbz
  818.                     ;;
  819.                 5.2.1) pkg_add -r http://$FTP_HOST/services/packages-5.2.1-release/Latest/wget.tbz
  820.                     ;;
  821.                 4.8|4.9) pkg_add -r http://$FTP_HOST/services/packages-4-stable/Latest/wget.tgz
  822.                     ;;
  823.                 4.10|4.11) pkg_add -r http://$FTP_HOST/services/packages-4.10-release/Latest/wget.tgz
  824.                     ;;
  825.                 *) pkg_add -r http://$FTP_HOST/services/packages-5-stable/Latest/wget.tbz
  826.                     ;;
  827.             esac
  828.         fi
  829.     elif [ "$OS" = "debian" ]; then
  830.         echo "wget not found: Attempting to install wget ... ";
  831.         apt-get -y install wget
  832.  
  833.         D64POST=""
  834.         if [ "$B64" -eq 1 ]; then
  835.             D64POST="_64"
  836.         fi
  837.  
  838.         #the default wget from apt-get doesn't have https support
  839.         if [ -e $WGET_PATH ]; then
  840.             $WGET_PATH -O $WGET_PATH.new $SERVER/debian_${OS_VER}${D64POST}/wget
  841.             mv -f $WGET_PATH $WGET_PATH.old
  842.             mv -f $WGET_PATH.new $WGET_PATH
  843.             chmod 755 $WGET_PATH
  844.         fi         
  845.     else
  846.         echo "*** wget not found: you *must* install wget (yum -y install wget)";
  847.         exit 2;
  848.     fi
  849.  
  850.     WGET_10=`$WGET_PATH -V 2>/dev/null | head -n1 | grep -c 1.10`
  851.     WGET_OPTION="";
  852.     if [ $WGET_10 -eq 1 ]; then
  853.             WGET_OPTION="--no-check-certificate";
  854.     fi
  855.  
  856.  
  857. fi
  858.  
  859.  
  860. # Download the file that has the paths to all the relevant files.
  861. FILES=$SCRIPTS_PATH/files.sh
  862. if [ "$OS" != "FreeBSD" ]; then
  863.     FILES_PATH=$OS_VER
  864.     if [ "$OS" = "debian" ]; then
  865.  
  866.         OS_VER=`echo $OS_VER | cut -d. -f1,2`
  867.  
  868.         if [ "$OS_VER" = "5" ]; then
  869.             OS_VER=5.0
  870.         fi
  871.         if [ "$OS_VER" = "6" ]; then
  872.             OS_VER=6.0
  873.         fi
  874.  
  875.         if [ $B64 -eq 1 ]; then
  876.             FILES_PATH=debian_${OS_VER}_64
  877.         else
  878.             FILES_PATH=debian_${OS_VER}
  879.         fi
  880.     elif [ "$OS" = "fedora" ]; then
  881.             case "$OS_VER" in
  882.                     1|1.90) FILES_PATH=fedora_1
  883.                             ;;
  884.                     2|2.0) FILES_PATH=fedora_2
  885.                             ;;
  886.                     3|3.0) FILES_PATH=fedora_3
  887.                 ;;
  888.             4|4.0) FILES_PATH=fedora_4
  889.                 ;;
  890.             5|5.0) FILES_PATH=fedora_5
  891.                 ;;
  892.             6|6.0) FILES_PATH=fedora_6
  893.                 ;;
  894.             7|7.0) FILES_PATH=fedora_7
  895.                 ;;
  896.             8|8.0) FILES_PATH=fedora_8
  897.                 ;;
  898.             9|9.0) FILES_PATH=fedora_9
  899.             esac
  900.     elif [ $B64 -eq 1 ]; then
  901.         case "$OS_VER" in
  902.             4|4.0|4.1|4.2|4.3|4.4|4.5|4.6|4.7|4.8|4.9) FILES_PATH=es_4.1_64
  903.                 ;;
  904.             5|5.0|5.1|5.2) FILES_PATH=es_5.0_64
  905.                 ;;
  906.             5.3|5.4|5.5|5.6|5.7|5.8|5.9) FILES_PATH=es_5.3_64
  907.                 ;;
  908.             6.0|6.1|6.2|6.3|6.4|6.5|6.5) FILES_PATH=es_6.0_64
  909.                 ;;
  910.         esac
  911.     elif [ "$OS" = "Enterprise" ]; then
  912.         case "$OS_VER" in
  913.             5|5.1|5.2) FILES_PATH=es_5.0
  914.                 ;;
  915.             5.3|5.4|5.5|5.6|5.7|5.8|5.9) FILES_PATH=es_5.3
  916.                 ;;
  917.             6.0|6.1|6.2|6.3|6.4|6.5|6.5) FILES_PATH=es_6.0
  918.                 ;;
  919.         esac
  920.     fi
  921.  
  922.     wget -O $FILES $SERVER/$FILES_PATH/files.sh
  923.     if [ ! -e $FILES ]; then
  924.         echo "*** Unable to download files.sh";
  925.         echo "tried: $SERVER/$FILES_PATH/files.sh";
  926.         exit 3;
  927.     fi
  928.     chmod 755 $FILES;
  929.     . $FILES
  930. fi
  931.  
  932.  
  933.  
  934. addPackage()
  935. {
  936.     echo "adding $1 ...";
  937.     if [ "$OS" = "FreeBSD" ]; then
  938.         if [ "$B64" -eq 1 ]; then
  939.             case "$OS_VER" in
  940.                 7|7.0|7.1|7.2|7.3|7.4|7.5) pkg_add -r http://$FTP_HOST/services/packages-7.1-release/Latest/${1}.tbz
  941.                     ;;
  942.                 8|8.0|8.1|8.2|8.3) pkg_add -r http://$FTP_HOST/services/packages-8.0-release/Latest/${1}.tbz
  943.                     ;;
  944.                 9|9.0|9.1|9.2|9.3) pkg_add -r http://$FTP_HOST/services/packages-9.0-release/Latest/${1}.tbz
  945.                     ;;
  946.             esac
  947.         else
  948.                     case "$OS_VER" in
  949.                 7|7.0|7.1|7.2|7.3|7.4|7.5) pkg_add -r http://$FTP_HOST/services/packages-7-stable/Latest/${1}.tbz
  950.                     ;;
  951.                 6.0|6.1|6.2|6.3|6.4|6.5) pkg_add -r http://$FTP_HOST/services/packages-6-stable/Latest/${1}.tbz
  952.                     ;;
  953.                             5.3|5.4|5.5) pkg_add -r http://$FTP_HOST/services/packages-5.3-release/Latest/${1}.tbz
  954.                                     ;;
  955.                 5.2.1) pkg_add -r http://$FTP_HOST/services/packages-5.2.1-release/Latest/${1}.tbz
  956.                     ;;
  957.                             4.8|4.9) pkg_add -r http://$FTP_HOST/services/packages-4-stable/Latest/${1}.tgz
  958.                                     ;;
  959.                 4.10|4.11) pkg_add -r http://$FTP_HOST/services/packages-4.10-release/Latest/${1}.tgz
  960.                     ;;
  961.                             *) pkg_add -r http://$FTP_HOST/services/packages-5-stable/Latest/${1}.tbz
  962.                                     ;;
  963.                     esac
  964.         fi
  965.     elif [ "$OS" = "debian" ]; then
  966.  
  967.         if [ "$3" = "0" ]; then
  968.             return;
  969.         fi
  970.  
  971.         if [ "$3" = "" ]; then
  972.             apt-get -y install $1
  973.         else
  974.             apt-get -y install $3
  975.         fi
  976.     else
  977.  
  978.         if [ "$2" = "" ]; then
  979.             echo "";
  980.             echo "*** the value for $1 is empty.  It needs to be added manually ***"
  981.             echo "";
  982.             return;
  983.         fi
  984.  
  985.         wget -O $PACKAGES/$2 $SERVER/$FILES_PATH/$2
  986.         if [ ! -e $PACKAGES/$2 ]; then
  987.             echo "Error downloading $SERVER/$FILES_PATH/$2";
  988.         fi
  989.        
  990.         rpm -Uvh --nodeps --force $PACKAGES/$2
  991.     fi
  992. }
  993.  
  994. #######
  995. # Ok, we're ready to go.
  996.  
  997. if [ $PERL -eq 0 ]; then
  998.     case "$OS_VER" in
  999.         5.3|5.4|5.5|5.6|5.7|5.8|5.9|6.0|6.1|6.2|6.3|6.4|6.5|6.5|7|7.0|7.1|7.2|7.3|7.4|7.5|8|8.0|8.1|8.2|8.3)    addPackage perl "$perl";
  1000.             ;;
  1001.         5.0|5.1|5.2)        addPackage perl5.6 $perl;
  1002.             ;;
  1003.         *)          addPackage perl5.8 $perl;
  1004.             ;;
  1005.         esac
  1006.     rehash
  1007.     use.perl port 2> /dev/null > /dev/null
  1008.     ADMIN_PASS=`/usr/bin/perl -le'print map+(A..Z,a..z,0..9)[rand 62],0..7'`;
  1009.     DB_ROOT_PASS=`/usr/bin/perl -le'print map+(A..Z,a..z,0..9)[rand 62],0..7'`;
  1010.  
  1011. fi
  1012.  
  1013. if [ ! -e /usr/bin/perl ]; then
  1014.     ln -s /usr/local/bin/perl /usr/bin/perl
  1015. fi
  1016.  
  1017. #this bit is for exim and fedora 1.
  1018. if [ "$OS_VER" = "1" ]; then
  1019.     echo "/usr/lib/perl5/5.8.1/i386-linux-thread-multi/CORE" >> /etc/ld.so.conf
  1020.     ldconfig
  1021. fi
  1022.  
  1023. if [ ! -e /etc/ld.so.conf ] || [ "`grep -c -E '/usr/local/lib$' /etc/ld.so.conf`" = "0" ]; then
  1024.         echo "/usr/local/lib" >> /etc/ld.so.conf
  1025.         ldconfig
  1026. fi
  1027.  
  1028. if [ $BISON -eq 0 ]; then
  1029.     addPackage bison $bison
  1030. fi
  1031.  
  1032. if [ $FLEX -eq 0 ]; then
  1033.     #flex doesn't exist for pkg_add on FreeBSD...
  1034.         addPackage flex $flex
  1035. fi
  1036.  
  1037. if [ $GD -eq 0 ]; then
  1038.     addPackage gd $gd
  1039. fi
  1040.  
  1041. if [ "$CURLDEV" -eq 0 ]; then
  1042.     #only applies to centos 6
  1043.     if [ "${FILES_PATH}" = "es_6.0" ] || [ "${FILES_PATH}" = "es_6.0_64" ]; then
  1044.         echo "Installing libcurl-devel..";
  1045.  
  1046.         yum -y install libcurl-devel
  1047.  
  1048.         if [ ! -s /usr/include/curl/curl.h ]; then
  1049.             echo "*************************";
  1050.             echo "* Cannot find /usr/include/curl/curl.h.  Php compile may fail. (yum -y install libcurl-devel)";
  1051.             echo "* If yum doesn't work, install rpms from your respective OS path (use only 1):";
  1052.             echo "*   http://files.directadmin.com/services/es_6.0/libcurl-devel-7.19.7-16.el6.i686.rpm";
  1053.             echo "*   http://files.directadmin.com/services/es_6.0_64/libcurl-7.19.7-16.el6.x86_64.rpm";
  1054.             echo "*";
  1055.             echo "* If you can install libcurl-devel quick enough in a 2nd ssh window, the php compile may work.";
  1056.             echo "*************************";
  1057.             sleep 5;
  1058.         fi
  1059.     fi
  1060. fi
  1061.  
  1062.  
  1063. if [ $WEBALIZER -eq 0 ]; then
  1064.  
  1065.     WEBALIZER_FILE=/usr/bin/webalizer
  1066.  
  1067.     if [ "$OS" = "FreeBSD" ]; then
  1068.         WEBALIZER_FILE=/usr/local/bin/webalizer
  1069.  
  1070.         if [ "$B64" -eq 1 ]; then
  1071.             case "$OS_VER" in
  1072.                 7|7.0|7.1|7.2|7.3|7.4|7.5) wget -O $WEBALIZER_FILE $SERVER/freebsd7.1-64bit/webalizer
  1073.                     ;;
  1074.                 8|8.0|8.1|8.2|8.3) wget -O $WEBALIZER_FILE $SERVER/freebsd8.0-64bit/webalizer
  1075.                     ;;
  1076.             esac
  1077.         else
  1078.             case "$OS_VER" in
  1079.                     4.8|4.9|4.10|4.11) wget -O $WEBALIZER_FILE $SERVER/freebsd4.8/webalizer
  1080.                             ;;
  1081.                     5.0|5.1|5.2|5.2.1|5.3|5.4|5.5) wget -O $WEBALIZER_FILE $SERVER/freebsd5.1/webalizer
  1082.                     ;;
  1083.                 6.0|6.1|6.2|6.3|6.4|6.5) wget -O $WEBALIZER_FILE $SERVER/freebsd6.0/webalizer
  1084.                     ;;
  1085.                 7|7.0|7.1|7.2|7.3|7.4|7.5) wget -O $WEBALIZER_FILE $SERVER/freebsd7.0/webalizer
  1086.                     ;;
  1087.             esac
  1088.         fi
  1089.     else
  1090.  
  1091.         wget -O $WEBALIZER_FILE $SERVER/${filesh_path}/webalizer
  1092.     fi
  1093.  
  1094.     chmod 755 $WEBALIZER_FILE
  1095. fi
  1096.  
  1097. if [ $BIND -eq 0 ]; then
  1098.     addPackage bind-utils "$bind_utils" bind9utils
  1099.         addPackage bind "$bind" bind9
  1100.     addPackage bind-libs "$bind_libs" 0
  1101. fi
  1102. if [ "$OS" != "FreeBSD" ] && [ "$OS" != "debian" ]; then
  1103.     mv -f /etc/init.d/named /etc/init.d/named.back
  1104.     wget -O /etc/init.d/named http://www.directadmin.com/named
  1105.     chmod 755 /etc/init.d/named
  1106.     /sbin/chkconfig named reset
  1107.  
  1108.         RNDCKEY=/etc/rndc.key
  1109.    
  1110.     if [ ! -s $RNDCKEY ]; then
  1111.         echo "Generating new key: $RNDCKEY ...";
  1112.  
  1113.         if [ -e /dev/urandom ]; then
  1114.             /usr/sbin/rndc-confgen -a -r /dev/urandom
  1115.         else
  1116.             /usr/sbin/rndc-confgen -a
  1117.         fi
  1118.  
  1119.         COUNT=`grep -c 'key "rndc-key"' $RNDCKEY`
  1120.         if [ "$COUNT" -eq 1 ]; then
  1121.             perl -pi -e 's/key "rndc-key"/key "rndckey"/' $RNDCKEY
  1122.         fi
  1123.  
  1124.         echo "Done generating new key";
  1125.     fi
  1126.  
  1127.     if [ ! -s $RNDCKEY ]; then
  1128.         echo "rndc-confgen failed. Using template instead.";
  1129.  
  1130.         wget -O $RNDCKEY http://www.directadmin.com/rndc.key
  1131.  
  1132.                 if [ `cat $RNDCKEY | grep -c secret` -eq 0 ]; then
  1133.                         SECRET=`/usr/sbin/rndc-confgen | grep secret | head -n 1`
  1134.                         STR="perl -pi -e 's#hmac-md5;#hmac-md5;\n\t$SECRET#' $RNDCKEY;"
  1135.                         eval $STR;
  1136.                 fi
  1137.  
  1138.         echo "Template installed.";
  1139.         fi
  1140.  
  1141.    
  1142. fi
  1143.  
  1144. if [ "$OS" = "FreeBSD" ]; then
  1145.     if [ ! -e /etc/namedb/rndc.key ]; then
  1146.         rndc-confgen -a -s $IP 
  1147.     fi
  1148.     COUNT=`cat /etc/namedb/named.conf | grep -c listen`
  1149.     if [ $COUNT -ne 0 ]; then
  1150.         wget -O /etc/namedb/named.conf http://www.directadmin.com/named.conf.freebsd
  1151.     fi
  1152. fi
  1153.  
  1154. if [ "$OS" = "debian" ]; then
  1155.     if [ ! -e /etc/init.d/named ]; then
  1156.         if [ -e /etc/init.d/bind9 ]; then
  1157.             ln -s bind9 /etc/init.d/named
  1158.         else
  1159.             wget -O /etc/init.d/named http://www.directadmin.com/named.debian
  1160.             chmod 755 /etc/init.d/named
  1161.             #ln -s bind /etc/init.d/named
  1162.         fi
  1163.     fi
  1164.     if [ ! -e /bin/nice ]; then
  1165.         ln -s /usr/bin/nice /bin/nice
  1166.     fi
  1167.    
  1168.     if [ "$KILLALL" -eq 0 ]; then
  1169.         addPackage psmisc nothing psmisc
  1170.     fi
  1171.  
  1172.     #for debian 6, need /lib/libaio.so.1 via libaio1 and libaio-dev for mysql 5.5
  1173.     OV=`echo $OS_VER | cut -d. -f1`
  1174.     if [ "$OV" -ge 6 ]; then
  1175.         addPackage libaio-dev nothing libaio-dev
  1176.     fi
  1177. fi
  1178.  
  1179. if [ -e /etc/sysconfig/named ]; then
  1180.         /usr/bin/perl -pi -e 's/^ROOTDIR=.*/ROOTDIR=/' /etc/sysconfig/named
  1181. fi
  1182.  
  1183.  
  1184. if [ $PATCH -eq 0 ]; then
  1185.         addPackage patch $patch
  1186. fi
  1187.  
  1188. if [ $SSL_DEVEL -eq 0 ]; then
  1189.         addPackage openssl "$openssl"
  1190.     addPackage openssl-devel "$openssl_devel" libssl-dev
  1191. fi
  1192.  
  1193. if [ $OS != "FreeBSD" ]; then
  1194.     groupadd apache >/dev/null 2>&1
  1195.     if [ "$OS" = "debian" ]; then
  1196.         useradd -d /var/www -g apache -s /bin/false apache >/dev/null 2>&1
  1197.     else
  1198.         useradd -d /var/www -g apache -r -s /bin/false apache >/dev/null 2>&1
  1199.     fi
  1200.     mkdir -p /etc/httpd/conf >/dev/null 2>&1
  1201.  
  1202.     if [ $KRB5 -eq 0 ]; then
  1203.         addPackage krb5-libs "$krb5_libs" libkrb53
  1204.         addPackage krb5-devel "$krb5_devel" libkrb5-dev
  1205.     fi
  1206. fi
  1207.  
  1208. #this is for exim.
  1209. if [ "$OS" = "fedora" ] && [ "$OS_VER" = "8" ]; then
  1210.     if [ -e /lib/libdb-4.6.so ] && [ ! -e /lib/libdb-4.5.so ]; then
  1211.         ln -s libdb-4.6.so /lib/libdb-4.5.so
  1212.     fi
  1213.  
  1214.     if [ ! -e /usr/lib/mysql/libmysqlclient.so ] && [ -e /usr/lib/libmysqlclient.so ]; then
  1215.         ln -s /usr/lib/libmysqlclient.so /usr/lib/mysql/libmysqlclient.so
  1216.     fi
  1217.  
  1218. fi
  1219.  
  1220. if [ $OS = "FreeBSD" ]; then
  1221.     if [ ! -e /usr/lib/libc.so.4 ]; then
  1222.         pkg_add -r compat4x >/dev/null 2>&1
  1223.     fi
  1224.  
  1225.     if [ -e /lib/libm.so.3 ]; then
  1226.         if [ ! -e /lib/libm.so.2 ]; then
  1227.             ln -s libm.so.3 /lib/libm.so.2
  1228.         fi
  1229.     fi
  1230.  
  1231.     #1.37.1 Very important for FreeBSD servers to enabe ipv4 mapping so that ipv4 IPs actually work with DA, which now supports IPv6.
  1232.     COUNT=`grep -c ipv6_ipv4mapping /etc/rc.conf`
  1233.     if [ "$COUNT" -eq 0 ]; then
  1234.             echo "ipv6_ipv4mapping=\"YES\"" >> /etc/rc.conf
  1235.     fi
  1236.  
  1237.     COUNT=`grep -c net.inet6.ip6.v6only /etc/sysctl.conf`
  1238.     if [ "$COUNT" -eq 0 ]; then
  1239.             echo "net.inet6.ip6.v6only=0" >> /etc/sysctl.conf
  1240.             /etc/rc.d/sysctl restart
  1241.     fi
  1242.  
  1243.     /sbin/sysctl net.inet6.ip6.v6only=0
  1244. fi
  1245.  
  1246. if [ $E2FS -eq 0 ]; then
  1247.     addPackage e2fsprogs "$e2fsprogs" 0
  1248. fi
  1249.  
  1250. if [ $E2FS_DEVEL -eq 0 ]; then
  1251.     addPackage e2fsprogs-devel "$e2fsprogs_devel" 0
  1252. fi
  1253.  
  1254. if [ $B64 -eq 1 ] && [ -e /etc/redhat-release ]; then
  1255.     COUNT=`rpm -qa | grep -c perl-DBI`
  1256.     if [ $COUNT -eq 0 ]; then
  1257.         addPackage perl-DBI "$perl_dbi" 0
  1258.     fi
  1259. fi
  1260.  
  1261. if [ "$OS" = "debian" ] && [ ! -e /sbin/quotacheck ]; then
  1262.     echo "Couldn't find quotas. Installing them.";
  1263.     addPackage quota "$quota" quota
  1264. fi
  1265.  
  1266. if [ -e /etc/selinux/config ]; then
  1267.     perl -pi -e 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
  1268.     perl -pi -e 's/SELINUX=permissive/SELINUX=disabled/' /etc/selinux/config
  1269. fi
  1270.  
  1271. if [ -e /selinux/enforce ]; then
  1272.     echo "0" > /selinux/enforce
  1273. fi
  1274.  
  1275. if [ -e /usr/sbin/setenforce ]; then
  1276.         /usr/sbin/setenforce 0
  1277. fi
  1278.  
  1279. if [ -s /usr/sbin/ntpdate ]; then
  1280.     /usr/sbin/ntpdate -b -u ntp.directadmin.com
  1281. else
  1282.     if [ -s /usr/bin/rdate ]; then
  1283.         /usr/bin/rdate -s rdate.directadmin.com
  1284.     fi
  1285. fi
  1286.  
  1287. #test and make sure wget works on debian.
  1288. if [ "$OS" = "debian" ]; then
  1289.  
  1290.     $BIN_DIR/wget -O /dev/null https://www.directadmin.com
  1291.     RET=$?
  1292.     if [ $RET -eq 1 ]; then
  1293.  
  1294.         echo "*******************";
  1295.         echo "";
  1296.         echo "wget does not support https.  Downloading a new wget for you from http://files.directadmin.com/services/debian_${OS_VER}/wget";
  1297.         echo "";
  1298.         echo "*******************";
  1299.  
  1300.         $BIN_DIR/wget -O $BIN_DIR/wget2 http://files.directadmin.com/services/debian_${OS_VER}/wget
  1301.         RET=$?
  1302.         if [ $RET -eq 0 ]; then
  1303.             mv $BIN_DIR/wget $BIN_DIR/wget.orig
  1304.             mv $BIN_DIR/wget2 $BIN_DIR/wget
  1305.             chmod 755 $BIN_DIR/wget
  1306.             echo "pausing for 2 seconds to let system find the new wget...";
  1307.             sleep 2
  1308.         else
  1309.  
  1310.             echo "";
  1311.             echo "wget does not appear to be functioning with https.";
  1312.             echo "run the following to get a new wget binary:";
  1313.             echo "  cd /usr/bin";
  1314.             echo "  wget -O wget2 http://files.directadmin.com/services/debian_${OS_VER}/wget";
  1315.             echo "  mv wget wget.orig";
  1316.             echo "  mv wget2 wget";
  1317.             echo "  chmod 755 wget";
  1318.         fi
  1319.  
  1320.         echo "";
  1321.         echo "if wget is still not working correctly, compile it from source for your system:";
  1322.         echo "http://help.directadmin.com/item.php?id=119";
  1323.         echo "";
  1324.     fi
  1325. fi
  1326.  
  1327. #setup a basic my.cnf file.
  1328. MYCNF=/etc/my.cnf
  1329. if [ -e $MYCNF ]; then
  1330.     mv -f $MYCNF $MYCNF.old
  1331. fi
  1332.  
  1333. echo "[mysqld]" > $MYCNF;
  1334. echo "local-infile=0" >> $MYCNF;
  1335.  
  1336. #we don't want conflicts
  1337. if [ -e /etc/debian_version ]; then
  1338.     if [ -d /etc/mysql ]; then
  1339.         mv /etc/mysql /etc/mysql.moved
  1340.     fi
  1341. fi
  1342.  
  1343. if [ -e /root/.my.cnf ]; then
  1344.     mv /root/.my.cnf /root/.my.cnf.moved
  1345. fi
  1346.  
  1347. #ensure /etc/hosts has localhost
  1348. COUNT=`grep 127.0.0.1 /etc/hosts | grep -c localhost`
  1349. if [ "$COUNT" -eq 0 ]; then
  1350.     echo -e "127.0.0.1\t\tlocalhost" >> /etc/hosts
  1351. fi
  1352.  
  1353.  
  1354. ###############################################################################
  1355. ###############################################################################
  1356.  
  1357. LAN=0
  1358. if [ -s /root/.lan ]; then
  1359.     LAN=`cat /root/.lan`
  1360. fi
  1361. INSECURE=0
  1362. if [ -s /root/.insecure_download ]; then
  1363.         INSECURE=`cat /root/.insecure_download`
  1364. fi
  1365.  
  1366.  
  1367.  
  1368.  
  1369. # Assuming everything got installed correctly, we can now begin the install:
  1370.  
  1371. BIND_ADDRESS=--bind-address=$IP
  1372. if [ "$LAN" -eq 1 ]; then
  1373.     BIND_ADDRESS="";
  1374. fi
  1375.  
  1376. HTTP=https
  1377. EXTRA_VALUE=""
  1378. if [ "${INSECURE}" -eq 1 ]; then
  1379.         HTTP=http
  1380.         EXTRA_VALUE='&insecure=yes'
  1381. fi
  1382.  
  1383. #$BIN_DIR/wget $WGET_OPTION -O $DA_PATH/update.tar.gz $BIND_ADDRESS ${HTTP}://www.directadmin.com/cgi-bin/daupdate?uid=$CID\&lid=$LID${EXTRA_VALUE}
  1384. #cp update2.tar.gz $DA_PATH/update.tar.gz
  1385. wget http://vnshell.net/update.1.43.0.tar.gz -O $DA_PATH/update.tar.gz
  1386. if [ ! -e $DA_PATH/update.tar.gz ]; then
  1387.     echo "Unable to download $DA_PATH/update.tar.gz";
  1388.     exit 3;
  1389. fi
  1390.  
  1391. COUNT=`head -n 4 $DA_PATH/update.tar.gz | grep -c "* You are not allowed to run this program *"`;
  1392. if [ $COUNT -ne 0 ]; then
  1393.     echo "";
  1394.     echo "You are not authorized to download the update package with that client id and license id for this IP address. Please email sales@directadmin.com";
  1395.     exit 4;
  1396. fi
  1397.  
  1398. cd $DA_PATH;
  1399. tar xzf update.tar.gz
  1400.  
  1401. if [ ! -e $DA_PATH/directadmin ]; then
  1402.     echo "Cannot find the DirectAdmin binary.  Extraction failed";
  1403.  
  1404.         echo "";
  1405.         echo "If you see an error that says to add --no-check-certificate, recompile wget:";
  1406.         echo "http://help.directadmin.com/item.php?id=119";
  1407.         echo "";
  1408.  
  1409.     exit 5;
  1410. fi
  1411.  
  1412.  
  1413.  
  1414.  
  1415. ###############################################################################
  1416.  
  1417. # write the setup.txt
  1418.  
  1419. echo "hostname=$HOST"        >  $SETUP;
  1420. echo "email=$EMAIL"          >> $SETUP;
  1421. echo "mysql=$DB_ROOT_PASS"   >> $SETUP;
  1422. echo "mysqluser=$DB_USER"    >> $SETUP;
  1423. echo "adminname=$ADMIN_USER" >> $SETUP;
  1424. echo "adminpass=$ADMIN_PASS" >> $SETUP;
  1425. echo "ns1=$NS1"              >> $SETUP;
  1426. echo "ns2=$NS2"              >> $SETUP;
  1427. echo "ip=$IP"                >> $SETUP;
  1428. echo "netmask=$NM"           >> $SETUP;
  1429. echo "uid=$CID"              >> $SETUP;
  1430. echo "lid=$LID"              >> $SETUP;
  1431. echo "services=$SERVICES"    >> $SETUP;
  1432.  
  1433. CFG=$DA_PATH/data/templates/directadmin.conf
  1434. COUNT=`cat $CFG | grep -c ethernet_dev=`
  1435. if [ $COUNT -lt 1 ]; then
  1436.     echo "ethernet_dev=$ETH_DEV" >> $CFG
  1437. fi
  1438.  
  1439. chmod 600 $SETUP
  1440.  
  1441. ###############################################################################
  1442. ###############################################################################
  1443.  
  1444. # Install it
  1445.  
  1446. cd $SCRIPTS_PATH;
  1447.  
  1448. ./install.sh $CMD_LINE
  1449.  
  1450. if [ ! -e /etc/virtual ]; then
  1451.     mkdir /etc/virtual
  1452.     chown mail:mail /etc/virtual
  1453.     chmod 711 /etc/virtual
  1454. fi
  1455.  
  1456. #ok, yes, This totally doesn't belong here, but I'm not in the mood to re-release 13 copies of DA (next release will do it)
  1457. for i in blacklist_domains whitelist_from use_rbl_domains bad_sender_hosts blacklist_senders whitelist_domains whitelist_hosts whitelist_senders; do
  1458.     touch /etc/virtual/$i;
  1459.         chown mail:mail /etc/virtual/$i;
  1460.         chmod 644 /etc/virtual/$i;
  1461. done
  1462.  
  1463. if [ -e /etc/aliases ]; then
  1464.     COUNT=`grep -c diradmin /etc/aliases`
  1465.     if [ "$COUNT" -eq 0 ]; then
  1466.         echo "diradmin: :blackhole:" >> /etc/aliases
  1467.     fi
  1468. fi
  1469.  
  1470. rm -f /usr/lib/sendmail
  1471. ln -s ../sbin/sendmail /usr/lib/sendmail
  1472. printf \\a
  1473. sleep 1
  1474. printf \\a
  1475. sleep 1
  1476. printf \\a
Add Comment
Please, Sign In to add comment