bootstrap.sh (2976B)
1 #!/usr/bin/env bash 2 3 # Use single quotes instead of double quotes to make it work with special-character passwords 4 PASSWORD='12345678' 5 PROJECTFOLDER='myproject' 6 7 # Create project folder, written in 3 single mkdir-statements to make sure this runs everywhere without problems 8 sudo mkdir "/var/www" 9 sudo mkdir "/var/www/html" 10 sudo mkdir "/var/www/html/${PROJECTFOLDER}" 11 12 sudo apt-get update 13 sudo apt-get -y upgrade 14 15 sudo apt-get install -y apache2 16 sudo apt-get install -y php5 17 18 sudo debconf-set-selections <<< "mysql-server mysql-server/root_password password $PASSWORD" 19 sudo debconf-set-selections <<< "mysql-server mysql-server/root_password_again password $PASSWORD" 20 sudo apt-get -y install mysql-server 21 sudo apt-get install php5-mysql 22 23 sudo debconf-set-selections <<< "phpmyadmin phpmyadmin/dbconfig-install boolean true" 24 sudo debconf-set-selections <<< "phpmyadmin phpmyadmin/app-password-confirm password $PASSWORD" 25 sudo debconf-set-selections <<< "phpmyadmin phpmyadmin/mysql/admin-pass password $PASSWORD" 26 sudo debconf-set-selections <<< "phpmyadmin phpmyadmin/mysql/app-pass password $PASSWORD" 27 sudo debconf-set-selections <<< "phpmyadmin phpmyadmin/reconfigure-webserver multiselect apache2" 28 sudo apt-get -y install phpmyadmin 29 30 # setup hosts file 31 VHOST=$(cat <<EOF 32 <VirtualHost *:80> 33 DocumentRoot "/var/www/html/${PROJECTFOLDER}/public" 34 <Directory "/var/www/html/${PROJECTFOLDER}/public"> 35 AllowOverride All 36 Require all granted 37 </Directory> 38 </VirtualHost> 39 EOF 40 ) 41 echo "${VHOST}" > /etc/apache2/sites-available/000-default.conf 42 43 # enable mod_rewrite 44 sudo a2enmod rewrite 45 46 # restart apache 47 service apache2 restart 48 49 # install curl (needed to use git afaik) 50 sudo apt-get -y install curl 51 sudo apt-get -y install php5-curl 52 53 # install openssl (needed to clone from GitHub, as github is https only) 54 sudo apt-get -y install openssl 55 56 # install PHP GD, the graphic lib (we create captchas and avatars) 57 sudo apt-get -y install php5-gd 58 59 # install git 60 sudo apt-get -y install git 61 62 # git clone HUGE 63 sudo git clone https://github.com/panique/huge "/var/www/html/${PROJECTFOLDER}" 64 65 # install Composer 66 curl -s https://getcomposer.org/installer | php 67 mv composer.phar /usr/local/bin/composer 68 69 # go to project folder, load Composer packages 70 cd "/var/www/html/${PROJECTFOLDER}" 71 composer install --dev 72 73 # run SQL statements from install folder 74 sudo mysql -h "localhost" -u "root" "-p${PASSWORD}" < "/var/www/html/${PROJECTFOLDER}/application/_installation/01-create-database.sql" 75 sudo mysql -h "localhost" -u "root" "-p${PASSWORD}" < "/var/www/html/${PROJECTFOLDER}/application/_installation/02-create-table-users.sql" 76 sudo mysql -h "localhost" -u "root" "-p${PASSWORD}" < "/var/www/html/${PROJECTFOLDER}/application/_installation/03-create-table-notes.sql" 77 78 # writing rights to avatar folder 79 sudo chmod 0777 -R "/var/www/html/${PROJECTFOLDER}/public/avatars" 80 81 # remove Apache's default demo file 82 sudo rm "/var/www/html/index.html" 83 84 # final feedback 85 echo "Voila!"