-
-
Save little9/33ce1a01e4474c328429eae7eeab2119 to your computer and use it in GitHub Desktop.
Vagrant provision script for php, Apache, MySQL, phpMyAdmin, Laravel, and javascript helpers. Tested with Ubuntu 16.04.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /usr/bin/env bash | |
# Variables | |
DBHOST=localhost | |
DBNAME=sp | |
DBUSER=sp | |
DBPASSWD=grokgro3#3ogk3og3 | |
echo -e "\n--- Mkay, installing now... ---\n" | |
echo -e "\n--- Updating packages list ---\n" | |
apt-get -qq update | |
echo -e "\n--- Install base packages ---\n" | |
apt-get -y install emacs23-nox curl build-essential git >> /vagrant/vm_build.log 2>&1 | |
echo -e "\n--- Updating packages list ---\n" | |
apt-get -qq update | |
# MySQL setup for development purposes ONLY | |
echo -e "\n--- Install MySQL specific packages and settings ---\n" | |
debconf-set-selections <<< "mysql-server mysql-server/root_password password $DBPASSWD" | |
debconf-set-selections <<< "mysql-server mysql-server/root_password_again password $DBPASSWD" | |
debconf-set-selections <<< "phpmyadmin phpmyadmin/dbconfig-install boolean true" | |
debconf-set-selections <<< "phpmyadmin phpmyadmin/app-password-confirm password $DBPASSWD" | |
debconf-set-selections <<< "phpmyadmin phpmyadmin/mysql/admin-pass password $DBPASSWD" | |
debconf-set-selections <<< "phpmyadmin phpmyadmin/mysql/app-pass password $DBPASSWD" | |
debconf-set-selections <<< "phpmyadmin phpmyadmin/reconfigure-webserver multiselect none" | |
apt-get -y install mysql-server phpmyadmin >> /vagrant/vm_build.log 2>&1 | |
echo -e "\n--- Setting up our MySQL user and db ---\n" | |
mysql -uroot -p$DBPASSWD -e "CREATE DATABASE $DBNAME" >> /vagrant/vm_build.log 2>&1 | |
mysql -uroot -p$DBPASSWD -e "grant all privileges on $DBNAME.* to '$DBUSER'@'localhost' identified by '$DBPASSWD'" > /vagrant/vm_build.log 2>&1 | |
echo -e "\n--- Installing PHP-specific packages ---\n" | |
apt-get -y install php5 apache2 libapache2-mod-php php5-curl php5-gd php5-mysql php5-xsl php5-gettext >> /vagrant/vm_build.log 2>&1 | |
echo -e "\n--- Enabling mod-rewrite ---\n" | |
a2enmod rewrite >> /vagrant/vm_build.log 2>&1 | |
echo -e "\n--- Allowing Apache override to all ---\n" | |
sed -i "s/AllowOverride None/AllowOverride All/g" /etc/apache2/apache2.conf | |
echo -e "\n--- Setting document root to public directory ---\n" | |
rm -rf /var/www | |
ln -fs /vagrant/public /var/www | |
echo -e "\n--- Downloading SP from GitHub ---\n" | |
git clone https://github.com/subjectsplus/SubjectsPlus.git /vagrant/public/SubjectsPlus | |
echo -e "\n--- We definitly need to see the PHP errors, turning them on ---\n" | |
sed -i "s/error_reporting = .*/error_reporting = E_ALL/" /etc/php5/apache2/php.ini | |
sed -i "s/display_errors = .*/display_errors = On/" /etc/php5/apache2/php.ini | |
# Source https://raw.github.com/Intracto/Puppet/master/apache2/manifests/init.pp | |
echo -e "\n--- Change apache user to vagrant ---\n" | |
sudo sed -i 's/APACHE_RUN_USER=www-data/APACHE_RUN_USER=vagrant/' /etc/apache2/envvars | |
sudo sed -i 's/APACHE_RUN_GROUP=www-data/APACHE_RUN_GROUP=vagrant/' /etc/apache2/envvars | |
sudo chown -R vagrant:www-data /var/lock/apache2 | |
echo -e "\n--- Restarting Apache ---\n" | |
service apache2 restart >> /vagrant/vm_build.log 2>&1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment