Advertisement
Guest User

Untitled

a guest
Jan 13th, 2017
274
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.15 KB | None | 0 0
  1. bootstrap.sh
  2. #!/usr/bin/env bash
  3.  
  4. # BEGIN ########################################################################
  5. echo -e "-- ------------------ --\n"
  6. echo -e "-- BEGIN BOOTSTRAPING --\n"
  7. echo -e "-- ------------------ --\n"
  8.  
  9. # VARIABLES ####################################################################
  10. echo -e "-- Setting global variables\n"
  11. APACHE_CONFIG=/etc/apache2/apache2.conf
  12. PHP_INI=/etc/php5/apache2/php.ini
  13. SITES_ENABLED=/etc/apache2/sites-enabled
  14. PHPMYADMIN_CONFIG=/etc/phpmyadmin/config-db.php
  15. DOCUMENT_ROOT=/var/www/html
  16. APPLICATION_HOST=localhost
  17. VIRTUAL_HOST=localhost
  18. MYSQL_DATABASE=lamp
  19. MYSQL_USER=root
  20. MYSQL_PASSWORD=root
  21.  
  22. # BOX ##########################################################################
  23. echo -e "-- Updating packages list\n"
  24. apt-get update -y -qq
  25.  
  26. # APACHE #######################################################################
  27. echo -e "-- Installing Apache web server\n"
  28. apt-get install -y apache2 > /dev/null 2>&1
  29.  
  30. echo -e "-- Adding ServerName to Apache config\n"
  31. grep -q "ServerName ${VIRTUAL_HOST}" "${APACHE_CONFIG}" || echo "ServerName ${VIRTUAL_HOST}" >> "${APACHE_CONFIG}"
  32.  
  33. echo -e "-- Allowing Apache override to all\n"
  34. sed -i "s/AllowOverride None/AllowOverride All/g" ${APACHE_CONFIG}
  35.  
  36. echo -e "-- Updating vhost file\n"
  37. cat > ${SITES_ENABLED}/000-default.conf <<EOF
  38. <VirtualHost *:80>
  39. ServerName ${VIRTUAL_HOST}
  40. DocumentRoot ${DOCUMENT_ROOT}
  41.  
  42. <Directory ${DOCUMENT_ROOT}>
  43. Options Indexes FollowSymlinks
  44. AllowOverride All
  45. Order allow,deny
  46. Allow from all
  47. Require all granted
  48. </Directory>
  49.  
  50. ErrorLog ${APACHE_LOG_DIR}/${VIRTUAL_HOST}-error.log
  51. CustomLog ${APACHE_LOG_DIR}/${VIRTUAL_HOST}-access.log combined
  52. </VirtualHost>
  53. EOF
  54.  
  55. echo -e "-- Restarting Apache web server\n"
  56. service apache2 restart
  57.  
  58. # MYSQL ########################################################################
  59. echo -e "-- Installing MySQL server\n"
  60. debconf-set-selections <<< "mysql-server mysql-server/root_password password ${MYSQL_PASSWORD}"
  61. debconf-set-selections <<< "mysql-server mysql-server/root_password_again password ${MYSQL_PASSWORD}"
  62.  
  63. echo -e "-- Installing MySQL packages\n"
  64. apt-get install -y mysql-server > /dev/null 2>&1
  65. apt-get install -y libapache2-mod-auth-mysql > /dev/null 2>&1
  66. apt-get install -y php5-mysql > /dev/null 2>&1
  67.  
  68. echo -e "-- Setting up a dummy MySQL database\n"
  69. mysql -u${MYSQL_USER} -p${MYSQL_PASSWORD} -h ${APPLICATION_HOST} -e "CREATE DATABASE IF NOT EXISTS ${MYSQL_DATABASE}"
  70.  
  71. # PHPMYADMIN ###################################################################
  72. echo -e "-- Installing phpMyAdmin GUI\n"
  73. debconf-set-selections <<< "phpmyadmin phpmyadmin/dbconfig-install boolean true"
  74. debconf-set-selections <<< "phpmyadmin phpmyadmin/app-password-confirm password ${MYSQL_PASSWORD}"
  75. debconf-set-selections <<< "phpmyadmin phpmyadmin/mysql/admin-pass password ${MYSQL_PASSWORD}"
  76. debconf-set-selections <<< "phpmyadmin phpmyadmin/mysql/app-pass password ${MYSQL_PASSWORD}"
  77. debconf-set-selections <<< "phpmyadmin phpmyadmin/reconfigure-webserver multiselect apache2"
  78.  
  79. echo -e "-- Installing phpMyAdmin package\n"
  80. apt-get install -y phpmyadmin > /dev/null 2>&1
  81.  
  82. echo -e "-- Setting up phpMyAdmin GUI login user\n"
  83. sed -i "s/dbuser='phpmyadmin'/dbuser='${MYSQL_USER}'/g" ${PHPMYADMIN_CONFIG}
  84.  
  85. echo -e "-- Restarting Apache web server\n"
  86. service apache2 restart
  87.  
  88. # PHP ##########################################################################
  89. echo -e "-- Fetching PHP 5.6 repository\n"
  90. add-apt-repository -y ppa:ondrej/php5-5.6 > /dev/null 2>&1
  91.  
  92. echo -e "-- Updating packages list\n"
  93. apt-get update -y -qq
  94.  
  95. echo -e "-- Installing PHP modules\n"
  96. apt-get install -y python-software-properties > /dev/null 2>&1
  97. apt-get install -y libapache2-mod-php5 > /dev/null 2>&1
  98. apt-get install -y php5 > /dev/null 2>&1
  99. apt-get install -y php5-cli > /dev/null 2>&1
  100. apt-get install -y php5-mcrypt > /dev/null 2>&1
  101.  
  102. echo -e "-- Enabling PHP mcrypt module\n"
  103. php5enmod mcrypt
  104.  
  105. echo -e "-- Turning PHP error reporting on\n"
  106. sed -i "s/error_reporting = .*/error_reporting = E_ALL/" ${PHP_INI}
  107. sed -i "s/display_errors = .*/display_errors = On/" ${PHP_INI}
  108.  
  109. # TEST #########################################################################
  110. echo -e "-- Creating a dummy index.html file\n"
  111. cat > ${DOCUMENT_ROOT}/index.html <<EOD
  112. <html>
  113. <head>
  114. <title>${HOSTNAME}</title>
  115. </head>
  116. <body>
  117. <h1>${HOSTNAME}</h1>
  118. <p>This is the landing page for <b>${HOSTNAME}</b>.</p>
  119. </body>
  120. </html>
  121. EOD
  122.  
  123. echo -e "-- Creating a dummy index.php file\n"
  124. cat > ${DOCUMENT_ROOT}/index.php <<EOD
  125. <?php
  126. phpinfo();
  127. EOD
  128.  
  129. # END ##########################################################################
  130. echo -e "-- ---------------- --"
  131. echo -e "-- END BOOTSTRAPING --"
  132. echo -e "-- ---------------- --"
  133.  
  134. Vagrantfile
  135. # -*- mode: ruby -*-
  136. # vi: set ft=ruby :
  137.  
  138. Vagrant.configure("2") do |config|
  139.  
  140. config.vm.box = "hashicorp/precise32"
  141.  
  142. config.vm.define :lamp do |lamp_config|
  143. lamp_config.vm.hostname = 'lamp'
  144. lamp_config.vm.network "public_network"
  145. lamp_config.vm.provision :shell, path: "bootstrap.sh"
  146. end
  147.  
  148. config.vm.provider :virtualbox do |vb_config|
  149. vb_config.name = "Vagrant - Ubuntu 14.04 LAMP"
  150. end
  151.  
  152. config.vm.synced_folder "public", "/var/www/html"
  153.  
  154. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement