$30 off During Our Annual Pro Sale. View Details »

From Local to Staging to Live Using Version Control & Deployment

From Local to Staging to Live Using Version Control & Deployment

How to setup a (WordPress) website development environment to build sites locally, deploying them to a staging server first before pushing them live.

Mark Wilkinson

July 13, 2014
Tweet

More Decks by Mark Wilkinson

Other Decks in Technology

Transcript

  1. FROM LOCAL TO
    STAGING TO LIVE
    Using Version Control & Deployment Tools
    Mark Wilkinson | @wpmark

    View Slide

  2. WE WILL COVER
    •  The  Problem  

    View Slide

  3. WE WILL COVER
    •  The  Problem  
    •  Local  Development  Setup  

    View Slide

  4. WE WILL COVER
    •  The  Problem  
    •  Local  Development  Setup  
    •  Version  Control  

    View Slide

  5. WE WILL COVER
    •  The  Problem  
    •  Local  Development  Setup  
    •  Version  Control  
    •  Staging  /  Production  Site  

    View Slide

  6. WE WILL COVER
    •  The  Problem  
    •  Local  Development  Setup  
    •  Version  Control  
    •  Staging  /  Production  Site  
    •  Deployment  

    View Slide

  7. View Slide

  8. THE PROBLEM

    View Slide

  9. FILE TRANSFER PROTOCOL
    FTP

    View Slide

  10. View Slide

  11. View Slide

  12. View Slide

  13. View Slide

  14. View Slide

  15. View Slide

  16. View Slide

  17. Insanity: doing the same thing over
    and over again and expecting
    different results
    Albert Einstein

    View Slide

  18. SETUP
    LOCAL DEVELOPMENT

    View Slide

  19. LAMP
    LINUX/APACHE/MySQL/PHP

    View Slide

  20. MAMP
    MAC/APACHE/MySQL/PHP

    View Slide

  21. http://localhost

    View Slide


  22. DocumentRoot "/Users/usr/Dropbox/Dev/htdocs/mdw"
    ServerName wpmark.dev
    ServerAlias www.wpmark.dev

    /Applications/MAMP/conf/apache/extra/httpd-vhosts

    View Slide

  23. View Slide

  24. CONTROL
    VERSION

    View Slide

  25. TRACK CHANGES

    View Slide

  26. REPOSITORY
    LOCAL SITE
    PRODUCTION/LIVE
    STAGING

    View Slide

  27. REPOSITORY
    LOCAL SITE
    PRODUCTION/LIVE
    STAGING

    View Slide

  28. LOCAL SITE
    GITHUB FOR MAC

    View Slide

  29. REPOSITORY
    PRODUCTION/LIVE
    STAGING
    DEPLOYMENT TOOL

    View Slide

  30. View Slide

  31. HURDLES
    http://commons.wikimedia.org/wiki/File:Hurdles_(Scenes_from_a_Track_Meet).jpg

    View Slide

  32. wp-config.php

    View Slide

  33. http://markjaquith.wordpress.com/2011/06/24/wordpress-local-dev-tips/
    if ( file_exists( dirname( __FILE__ ) . '/local-
    config.php' ) ) {
    include( dirname( __FILE__ ) . '/local-config.php' );
    define( 'WP_LOCAL_DEV', true );
    } else {
    // ** MySQL settings - You can get this info from
    your web host ** //
    /** The name of the database for WordPress */
    }

    View Slide

  34. .gitignore

    View Slide

  35. View Slide

  36. SETUP
    STAGING/PRODUCTION

    View Slide

  37. STAGING
    LIVE SERVER Ÿ CLIENT ACCESS

    View Slide

  38. DATABASE
    SYNCING Ÿ MIGRATION FROM LOCAL

    View Slide

  39. RECAP

    View Slide

  40. DEVELOP LOCALLY

    View Slide

  41. DEVELOP LOCALLY
    UNDER VERSION CONTROL

    View Slide

  42. DEVELOP LOCALLY
    UNDER VERSION CONTROL
    USE DEPLOYMENT NOT FTP

    View Slide

  43. DEVELOP LOCALLY
    UNDER VERSION CONTROL
    USE DEPLOYMENT NOT FTP
    DEPLOY TO STAGING FIRST

    View Slide

  44. DEVELOP LOCALLY
    UNDER VERSION CONTROL
    USE DEPLOYMENT NOT FTP
    DEPLOY TO STAGING FIRST
    DEPLOY TO PRODUCTION

    View Slide

  45. DEVELOP LOCALLY
    UNDER VERSION CONTROL
    USE DEPLOYMENT NOT FTP
    DEPLOY TO STAGING FIRST
    DEPLOY TO PRODUCTION
    DATABASE NOT THAT IMPORTANT

    View Slide

  46. THANK YOU
    QUESTIONS?
    Mark Wilkinson | @wpmark

    View Slide