Skip to content

Instantly share code, notes, and snippets.

@rdev5
Last active January 20, 2016 14:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rdev5/86e01921f63b0b10764b to your computer and use it in GitHub Desktop.
Save rdev5/86e01921f63b0b10764b to your computer and use it in GitHub Desktop.
Laravel installer for Koding.io based on steps outlined at https://laravel.com/docs/5.2#installing-laravel
#!/bin/bash
# author: matt borja
SWAP_SIZE=256
APP_NAME="$1"
INSTALL_PATH="$2"
UPDATE_PACKAGES="$3"
INSTALL_WITH_COMPOSER="$4"
if [ -z "$APP_NAME" ]; then
echo "Usage: $0 app_name web_root [update_packages:y] [install_with_composer:y]"
exit
fi
if [ "$UPDATE_PACKAGES" -eq "y" ]; then
echo "[+] update packages"
sudo apt-get update -y
fi
echo "[+] check server requirements"
php -v
php -m | grep -Ei 'mbstring|pdo|token|openssl'
echo "[+] install curl"
sudo apt-get install -y curl
echo "[+] install and link composer"
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
sudo chown -R `whoami`:`whoami` ~/.composer
if [ "$INSTALL_WITH_COMPOSER" -eq "y"]; then
echo "[+] swap on for composer (https://getcomposer.org/doc/articles/troubleshooting.md#proc-open-fork-failed-errors)"
sudo dd if=/dev/zero of=/var/swap.1 bs=1M count="$SWAP_SIZE"
sudo mkswap /var/swap.1
sudo swapon /var/swap.1
echo "[+] create app"
git clone https://github.com/laravel/laravel.git "$APP_NAME"
cd "$APP_NAME"; composer install
echo "[+] swap off for composer"
sudo swapoff /var/swap.1
sudo rm /var/swap.1
else
echo "[+] install and link laravel"
composer global require 'laravel/installer'
echo 'PATH=~/.composer/vendor/bin:$PATH' >> ~/.bash_profile
source ~/.bash_profile
laravel new "$APP_NAME"
cd "$APP_NAME"
fi
echo "[+] deploy laravel"
mv "$INSTALL_PATH" "$INSTALL_PATH".old
ln -sf $(pwd public)/public "$INSTALL_PATH"
echo "[+] configure directory permissions"
sudo chgrp -R www-data storage/
sudo chgrp -R www-data bootstrap/
sudo chmod -R g+w storage/
sudo chmod -R g+w bootstrap/
echo "[+] configure application key"
mv .env.example .env
php artisan key:generate
echo "[+] installing mysql (see http://www.koding.com/docs/installing-mysql)"
kpm install mysql
sudo apt-get install php5-mysql
sudo service apache2 restart
echo "[+] creating application database"
mysqladmin -u root -p create "$APP_NAME"
echo GRANT ALL PRIVILEGES ON "$APP_NAME".* TO "$APP_NAME"@localhost IDENTIFIED BY \'"$APP_NAME"\'\; > db-setup.sql
echo FLUSH PRIVILEGES\; >> db-setup.sql
mysql -u root -p < db-setup.sql
rm db-setup.sql
echo "[+] setting database credentials in application ($APP_NAME:$APP_NAME)"
sed -i s/^DB_DATABASE=.*$/DB_DATABASE="$APP_NAME"/g .env
sed -i s/^DB_USERNAME=.*$/DB_USERNAME="$APP_NAME"/g .env
sed -i s/^DB_PASSWORD=.*$/DB_PASSWORD="$APP_NAME"/g .env
echo "[+] ready to begin scaffolding (https://laravel.com/docs/master/quickstart-intermediate)!"
wget -qO - https://gist.githubusercontent.com/rdev5/74ed0e53184bf98ed0dd/raw/e152002135807b5cfb19970bc9400d98abdbda85/laravel-scaffolding.sh
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment