Skip to content

Instantly share code, notes, and snippets.

@joshlevinson
Last active April 14, 2016 17:00
Show Gist options
  • Select an option

  • Save joshlevinson/5ed65b12d1f739abf310 to your computer and use it in GitHub Desktop.

Select an option

Save joshlevinson/5ed65b12d1f739abf310 to your computer and use it in GitHub Desktop.

Revisions

  1. joshlevinson revised this gist Oct 20, 2015. 2 changed files with 2 additions and 2 deletions.
    2 changes: 1 addition & 1 deletion vvv-hosts
    Original file line number Diff line number Diff line change
    @@ -1,2 +1,2 @@
    # create this file in /srv/www/site-name
    # create this file in /srv/www/site-name/
    site-name.dev
    2 changes: 1 addition & 1 deletion vvv-nginx.conf
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,4 @@
    #create this file in /srv/www/site-name
    #create this file in /srv/www/site-name/
    ################################################################
    # Example configuration file for nginx
    #
  2. joshlevinson renamed this gist Oct 20, 2015. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  3. joshlevinson revised this gist Oct 20, 2015. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions WP CLI commands
    Original file line number Diff line number Diff line change
    @@ -7,5 +7,7 @@ wp core config --dbname=site-name --dbuser=root --dbpass=root
    # Before you install the site, you'll need to create the DB. I just pull up phpMyAdmin and create it there.
    wp core install --url=site-name.dev --title=Site --admin_user=admin --admin_pass=password [email protected]

    # Create the files "vvv-hosts" and "vvv-nginx.conf"

    # Lastly, make the machine aware of the new site
    sudo /srv/config/homebin/vagrant_kick
  4. joshlevinson revised this gist Oct 20, 2015. 1 changed file with 6 additions and 2 deletions.
    8 changes: 6 additions & 2 deletions WP CLI commands
    Original file line number Diff line number Diff line change
    @@ -2,6 +2,10 @@ vagrant ssh
    cd /srv/www/
    mkdir site-name && cd site-name && mkdir htdocs && cd htdocs
    wp core download
    # create the DB using phpMyAdmin
    wp core config --dbname=site-name --dbuser=root --dbpass=root
    wp core install --url=site-name.dev --title=Site --admin_user=admin --admin_pass=password [email protected]

    # Before you install the site, you'll need to create the DB. I just pull up phpMyAdmin and create it there.
    wp core install --url=site-name.dev --title=Site --admin_user=admin --admin_pass=password [email protected]

    # Lastly, make the machine aware of the new site
    sudo /srv/config/homebin/vagrant_kick
  5. joshlevinson revised this gist Oct 20, 2015. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions vvv-nginx.conf
    Original file line number Diff line number Diff line change
    @@ -36,10 +36,10 @@ server {
    # Tells nginx what domain name should trigger this configuration. If
    # you would like multiple domains or subdomains, they can be space
    # delimited here. See http://nginx.org/en/docs/http/server_names.html
    server_name universalsports.dev dev.universalsports.com;
    server_name site-name.dev;

    # Tells nginx which directory the files for this domain are located
    root /srv/www/universal-sports/htdocs;
    root /srv/www/site-name/htdocs;

    # Includes a basic WordPress configuration to help with the common
    # rules needed by a web server to deal with WordPress properly.
  6. joshlevinson revised this gist Oct 20, 2015. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion vagrant_kick
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,5 @@
    #!/bin/bash
    # create this file in /srv/config/homebin and chmod +x it
    # create this file in /srv/config/homebin and chmod +x it (while ssh'ed into the vagrant machine)
    sudo cp /srv/config/nginx-config/nginx.conf /etc/nginx/nginx.conf
    sudo cp /srv/config/nginx-config/nginx-wp-common.conf /etc/nginx/nginx-wp-common.conf
    if [[ ! -d /etc/nginx/custom-sites ]]; then
  7. joshlevinson revised this gist Oct 20, 2015. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion vagrant_kick
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,5 @@
    #!/bin/bash

    # create this file in /srv/config/homebin and chmod +x it
    sudo cp /srv/config/nginx-config/nginx.conf /etc/nginx/nginx.conf
    sudo cp /srv/config/nginx-config/nginx-wp-common.conf /etc/nginx/nginx-wp-common.conf
    if [[ ! -d /etc/nginx/custom-sites ]]; then
  8. joshlevinson created this gist Oct 20, 2015.
    7 changes: 7 additions & 0 deletions WP CLI commands
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,7 @@
    vagrant ssh
    cd /srv/www/
    mkdir site-name && cd site-name && mkdir htdocs && cd htdocs
    wp core download
    # create the DB using phpMyAdmin
    wp core config --dbname=site-name --dbuser=root --dbpass=root
    wp core install --url=site-name.dev --title=Site --admin_user=admin --admin_pass=password [email protected]
    67 changes: 67 additions & 0 deletions vagrant_kick
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,67 @@
    #!/bin/bash

    sudo cp /srv/config/nginx-config/nginx.conf /etc/nginx/nginx.conf
    sudo cp /srv/config/nginx-config/nginx-wp-common.conf /etc/nginx/nginx-wp-common.conf
    if [[ ! -d /etc/nginx/custom-sites ]]; then
    sudo mkdir /etc/nginx/custom-sites/
    fi
    sudo rsync -rvzh --delete /srv/config/nginx-config/sites/ /etc/nginx/custom-sites/

    # IMPORT SQL
    #
    # Create the databases (unique to system) that will be imported with
    # the mysqldump files located in database/backups/
    if [[ -f /srv/database/init-custom.sql ]]; then
    mysql -u root -proot < /srv/database/init-custom.sql
    echo -e "\nInitial custom MySQL scripting..."
    else
    echo -e "\nNo custom MySQL scripting found in database/init-custom.sql, skipping..."
    fi

    # Find new sites to setup.
    # Kill previously symlinked Nginx configs
    # We can't know what sites have been removed, so we have to remove all
    # the configs and add them back in again.
    sudo sh -c "find /etc/nginx/custom-sites -name 'vvv-auto-*.conf' -exec rm {} \;"

    # Look for site setup scripts
    for SITE_CONFIG_FILE in $(find /srv/www -maxdepth 5 -name 'vvv-init.sh'); do
    DIR="$(dirname $SITE_CONFIG_FILE)"
    (
    cd "$DIR"
    source vvv-init.sh
    )
    done

    # Look for Nginx vhost files, symlink them into the custom sites dir
    for SITE_CONFIG_FILE in $(find /srv/www -maxdepth 5 -name 'vvv-nginx.conf'); do
    DEST_CONFIG_FILE=${SITE_CONFIG_FILE//\/srv\/www\//}
    DEST_CONFIG_FILE=${DEST_CONFIG_FILE//\//\-}
    DEST_CONFIG_FILE=${DEST_CONFIG_FILE/%-vvv-nginx.conf/}
    DEST_CONFIG_FILE="vvv-auto-$DEST_CONFIG_FILE-$(md5sum <<< "$SITE_CONFIG_FILE" | cut -c1-32).conf"
    DIR="$(dirname $SITE_CONFIG_FILE)"
    sed "s#{vvv_path_to_folder}#$DIR#" "$SITE_CONFIG_FILE" | sudo tee /etc/nginx/custom-sites/"$DEST_CONFIG_FILE" > /dev/null
    done

    # Parse any vvv-hosts file located in www/ or subdirectories of www/
    # for domains to be added to the virtual machine's host file so that it is
    # self aware.
    #
    # Domains should be entered on new lines.
    echo "Cleaning the virtual machine's /etc/hosts file..."
    sed -n '/# vvv-auto$/!p' /etc/hosts > /tmp/hosts
    mv /tmp/hosts /etc/hosts
    echo "Adding domains to the virtual machine's /etc/hosts file..."
    find /srv/www/ -maxdepth 5 -name 'vvv-hosts' | \
    while read hostfile; do
    while IFS='' read -r line || [ -n "$line" ]; do
    if [[ "#" != ${line:0:1} ]]; then
    if [[ -z "$(grep -q "^127.0.0.1 $line$" /etc/hosts)" ]]; then
    echo "127.0.0.1 $line # vvv-auto" >> /etc/hosts
    echo " * Added $line from $hostfile"
    fi
    fi
    done < "$hostfile"
    done

    sudo service nginx reload
    2 changes: 2 additions & 0 deletions vvv-hosts
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,2 @@
    # create this file in /srv/www/site-name
    site-name.dev
    47 changes: 47 additions & 0 deletions vvv-nginx.conf
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,47 @@
    #create this file in /srv/www/site-name
    ################################################################
    # Example configuration file for nginx
    #
    # To add a new local WordPress domain to your environment, copy
    # this file using a filename that matches the domain you wish to
    # setup. For example - mylocaldomain.com.conf would be an ideal
    # filename for http://mylocaldomain.com
    #
    # Once copied, you will need to modify two settings in the server
    # configuration provided:
    #
    # 1. server_name - Change the server_name parameter in the server
    # configuration below to mylocaldomain.com
    # 2. root - Change root to the full path that your WordPress
    # site lives at inside Vagrant. An example would be
    # /srv/www/mylocal-wordpress
    #
    # You do not need to worry about modifying the listen or include
    # parameters as those are the same across all test sites for most
    # basic WordPress configurations.
    #
    # Once your new domain has been added, make sure to restart the
    # nginx process by running `vagrant provision` in your local
    # environment or `sudo service nginx restart` after `vagrant ssh`
    ################################################################
    server {

    # Determines the port number that nginx will listen to for this
    # server configuration. 80 is the default http port.
    listen 80;

    # Listen for HTTPS requests as well
    listen 443 ssl;

    # Tells nginx what domain name should trigger this configuration. If
    # you would like multiple domains or subdomains, they can be space
    # delimited here. See http://nginx.org/en/docs/http/server_names.html
    server_name universalsports.dev dev.universalsports.com;

    # Tells nginx which directory the files for this domain are located
    root /srv/www/universal-sports/htdocs;

    # Includes a basic WordPress configuration to help with the common
    # rules needed by a web server to deal with WordPress properly.
    include /etc/nginx/nginx-wp-common.conf;
    }