Advertisement
Guest User

Untitled

a guest
Feb 24th, 2017
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.80 KB | None | 0 0
  1. #!/bin/bash
  2. # LAMP Stack + NextCloud install
  3.  
  4. check_your_privilege () {
  5. if [[ "$(id -u)" != 0 ]]; then
  6. echo -e "\e[91mError: This setup script requires root permissions. Please run the script as root.\e[0m" > /dev/stderr
  7. exit 1
  8. fi
  9. }
  10. check_your_privilege
  11.  
  12. clear
  13.  
  14. echo -e "\e[7mThank you for choosing to install NextCloud. The installation will first Install a LAMP Stack, followed by the installation of NextCloud. \e[0m"
  15.  
  16. echo
  17. echo
  18.  
  19. echo -n "Press any key to continue"
  20. read -rsn1
  21.  
  22. clear
  23.  
  24. while true; do
  25. echo -n -e "\e[7mDo you wish to run system updates? [y/n]:\e[0m "
  26. read yn
  27. case $yn in
  28. [yY] | [yY][Ee][Ss] ) echo -ne "\e[36mUpdating System - This may take awhile!\e[0m"; sudo apt-get -y update >/dev/null 2>>lamp.log && sudo apt-get -y upgrade >/dev/null 2>>lamp.log;echo -e "\r\033[K\e[36mUpdating System ----- Complete\e[0m"; break;; #(Run both in one line)
  29. [nN] | [n|N][O|o] ) echo -e "\e[36mSkipping Updates\e[0m"; break;; #Boring people don't update
  30. * ) echo -e "\e[7mPlease answer y or n.\e[0m ";; #Error handling to get the right answer
  31. esac
  32. done
  33.  
  34. echo -ne "\e[36mInstalling Apache2\e[0m"
  35. apt-get install -y apache2 >/dev/null 2>>install.log
  36. echo -e "\r\033[K\e[36mInstalling Apache2 ----- Complete\e[0m"
  37.  
  38. echo
  39.  
  40. echo -e "\e[7mWhat is your public IP?\e[0m"
  41. read -p "> " PUBIP
  42.  
  43. echo
  44.  
  45. sed -i "222s/.*/ServerName ${PUBIP}/" /etc/apache2/apache2.conf >/dev/null 2>>lamp.log
  46.  
  47. echo -ne "\e[36mRestarting Apache2\e[0m"
  48. systemctl restart apache2 >/dev/null 2>>lamp.log
  49. echo -e "\r\033[K\e[36mRestarting Apache2 ----- Complete\e[0m"
  50.  
  51. echo
  52.  
  53. echo -e "\e[7mPlease set a MySQL Root Password!\e[0m"
  54. read -p "> " -s MYSQLPASS
  55.  
  56. echo
  57. echo
  58.  
  59. echo -e "\e[7mPlease re-enter MySQL Root Password!\e[0m"
  60. read -p "> " -s MYSQLPASS2
  61.  
  62. echo
  63. echo
  64.  
  65. while [ "${MYSQLPASS}" != "${MYSQLPASS2}" ];
  66. do
  67. echo
  68. echo "Passwords do not match, please try again."
  69. read -s -p "Enter Password: " MYSQLPASS
  70. echo
  71. read -s -p "Re-enter Password: " MYSQLPASS2
  72. done
  73.  
  74. echo
  75. echo
  76.  
  77. echo -ne "\e[36mInstalling MySQL\e[0m"
  78. debconf-set-selections <<< "mysql-server mysql-server/root_password password ${MYSQLPASS}"
  79. debconf-set-selections <<< "mysql-server mysql-server/root_password_again password ${MYSQLPASS}"
  80. apt-get install -y mysql-server >/dev/null 2>>lamp.log
  81. echo -e "\r\033[K\e[36mInstalling MySQL ----- Complete\e[0m"
  82.  
  83. echo -ne "\e[36mSetting up MySQL\e[0m"
  84. mysql_secure_installation -u root -p"${MYSQLPASS}" << EOF >/dev/null 2>>lamp.log
  85. n
  86. n
  87. y
  88. y
  89. y
  90. y
  91. EOF
  92. echo -e "\r\033[K\e[36mSetting up MySQL ----- Complete\e[0m"
  93.  
  94. echo -ne "\e[36mInstalling PHP\e[0m"
  95. apt-get install -y php libapache2-mod-php php-mcrypt php-mysql >/dev/null 2>>lamp.log
  96. echo -e "\r\033[K\e[36mInstalling PHP ----- Complete\e[0m"
  97.  
  98. echo -ne "\e[36mUpdating PHP Config\e[0m"
  99. sed -i "2s/.*/ DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm/" /etc/apache2/mods-enabled/dir.conf >/dev/null 2>>lamp.log
  100. echo -e "\r\033[K\e[36mUpdating PHP Config ----- Complete\e[0m"
  101.  
  102.  
  103. echo -ne "\e[36mRestarting Apache2\e[0m"
  104. systemctl restart apache2 >/dev/null 2>>lamp.log
  105. echo -e "\r\033[K\e[36mRestarting Apache2 ----- Complete\e[0m"
  106.  
  107. echo -ne "\e[36mChanging Directory\e[0m"
  108. cd /tmp
  109. echo -e "\r\033[K\e[36mChanging Directory ----- Complete\e[0m"
  110.  
  111. echo -ne "\e[36mDownloading NextCloud\e[0m"
  112. curl -LO https://download.nextcloud.com/server/releases/latest.tar.bz2 >/dev/null 2>>lamp.log
  113. echo -e "\r\033[K\e[36mDownloading NextCloud ----- Complete\e[0m"
  114.  
  115. echo -ne "\e[36mExtracting NextCloud\e[0m"
  116. sudo tar -C /var/www -xvjf /tmp/latest.tar.bz2 >/dev/null 2>>lamp.log
  117. echo -e "\r\033[K\e[36mExtracting NextCloud ----- Complete\e[0m"
  118.  
  119. echo -ne "\e[36mDownloading NextCloud Config Script\e[0m"
  120. wget https://raw.githubusercontent.com/tylerhammer/homelab/master/nextcloud.sh?token=AQcCSp4Mubz8ZI4TJCu5B8WAlZ04HsdAks5YqepUwA%3D%3D >/dev/null 2>>lamp.log
  121. echo -e "\r\033[K\e[36mDownloading NextCloud Config Script ----- Complete\e[0m"
  122.  
  123. echo -ne "\e[36mRunning NextCloud Config Script\e[0m"
  124. bash /tmp/nextcloud.sh >/dev/null 2>>lamp.log
  125. echo -e "\r\033[K\e[36mRunning NextCloud Config Script ----- Complete\e[0m"
  126.  
  127. echo -ne "\e[36mCreating Apache2 Config for NextCloud\e[0m"
  128. cat >/etc/apache2/sites-available/nextcloud.conf<<EOF 2>>lamp.log
  129. Alias /nextcloud "/var/www/nextcloud/"
  130.  
  131. <Directory /var/www/nextcloud/>
  132. Options +FollowSymlinks
  133. AllowOverride All
  134.  
  135. <IfModule mod_dav.c>
  136. Dav off
  137. </IfModule>
  138.  
  139. SetEnv HOME /var/www/nextcloud
  140. SetEnv HTTP_HOME /var/www/nextcloud
  141.  
  142. </Directory>
  143. EOF
  144. echo -e "\r\033[K\e[36mCreating Apache2 Config for NextCloud ----- Complete\e[0m"
  145.  
  146. echo -ne "\e[36mEnabling a2ensite\e[0m"
  147. a2ensite nextcloud >/dev/null 2>>lamp.log
  148. echo -e "\r\033[K\e[36mEnabling a2ensite ----- Complete\e[0m"
  149.  
  150. echo -ne "\e[36mEnabling a2enmod Rewrite\e[0m"
  151. a2enmod rewrite >/dev/null 2>>lamp.log
  152. echo -e "\r\033[K\e[36mEnabling a2enmod Rewrite ----- Complete\e[0m"
  153.  
  154. echo -ne "\e[36mUpdating System\e[0m"
  155. apt-get update >/dev/null 2>>lamp.log
  156. echo -e "\r\033[K\e[36mUpdating System ----- Complete\e[0m"
  157.  
  158. echo -ne "\e[36mInstalling PHP Dependencies for NextCloud\e[0m"
  159. apt-get install -y php-bz2 php-curl php-gd php-imagick php-intl php-mbstring php-xml php-zip >/dev/null 2>>lamp.log
  160. echo -e "\r\033[K\e[36mInstalling PHP Dependencies for NextCloud ----- Complete\e[0m"
  161.  
  162. echo -ne "\e[36mRestarting Apache2\e[0m"
  163. systemctl restart apache2 >/dev/null 2>>lamp.log
  164. echo -e "\r\033[K\e[36mRestarting Apache2 ----- Complete\e[0m"
  165.  
  166. mysql -u root -p"${MYSQLPASS}" -e "CREATE DATABASE nextcloud" >/dev/null 2>>lamp.log
  167. mysql -u root -p"${MYSQLPASS}" -e "GRANT ALL ON nextcloud.* to 'nextcloud'@'localhost' IDENTIFIED BY ${MYSQLPASS}" >/dev/null 2>>lamp.log
  168. mysql -u root -p"${MYSQLPASS}" -e "FLUSH PRIVILEGES" >/dev/null 2>>lamp.log
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement