Skip to content

Instantly share code, notes, and snippets.

@kevindees
Last active June 23, 2016 21:08
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 kevindees/afe122fc6f786369f0592a3785aca12b to your computer and use it in GitHub Desktop.
Save kevindees/afe122fc6f786369f0592a3785aca12b to your computer and use it in GitHub Desktop.
vagrant bootstrap wp site
#!/usr/bin/env bash
apt-get update
apt-get -y upgrade
apt-get install -y debconf-utils
export DEBIAN_FRONTEND="noninteractive"
# tools
apt-get -y install git
# apt-get install -y build-essential
# apt-get install -y zlib1g-dev sqlite3
# LAMP
apt-get install -y apache2
# install mysql and give password to installer
debconf-set-selections <<< "mysql-server mysql-server/root_password password password"
debconf-set-selections <<< "mysql-server mysql-server/root_password_again password password"
apt-get -y install mysql-server
apt-get install -y mysql-client
apt-get install -y php5
apt-get install -y php5-mysql
apt-get install -y php5-curl
apt-get install -y php5-xdebug
# set
if ! [ -L /var/www ]; then
rm -rf /var/www/html
ln -fs /app /var/www/html
fi
# if apache has issues you can use /etc/apache2/envvars and set the user to vagrant
sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf
sed -i 's/www.example.com/\n\t<Directory \"\/var\/www\/html">\n\t AllowOverride All\n\t Require all granted\n\t<\/Directory>/' /etc/apache2/sites-available/000-default.conf
sed -i 's/ssl:warn/ssl:warn\n\t<Directory \"\/var\/www\/html">\n\t AllowOverride All\n\t Require all granted\n\t<\/Directory>/' /etc/apache2/sites-available/default-ssl.conf
# set root dir to public_html instead of html
#sed -i 's/\/var\/www\/html/\/var\/www\/html\/public_html/g' /etc/apache2/sites-available/000-default.conf
#sed -i 's/\/var\/www\/html/\/var\/www\/html\/public_html/g' /etc/apache2/sites-available/default-ssl.conf
# set www-data to vagrant
sed -i 's/www-data/vagrant/g' /etc/apache2/envvars
cat <<EOT >> /etc/php5/apache2/conf.d/20-xdebug.ini
xdebug.remote_enable = 1
xdebug.remote_connect_back=1
xdebug.remote_port = 9000
xdebug.scream=0
xdebug.show_local_vars=1
xdebug.idekey=PHPSTORM
EOT
# all big file uploads
INIPHPREPLACE="upload_max_filesize = 2M"
INIPHP="upload_max_filesize = 30M"
sed -i "s/$INIPHPREPLACE/$INIPHP/g" /etc/php5/cli/php.ini
sed -i "s/$INIPHPREPLACE/$INIPHP/g" /etc/php5/apache2/php.ini
# cat $INIPHP >> /etc/php5/apache2/php.ini
# allow everyone to ssh
echo "sshd : ALL : allow" >> /etc/hosts.allow
# enable mod_rewrite
a2enmod rewrite
a2enmod ssl
a2ensite default-ssl
# fix login connection error
sudo ufw allow 22
# config
sudo echo "AllowTcpForwarding yes" >> /etc/ssh/sshd_config
# restart
service apache2 restart
service mysql stop
service mysql start
# install Composer
curl -s https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
DATABASE="database"
# install WP-CLI
cd /app
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
# set user 1 wp password to password
wp user update 1 --user_pass=password
# create database
echo "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';" | mysql -u root -ppassword
echo "create database $DATABASE;" | mysql -u root -ppassword
updatedb
echo
# will need to import using sequel pro for mac due to errors
mysql -u root -ppassword ${DATABASE} < /app/storage/import.sql
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.provider "virtualbox"
config.vm.provision :shell, path: "bootstrap.sh"
config.vm.provider :virtualbox do |vb|
vb.memory = 2048
vb.cpus = 4
end
config.vm.network "forwarded_port", guest: 3306, host: 33069, auto_correct: true
config.vm.network "forwarded_port", guest: 80, host: 8009, auto_correct: true
config.vm.network "forwarded_port", guest: 443, host: 44309, auto_correct: true
config.vm.network "private_network", ip: "192.168.10.100"
config.ssh.forward_agent = true
config.vm.hostname = "whi.wp"
# http://stackoverflow.com/questions/22575261/vagrant-stuck-connection-timeout-retrying
# do not map Vagrant files to home dir
config.vm.synced_folder ".", "/vagrant", disabled: true
config.vm.synced_folder ".", "/app", owner: "vagrant", group: "vagrant"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment