Last active
January 20, 2016 14:39
-
-
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
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
#!/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