Skip to content

Instantly share code, notes, and snippets.

@robclancy
Last active January 2, 2016 22:09
Show Gist options
  • Save robclancy/8368160 to your computer and use it in GitHub Desktop.
Save robclancy/8368160 to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
# Upgrade Base Packages
sudo apt-get update
sudo apt-get upgrade -y
# Install Web Packages
sudo apt-get install -y build-essential dkms re2c php5-fpm php5-cli php5-dev php-pear php5-xdebug php5-json php5-sqlite \
php5-mysql php5-pgsql php5-gd curl php5-curl memcached php5-memcached libmcrypt4 php5-mcrypt postgresql redis-server \
openssh-server git vim python2.7-dev
# Install MySQL
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password password secret'
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password secret'
sudo apt-get -y install mysql-server
# Configure Postgres
sudo sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '*'/g" /etc/postgresql/9.1/main/postgresql.conf
echo "host all all 10.0.2.2/32 md5" | sudo tee -a /etc/postgresql/9.1/main/pg_hba.conf
sudo -u postgres psql -c "CREATE ROLE robbo LOGIN UNENCRYPTED PASSWORD 'secret' SUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;"
sudo -u postgres /usr/bin/createdb --echo --owner=robbo laravel
sudo service postgresql restart
# Configure MySQL
sudo sed -i '/^bind-address/s/bind-address.*=.*/bind-address = 10.0.2.15/' /etc/mysql/my.cnf
mysql -u root -p mysql -e "GRANT ALL ON *.* TO root@'10.0.2.2' IDENTIFIED BY 'secret';"
sudo service mysql restart
# Install Composer
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
# Install PHPUnit
sudo pear config-set auto_discover 1
sudo pear install pear.phpunit.de/phpunit
# Enable PHP Error Reporting
sudo sed -i "s/error_reporting = .*/error_reporting = E_ALL/" etc/php5/fpm/php.ini
sudo sed -i "s/display_errors = .*/display_errors = On/" etc/php5/fpm/php.ini
sudo sed -i "s/error_reporting = .*/error_reporting = E_ALL/" etc/php5/fpm/php.ini
sudo sed -i "s/display_errors = .*/display_errors = On/" etc/php5/fpm/php.ini
sudo sed -i "s/memory_limit = .*/memory_limit = 512M/" etc/php5/fpm/php.ini
# Generate SSH Key
cd ~
mkdir .ssh
cd .ssh
ssh-keygen -f id_rsa -t rsa -N ''
# Install NodeJs
cd ~
wget http://nodejs.org/dist/v0.10.24/node-v0.10.24.tar.gz
tar -xvf node-v0.10.24.tar.gz
cd node-v0.10.24
./configure
make
sudo make install
# NodeJs Clean
cd ~
rm ~/node-v0.10.24.tar.gz
rm -rf ~/node-v0.10.24
# Install Grunt
sudo npm install -g grunt-cli
# Install Forever
sudo npm install -g forever
# Create Scripts Directory
mkdir ~/Scripts
mkdir ~/Scripts/PhpInfo
# Build PHP Info Site
echo "<?php phpinfo();" > ~/Scripts/PhpInfo/index.php
# Configure Nginx Hosts
# TODO
# TODO mailcatcher
# VirtualBox Guest Additions
sudo mount /dev/cdrom /media/cdrom
sudo sh /media/cdrom/VBoxLinuxAdditions.run
sudo usermod -aG vboxsf www-data
sudo usermod -aG vboxsf robbo
sudo reboot
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment