SlideShare una empresa de Scribd logo
1 de 55
Descargar para leer sin conexión
Beyond FTP
W O R D C A M P N O L A - A U G U S T 1 3 , 2 0 1 6
E L I S I L V E R M A N - C A L I P E R C R E A T I V E
W O R D C A M P N O L A - A U G U S T 1 3 , 2 0 1 6
Or: What I’ve Learned from
Years of Deploying
WordPress the Wrong Way
E L I S I L V E R M A N - C A L I P E R C R E A T I V E
BEYOND FTP |
it me!
CALIPER
I build websites, design for
both screen and print, create
web-based software and
business tools, and offer
creative direction for digital
and physical design projects.
Caliper works with
businesses to establish
strong brands and
fluid workflows.
BEYOND FTP | OVERVIEW
Q: Do you rely on WordPress
to make a living?
´
BEYOND FTP |
My main goal is to expose more of the
WordPress community to really powerful
development tools in a way that aren’t
intimidating and can be quickly adopted
and installed.
OVERVIEW
You deserve the best tools.
´
BEYOND FTP |
What it looks like to sync WordPress installs in
seconds.
What “software deployment” means, and
specifically what it means in WordPress.
Show you why, if you love FTP, it’s time to let it go.
How WP devs can use tools from the non-WP world.
How quickly you can start using the toolkit.
OVERVIEW
WHAT YOU’LL SEE TODAY
BEYOND FTP | OVERVIEW
Q: Who’s seen WordPress
managed from the
command line?
´
BEYOND FTP |
THIS IS HOW
YOU DEPLOY
STARTING
TODAY:
OVERVIEW
B E Y O N D F T P - W O R D C A M P N O L A - A U G U S T 1 3 , 2 0 1 6
Breaking Bad
(Habits)
BEYOND FTP |
You can pretty much deliver a WP
website without knowing how to write
a word of code.
But if you dive deeper into WordPress
through a Cut-and-Paste Education, it
can prevent you from becoming a
better developer.
BREAKING BAD (HABITS)
WP IS SUPER
EASY TO WORK
WITH, BUT THAT
CAN LEAD TO
BAD PRACTICE.
I learned this the hard way.
BEYOND FTP |
Working against a deadline
for my first “legit” client, my
workflow failed me…big time.
BREAKING BAD (HABITS)
BEYOND FTP |
Q: Has this ever happened
to anyone else?
BREAKING BAD (HABITS)
A: Yes. To Everyone.
BEYOND FTP |
My inexperience wasn’t
cute anymore.
It was a glaring liability.
BREAKING BAD (HABITS)
BEYOND FTP |
I had been working in a
vacuum and I had no
mentor to show me the
ropes, or point out the
things I was doing
totally wrong.
FREELANCERS
ARE ALONE.
A LOT.
BREAKING BAD (HABITS)
BEYOND FTP |
Desperately, I thought:
“Other developers MUST
have a better way.”
Turns out, they do.
BREAKING BAD (HABITS)
B E Y O N D F T P - W O R D C A M P N O L A - A U G U S T 1 3 , 2 0 1 6
“Deployment”
´
BEYOND FTP |
“all of the activities
that make a software
system available for
use”
“DEPLOYMENT”
WHAT…IS…
DEPLOYMENT?
(WikiPedia)
´
BEYOND FTP |
AND WHAT
DOES THAT MEAN
IN WORDPRESS?
our “software system”
is both the

files and the database.
core, themes, plugins,
uploaded content
customization, post
content, session data
“DEPLOYMENT”
BEYOND FTP |
Q: Do you develop locally
and push code to a
remote server?
“DEPLOYMENT”
´
BEYOND FTP |
THEN YOU KNOW THIS LIST…
“DEPLOYMENT”
Install WordPress. DB up and running. All plugins
are installed and configured…The theme is installed
(including the parent) and customized properly…
The uploads are all there…
I’M. SO. BORED.
´
BEYOND FTP | “DEPLOYMENT”
CANT WE MAKE OUR
MACHINES DO ALL THIS,
AHEM, GRUNT WORK FOR US?
B E Y O N D F T P - W O R D C A M P N O L A - A U G U S T 1 3 , 2 0 1 6
Why You Haven’t
Left FTP Behind
The Excuses:
BEYOND FTP |
“IT’S OVER MY HEAD”
FTP EXCUSES
But, before you knew how to swim,
so did the deep end.
$ ../I/know/the --command line_seems SCARY.
BEYOND FTP |
Just like any text editor, you can
take control of the command
line and let it adapt to you.
iTerm
oh-my-zsh
aliases
$ htdocs client
$ cd /Applications/MAMP/htdocs/clientsite.com/wp-content/themes/my-clients-theme/
instead of
“IT’S OVER MY HEAD”
FTP EXCUSES
BEYOND FTP |
“it’s such a timesaver that any
time I spent setting it up, I got
back immediately after it was
working, and then some…”
“IT TAKES TOO LONG TO SETUP”
- Paid Actor, Not a real Doctor
FTP EXCUSES
BEYOND FTP |
“I’M NOT A DEVELOPER AND
I HAVE BETTER THINGS TO
LEARN”
If you’re spending even a few hours a week
messing WordPress – even content or
theme config – this is worth your while. And
if you’re writing code maybe it’s time you
start calling yourself a developer…
FTP EXCUSES
BEYOND FTP |
Instead of WordPress,
let’s say I work as a
lumberjack.
r
Choppin wood all
damn day.
HOW IT LOOKS
IN ANOTHER
INDUSTRY
FTP EXCUSES
BEYOND FTP |
This is me trying to
do my job done with
the wrong tools…
FTP EXCUSES
BEYOND FTP |
This is me trying to
do my job done with
the wrong tools…
FTP EXCUSES
BEYOND FTP |
and here’s me with
the right tools, gettin
paid and clockin out…
FTP EXCUSES
BEYOND FTP |
Note: I do not endorse deforestation
FTP EXCUSES
BEYOND FTP |
NOW THAT YOU HAVE
A CHOICE, WHICH ONE
DO YOU CHOOSE?
FTP EXCUSES
B E Y O N D F T P - W O R D C A M P N O L A - A U G U S T 1 3 , 2 0 1 6
Deployment for
WordPress “In the Wild”
BEYOND FTP |
The deploy needs to transfer the
“software system” ( files & db )
OUR CRITERIA
Needs to work on (or help with)
crappy $2/mo hosting services that a
lot of are FORCED to use with clients.
IN THE WILD
1.
2.
BEYOND FTP |
RESEARCH &
IMPLEMENTATION
Roots’ Trellis is an amazing solution but
caters to devs deploying enterprise-grade
WP apps.
Most likely, it won’t work with a cheap
shared-server, and it’s tied to git, which is
“smarter” but not what I wanted.
IN THE WILD
BEYOND FTP |
&
I K N O W , I K N O W . G U L P I S C O O L E R .
P L E A S E , W R I T E A P O R T , P L Z …
. / WP-CLI
IN THE WILD
BEYOND FTP |
I was already using grunt.js
for CSS + JS processing.
Found and forked
grunt-wordpress-deploy
on npm (node package manager)
Dario Ghilardi – @webrain on github
GRUNT.JS
IN THE WILD
Javascript “task runner”
BEYOND FTP |
๏ Many times faster than FTP (like, 100x)
๏ Intelligent: only touches files that changed
๏ Repeatable, reliable, configurable
IN THE WILD
GRUNT
WORDPRESS
DEPLOY
Uses rsync, a standard
command line file syncing
service, and it’s a huge step
up from FTP.
BEYOND FTP |
$ grunt sync_up --target=dev
ANATOMY OF A GRUNT “CALL”
IN THE WILD
BEYOND FTP |
$ grunt sync_up --target=dev
“$” often represents cmd line.
Don’t type this!
run the grunt “executable”
the grunt “task” you
want to execute
sets the server “target” flag (variable)
to our “dev” environment.
ANATOMY OF A GRUNT “CALL”
IN THE WILD
BEYOND FTP |
Made for WP using SSH/rsync
• push all local plugins
• push all local uploads
• build + compress theme/plugin
• push theme/plugin
• push the database
GRUNT
WORDPRESS
DEPLOY
IN THE WILD
grunt sync_up
BEYOND FTP |
• Creates a clean folder that you
deploy from – fallback for FTP
• Simple versioning : creates
“releases” – deliver to client,
upload via wp-admin, don’t
need to know git
GRUNT
WORDPRESS
DEPLOY
IN THE WILD
Made for WP in The Wild
grunt build
BEYOND FTP |
GRUNT
WORDPRESS
DEPLOY • build
• push_theme
• push_files
• push_plugin
• push_plugins
• deploy
• push_db
• pull_db
• sync_up
Other grunt Tasks
MANAGING FILES MANAGING THE DB
ALL THE THINGS
IN THE WILD
BEYOND FTP |
“WP-CLI is a set of command-line
tools for managing WordPress
installations. You can update
plugins, configure multisite
installs and much more, without
using a web browser.”
WP-CLI
(wp-cli.org)
IN THE WILD
BEYOND FTP |
$ wp plugin install query-monitor
ANATOMY OF A BASIC WP-CLI
IN THE WILD
BEYOND FTP |
$ wp plugin install query-monitor
run the wp-cli “executable”
the wp thing “type” you
want to manipulate
the action you want to
perform with that thing
additional info. In this case,
the plugin slug from the wp
plugins directory
ANATOMY OF A BASIC WP-CLI
IN THE WILD
BEYOND FTP |
BROWSER
REFRESH GOT
YA DOWN?
No need to click around in wp-admin
every time you need to de/activate a
plugin. Want to see if that new slider
plugin is causing the site to break?
$ wp plugin deactivate acme-slider
$ dp acme-slider
or with my “deactivate-plugin” alias
IN THE WILD
BEYOND FTP |
ALIASES As of very recently, you can
specify a remote target WP
install using wp-cli aliases.
$ wp @dev plugin deactivate query-monitor
alias name, defined in config
“ssh: user@ssh.dev-site.com/remote/wp/path”
MORE WP-CLI AWESOMENESS
IN THE WILD
View Config Docs
B E Y O N D F T P - W O R D C A M P N O L A - A U G U S T 1 3 , 2 0 1 6
Getting it Running
BEYOND FTP |
I MADE YOU
A THING!
BOILERPLATE
A github project that
makes it super easy to
get this up and running.
I. Follow the 4 steps on github to install
II. Add your DB and SSH details to the config
III. Test using the —dry-run flag
IV. Get to work!
https://github.com/madebycaliper/grunt-wp-deploy-boilerplate
BEYOND FTP |
REQUIREMENTS
✓ SSH access w/key
✓ WP core installed
✓ WP database setup
✓ mysql command line
wp-cli installed (optional)
✓ git
✓ rsync (bundled w/OS X)
✓ node.js + npm
✓ SSH key configured
✓ MAMP or comparable
✓ WordPress Installed
wp-cli installed (optional)
Local Remote
BOILERPLATE
BEYOND FTP |
GRUNT DEPLOY AND
WP-CLI DEMO
BOILERPLATE
BEYOND FTP | CONCERNS
๏ This method is not tied to version control like Capistrano or Deploy HQ. You cannot
auto “roll back” to a previous version.
✓ You can checkout a local commit and just run ‘grunt deploy’
๏ Still some chance of human error, it’s possible to overwrite files (these are irreversible
operations)
✓ Play it safe by enabling rsync’s --dry-run flag first – shows you what files will be
changed without doing it.
๏ MySQL and PHP configs can vary between hosts and create errors with the DB
operations (command line outputs unexpected strings/results)
✓ Use the ‘sql_remove’ option in the wordpresdeploy.coffee file to sanitize output
๏ This hasn’t been tested on very large databases. Test it out for me?
๏ I’ve only ever done this on a Mac/linux. Not sure how rsync works on windows.
CONCERNS
´
BEYOND FTP |
THANK YOU!
๏ More command line tips for WordPress
๏ Debugging PHP (Sublime Text + Xdebug)
๏ Debugging JS in the Chrome DevTools
๏ Version control with git and SourceTree
๏ Advanced use of the wp-cli
MadeByCaliper.com
MIC DROP
There’s so much more for WordPress developers.
Improve your workflow, understanding of code,
and know how to quickly troubleshoot WP/PHP:
Beyond FTP
W O R D C A M P N O L A - A U G U S T 1 3 , 2 0 1 6

Más contenido relacionado

La actualidad más candente

How to keep calm and ship it (Juozas Kaziukėnas)
How to keep calm and ship it (Juozas Kaziukėnas)How to keep calm and ship it (Juozas Kaziukėnas)
How to keep calm and ship it (Juozas Kaziukėnas)Future Insights
 
Forensic Tools for In-Depth Performance Investigations
Forensic Tools for In-Depth Performance InvestigationsForensic Tools for In-Depth Performance Investigations
Forensic Tools for In-Depth Performance InvestigationsNicholas Jansma
 
Getting Started With WordPress Plugin Development
Getting Started With WordPress Plugin DevelopmentGetting Started With WordPress Plugin Development
Getting Started With WordPress Plugin DevelopmentThomas Vitale
 
Plugin Monetization Options - WordCamp Minneapolis 2014
Plugin Monetization Options - WordCamp Minneapolis 2014Plugin Monetization Options - WordCamp Minneapolis 2014
Plugin Monetization Options - WordCamp Minneapolis 2014Nick Ciske
 
DEF CON 27 - workshop - RYAN CHAPMAN - understanding and analyzing weaponized...
DEF CON 27 - workshop - RYAN CHAPMAN - understanding and analyzing weaponized...DEF CON 27 - workshop - RYAN CHAPMAN - understanding and analyzing weaponized...
DEF CON 27 - workshop - RYAN CHAPMAN - understanding and analyzing weaponized...Felipe Prado
 
Drupal Seminar May 15th, 2013
Drupal Seminar May 15th, 2013Drupal Seminar May 15th, 2013
Drupal Seminar May 15th, 2013Exove
 
Installing wordpress using wamp on your windows machine
Installing wordpress using wamp on your windows machineInstalling wordpress using wamp on your windows machine
Installing wordpress using wamp on your windows machineRichard Albina
 
Plongée dans l'écosystème Laravel
Plongée dans l'écosystème LaravelPlongée dans l'écosystème Laravel
Plongée dans l'écosystème LaravelGabriel Pillet 🐙
 
Fundamentals of TempDB
Fundamentals of TempDBFundamentals of TempDB
Fundamentals of TempDBBrent Ozar
 
Fundamentals of Columnstore - Introductions
Fundamentals of Columnstore - IntroductionsFundamentals of Columnstore - Introductions
Fundamentals of Columnstore - IntroductionsBrent Ozar
 
Plone Symposium South America 2012
Plone Symposium South America 2012Plone Symposium South America 2012
Plone Symposium South America 2012Elizabeth Leddy
 
How to connect raspberry pi to laptop display: 4 steps
How to connect raspberry pi to laptop display: 4 stepsHow to connect raspberry pi to laptop display: 4 steps
How to connect raspberry pi to laptop display: 4 stepsArvind Arasu
 
How to Build a Pure Evil Magento Module
How to Build a Pure Evil Magento ModuleHow to Build a Pure Evil Magento Module
How to Build a Pure Evil Magento ModuleAOE
 
To Home, To Work, To Home, To Collabsphere!
To Home, To Work, To Home, To Collabsphere!To Home, To Work, To Home, To Collabsphere!
To Home, To Work, To Home, To Collabsphere!Keith Brooks
 
12 Hidden Tips of Popular Remote Work Tools
12 Hidden Tips of Popular Remote Work Tools12 Hidden Tips of Popular Remote Work Tools
12 Hidden Tips of Popular Remote Work ToolsRealtimeBoard
 
Accelerating Custom Development with Dynamic Scaffolding and WP-CLI
Accelerating Custom Development with Dynamic Scaffolding and WP-CLIAccelerating Custom Development with Dynamic Scaffolding and WP-CLI
Accelerating Custom Development with Dynamic Scaffolding and WP-CLIdrywallbmb
 

La actualidad más candente (19)

How to keep calm and ship it (Juozas Kaziukėnas)
How to keep calm and ship it (Juozas Kaziukėnas)How to keep calm and ship it (Juozas Kaziukėnas)
How to keep calm and ship it (Juozas Kaziukėnas)
 
Forensic Tools for In-Depth Performance Investigations
Forensic Tools for In-Depth Performance InvestigationsForensic Tools for In-Depth Performance Investigations
Forensic Tools for In-Depth Performance Investigations
 
Getting Started With WordPress Plugin Development
Getting Started With WordPress Plugin DevelopmentGetting Started With WordPress Plugin Development
Getting Started With WordPress Plugin Development
 
Plugin Monetization Options - WordCamp Minneapolis 2014
Plugin Monetization Options - WordCamp Minneapolis 2014Plugin Monetization Options - WordCamp Minneapolis 2014
Plugin Monetization Options - WordCamp Minneapolis 2014
 
DEF CON 27 - workshop - RYAN CHAPMAN - understanding and analyzing weaponized...
DEF CON 27 - workshop - RYAN CHAPMAN - understanding and analyzing weaponized...DEF CON 27 - workshop - RYAN CHAPMAN - understanding and analyzing weaponized...
DEF CON 27 - workshop - RYAN CHAPMAN - understanding and analyzing weaponized...
 
Drupal Seminar May 15th, 2013
Drupal Seminar May 15th, 2013Drupal Seminar May 15th, 2013
Drupal Seminar May 15th, 2013
 
Installing wordpress using wamp on your windows machine
Installing wordpress using wamp on your windows machineInstalling wordpress using wamp on your windows machine
Installing wordpress using wamp on your windows machine
 
Plongée dans l'écosystème Laravel
Plongée dans l'écosystème LaravelPlongée dans l'écosystème Laravel
Plongée dans l'écosystème Laravel
 
Fundamentals of TempDB
Fundamentals of TempDBFundamentals of TempDB
Fundamentals of TempDB
 
Fundamentals of Columnstore - Introductions
Fundamentals of Columnstore - IntroductionsFundamentals of Columnstore - Introductions
Fundamentals of Columnstore - Introductions
 
Scalable PHP
Scalable PHPScalable PHP
Scalable PHP
 
Plone Symposium South America 2012
Plone Symposium South America 2012Plone Symposium South America 2012
Plone Symposium South America 2012
 
Old Dogs and New Tricks
Old Dogs and New TricksOld Dogs and New Tricks
Old Dogs and New Tricks
 
How to connect raspberry pi to laptop display: 4 steps
How to connect raspberry pi to laptop display: 4 stepsHow to connect raspberry pi to laptop display: 4 steps
How to connect raspberry pi to laptop display: 4 steps
 
How to Build a Pure Evil Magento Module
How to Build a Pure Evil Magento ModuleHow to Build a Pure Evil Magento Module
How to Build a Pure Evil Magento Module
 
To Home, To Work, To Home, To Collabsphere!
To Home, To Work, To Home, To Collabsphere!To Home, To Work, To Home, To Collabsphere!
To Home, To Work, To Home, To Collabsphere!
 
Lumen
LumenLumen
Lumen
 
12 Hidden Tips of Popular Remote Work Tools
12 Hidden Tips of Popular Remote Work Tools12 Hidden Tips of Popular Remote Work Tools
12 Hidden Tips of Popular Remote Work Tools
 
Accelerating Custom Development with Dynamic Scaffolding and WP-CLI
Accelerating Custom Development with Dynamic Scaffolding and WP-CLIAccelerating Custom Development with Dynamic Scaffolding and WP-CLI
Accelerating Custom Development with Dynamic Scaffolding and WP-CLI
 

Destacado

Bringing Order to a Content Hoarder - Cornell Drupal Camp 2016 - part 3
Bringing Order to a Content Hoarder - Cornell Drupal Camp 2016 - part 3Bringing Order to a Content Hoarder - Cornell Drupal Camp 2016 - part 3
Bringing Order to a Content Hoarder - Cornell Drupal Camp 2016 - part 3Anthony D. Paul
 
Bringing Order to a Content Hoarder (an Information Architecture primer) - Wo...
Bringing Order to a Content Hoarder (an Information Architecture primer) - Wo...Bringing Order to a Content Hoarder (an Information Architecture primer) - Wo...
Bringing Order to a Content Hoarder (an Information Architecture primer) - Wo...Anthony D. Paul
 
Responsive Prototyping with WordPress and Atomic UI Libraries - anthonydpaul ...
Responsive Prototyping with WordPress and Atomic UI Libraries - anthonydpaul ...Responsive Prototyping with WordPress and Atomic UI Libraries - anthonydpaul ...
Responsive Prototyping with WordPress and Atomic UI Libraries - anthonydpaul ...Anthony D. Paul
 
Les entretiens de la Fabrique : Quel chemin pour une réindustrialisation de l...
Les entretiens de la Fabrique : Quel chemin pour une réindustrialisation de l...Les entretiens de la Fabrique : Quel chemin pour une réindustrialisation de l...
Les entretiens de la Fabrique : Quel chemin pour une réindustrialisation de l...La Fabrique de l'industrie
 
As the light slowly growth in the dark (1)
As the light slowly growth in the dark (1)As the light slowly growth in the dark (1)
As the light slowly growth in the dark (1)Ruslan Leontyev
 
Mark Enos LinkedIn Resume
Mark Enos LinkedIn ResumeMark Enos LinkedIn Resume
Mark Enos LinkedIn ResumeMark Enos
 
DUMBING DOWN HYDROLOGY Stormwater July 2016
DUMBING DOWN HYDROLOGY Stormwater July 2016DUMBING DOWN HYDROLOGY Stormwater July 2016
DUMBING DOWN HYDROLOGY Stormwater July 2016Douglas Beyerlein
 
Membership Series – Part 2: Auto-Renewals & Monthly Installments Could be a M...
Membership Series – Part 2: Auto-Renewals & Monthly Installments Could be a M...Membership Series – Part 2: Auto-Renewals & Monthly Installments Could be a M...
Membership Series – Part 2: Auto-Renewals & Monthly Installments Could be a M...Billhighway
 
Six Steps for Parents to Childhood Obesity at Home
Six Steps for Parents to Childhood Obesity at HomeSix Steps for Parents to Childhood Obesity at Home
Six Steps for Parents to Childhood Obesity at HomeThe OrganWise Guys, Inc.
 
Profile_Sandra Willms_2016
Profile_Sandra Willms_2016Profile_Sandra Willms_2016
Profile_Sandra Willms_2016Sandra Willms
 
WendyOBrien portfolio
WendyOBrien portfolioWendyOBrien portfolio
WendyOBrien portfolioWendy O'Brien
 

Destacado (16)

Bringing Order to a Content Hoarder - Cornell Drupal Camp 2016 - part 3
Bringing Order to a Content Hoarder - Cornell Drupal Camp 2016 - part 3Bringing Order to a Content Hoarder - Cornell Drupal Camp 2016 - part 3
Bringing Order to a Content Hoarder - Cornell Drupal Camp 2016 - part 3
 
Bringing Order to a Content Hoarder (an Information Architecture primer) - Wo...
Bringing Order to a Content Hoarder (an Information Architecture primer) - Wo...Bringing Order to a Content Hoarder (an Information Architecture primer) - Wo...
Bringing Order to a Content Hoarder (an Information Architecture primer) - Wo...
 
Responsive Prototyping with WordPress and Atomic UI Libraries - anthonydpaul ...
Responsive Prototyping with WordPress and Atomic UI Libraries - anthonydpaul ...Responsive Prototyping with WordPress and Atomic UI Libraries - anthonydpaul ...
Responsive Prototyping with WordPress and Atomic UI Libraries - anthonydpaul ...
 
The Price Is Wrong
The Price Is WrongThe Price Is Wrong
The Price Is Wrong
 
Les entretiens de la Fabrique : Quel chemin pour une réindustrialisation de l...
Les entretiens de la Fabrique : Quel chemin pour une réindustrialisation de l...Les entretiens de la Fabrique : Quel chemin pour une réindustrialisation de l...
Les entretiens de la Fabrique : Quel chemin pour une réindustrialisation de l...
 
DLI Saudi SM
DLI Saudi SMDLI Saudi SM
DLI Saudi SM
 
As the light slowly growth in the dark (1)
As the light slowly growth in the dark (1)As the light slowly growth in the dark (1)
As the light slowly growth in the dark (1)
 
Oral_En
Oral_EnOral_En
Oral_En
 
Mark Enos LinkedIn Resume
Mark Enos LinkedIn ResumeMark Enos LinkedIn Resume
Mark Enos LinkedIn Resume
 
DUMBING DOWN HYDROLOGY Stormwater July 2016
DUMBING DOWN HYDROLOGY Stormwater July 2016DUMBING DOWN HYDROLOGY Stormwater July 2016
DUMBING DOWN HYDROLOGY Stormwater July 2016
 
Membership Series – Part 2: Auto-Renewals & Monthly Installments Could be a M...
Membership Series – Part 2: Auto-Renewals & Monthly Installments Could be a M...Membership Series – Part 2: Auto-Renewals & Monthly Installments Could be a M...
Membership Series – Part 2: Auto-Renewals & Monthly Installments Could be a M...
 
Six Steps for Parents to Childhood Obesity at Home
Six Steps for Parents to Childhood Obesity at HomeSix Steps for Parents to Childhood Obesity at Home
Six Steps for Parents to Childhood Obesity at Home
 
Profile_Sandra Willms_2016
Profile_Sandra Willms_2016Profile_Sandra Willms_2016
Profile_Sandra Willms_2016
 
SobhanBadiozamanyPhD
SobhanBadiozamanyPhDSobhanBadiozamanyPhD
SobhanBadiozamanyPhD
 
LEF presentation
LEF presentationLEF presentation
LEF presentation
 
WendyOBrien portfolio
WendyOBrien portfolioWendyOBrien portfolio
WendyOBrien portfolio
 

Similar a Beyond FTP: What I’ve Learned from Years of Deploying WordPress the Wrong Way

Midwest php 2013 deploying php on paas- why & how
Midwest php 2013   deploying php on paas- why & howMidwest php 2013   deploying php on paas- why & how
Midwest php 2013 deploying php on paas- why & howdotCloud
 
Workshop On WP-CLI
Workshop On WP-CLIWorkshop On WP-CLI
Workshop On WP-CLIAjit Bohra
 
The Enterprise Wor/d/thy/Press
The Enterprise Wor/d/thy/PressThe Enterprise Wor/d/thy/Press
The Enterprise Wor/d/thy/PressJeroen van Dijk
 
Deploying PHP on PaaS: Why and How?
Deploying PHP on PaaS: Why and How?Deploying PHP on PaaS: Why and How?
Deploying PHP on PaaS: Why and How?Docker, Inc.
 
ZendCon 2015 - DevOps for Small Teams
ZendCon 2015 - DevOps for Small TeamsZendCon 2015 - DevOps for Small Teams
ZendCon 2015 - DevOps for Small TeamsJoe Ferguson
 
Madison PHP 2015 - DevOps For Small Teams
Madison PHP 2015 - DevOps For Small TeamsMadison PHP 2015 - DevOps For Small Teams
Madison PHP 2015 - DevOps For Small TeamsJoe Ferguson
 
Improving WordPress Performance: Xdebug and PHP profiling
Improving WordPress Performance: Xdebug and PHP profilingImproving WordPress Performance: Xdebug and PHP profiling
Improving WordPress Performance: Xdebug and PHP profilingSeravo
 
Sharedhosting and WordPress
Sharedhosting and WordPressSharedhosting and WordPress
Sharedhosting and WordPressAl Davis
 
DevOps For Small Teams
DevOps For Small TeamsDevOps For Small Teams
DevOps For Small TeamsJoe Ferguson
 
Version Control ThinkVitamin
Version Control ThinkVitaminVersion Control ThinkVitamin
Version Control ThinkVitaminAlex Hillman
 
Website releases made easy with the PEAR installer, OSCON 2009
Website releases made easy with the PEAR installer, OSCON 2009Website releases made easy with the PEAR installer, OSCON 2009
Website releases made easy with the PEAR installer, OSCON 2009Helgi Þormar Þorbjörnsson
 
From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...
From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...
From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...Alexander Dean
 
Laravel Forge: Hello World to Hello Production
Laravel Forge: Hello World to Hello ProductionLaravel Forge: Hello World to Hello Production
Laravel Forge: Hello World to Hello ProductionJoe Ferguson
 
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...Sébastien Morel
 
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...eZ Systems
 
Improving WordPress performance (xdebug and profiling)
Improving WordPress performance (xdebug and profiling)Improving WordPress performance (xdebug and profiling)
Improving WordPress performance (xdebug and profiling)Otto Kekäläinen
 
Midwest PHP 2017 DevOps For Small team
Midwest PHP 2017 DevOps For Small teamMidwest PHP 2017 DevOps For Small team
Midwest PHP 2017 DevOps For Small teamJoe Ferguson
 
Word press, the automated way
Word press, the automated wayWord press, the automated way
Word press, the automated wayMichaël Perrin
 
WordCamp Belfast DevOps for Beginners
WordCamp Belfast DevOps for BeginnersWordCamp Belfast DevOps for Beginners
WordCamp Belfast DevOps for BeginnersStewart Ritchie
 
WordPress modern development
WordPress modern developmentWordPress modern development
WordPress modern developmentRoman Veselý
 

Similar a Beyond FTP: What I’ve Learned from Years of Deploying WordPress the Wrong Way (20)

Midwest php 2013 deploying php on paas- why & how
Midwest php 2013   deploying php on paas- why & howMidwest php 2013   deploying php on paas- why & how
Midwest php 2013 deploying php on paas- why & how
 
Workshop On WP-CLI
Workshop On WP-CLIWorkshop On WP-CLI
Workshop On WP-CLI
 
The Enterprise Wor/d/thy/Press
The Enterprise Wor/d/thy/PressThe Enterprise Wor/d/thy/Press
The Enterprise Wor/d/thy/Press
 
Deploying PHP on PaaS: Why and How?
Deploying PHP on PaaS: Why and How?Deploying PHP on PaaS: Why and How?
Deploying PHP on PaaS: Why and How?
 
ZendCon 2015 - DevOps for Small Teams
ZendCon 2015 - DevOps for Small TeamsZendCon 2015 - DevOps for Small Teams
ZendCon 2015 - DevOps for Small Teams
 
Madison PHP 2015 - DevOps For Small Teams
Madison PHP 2015 - DevOps For Small TeamsMadison PHP 2015 - DevOps For Small Teams
Madison PHP 2015 - DevOps For Small Teams
 
Improving WordPress Performance: Xdebug and PHP profiling
Improving WordPress Performance: Xdebug and PHP profilingImproving WordPress Performance: Xdebug and PHP profiling
Improving WordPress Performance: Xdebug and PHP profiling
 
Sharedhosting and WordPress
Sharedhosting and WordPressSharedhosting and WordPress
Sharedhosting and WordPress
 
DevOps For Small Teams
DevOps For Small TeamsDevOps For Small Teams
DevOps For Small Teams
 
Version Control ThinkVitamin
Version Control ThinkVitaminVersion Control ThinkVitamin
Version Control ThinkVitamin
 
Website releases made easy with the PEAR installer, OSCON 2009
Website releases made easy with the PEAR installer, OSCON 2009Website releases made easy with the PEAR installer, OSCON 2009
Website releases made easy with the PEAR installer, OSCON 2009
 
From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...
From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...
From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...
 
Laravel Forge: Hello World to Hello Production
Laravel Forge: Hello World to Hello ProductionLaravel Forge: Hello World to Hello Production
Laravel Forge: Hello World to Hello Production
 
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
 
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
 
Improving WordPress performance (xdebug and profiling)
Improving WordPress performance (xdebug and profiling)Improving WordPress performance (xdebug and profiling)
Improving WordPress performance (xdebug and profiling)
 
Midwest PHP 2017 DevOps For Small team
Midwest PHP 2017 DevOps For Small teamMidwest PHP 2017 DevOps For Small team
Midwest PHP 2017 DevOps For Small team
 
Word press, the automated way
Word press, the automated wayWord press, the automated way
Word press, the automated way
 
WordCamp Belfast DevOps for Beginners
WordCamp Belfast DevOps for BeginnersWordCamp Belfast DevOps for Beginners
WordCamp Belfast DevOps for Beginners
 
WordPress modern development
WordPress modern developmentWordPress modern development
WordPress modern development
 

Último

UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 

Último (20)

UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 

Beyond FTP: What I’ve Learned from Years of Deploying WordPress the Wrong Way

  • 1. Beyond FTP W O R D C A M P N O L A - A U G U S T 1 3 , 2 0 1 6 E L I S I L V E R M A N - C A L I P E R C R E A T I V E
  • 2. W O R D C A M P N O L A - A U G U S T 1 3 , 2 0 1 6 Or: What I’ve Learned from Years of Deploying WordPress the Wrong Way E L I S I L V E R M A N - C A L I P E R C R E A T I V E
  • 3. BEYOND FTP | it me! CALIPER I build websites, design for both screen and print, create web-based software and business tools, and offer creative direction for digital and physical design projects. Caliper works with businesses to establish strong brands and fluid workflows.
  • 4. BEYOND FTP | OVERVIEW Q: Do you rely on WordPress to make a living?
  • 5. ´ BEYOND FTP | My main goal is to expose more of the WordPress community to really powerful development tools in a way that aren’t intimidating and can be quickly adopted and installed. OVERVIEW You deserve the best tools.
  • 6. ´ BEYOND FTP | What it looks like to sync WordPress installs in seconds. What “software deployment” means, and specifically what it means in WordPress. Show you why, if you love FTP, it’s time to let it go. How WP devs can use tools from the non-WP world. How quickly you can start using the toolkit. OVERVIEW WHAT YOU’LL SEE TODAY
  • 7. BEYOND FTP | OVERVIEW Q: Who’s seen WordPress managed from the command line?
  • 8. ´ BEYOND FTP | THIS IS HOW YOU DEPLOY STARTING TODAY: OVERVIEW
  • 9. B E Y O N D F T P - W O R D C A M P N O L A - A U G U S T 1 3 , 2 0 1 6 Breaking Bad (Habits)
  • 10. BEYOND FTP | You can pretty much deliver a WP website without knowing how to write a word of code. But if you dive deeper into WordPress through a Cut-and-Paste Education, it can prevent you from becoming a better developer. BREAKING BAD (HABITS) WP IS SUPER EASY TO WORK WITH, BUT THAT CAN LEAD TO BAD PRACTICE. I learned this the hard way.
  • 11. BEYOND FTP | Working against a deadline for my first “legit” client, my workflow failed me…big time. BREAKING BAD (HABITS)
  • 12. BEYOND FTP | Q: Has this ever happened to anyone else? BREAKING BAD (HABITS) A: Yes. To Everyone.
  • 13. BEYOND FTP | My inexperience wasn’t cute anymore. It was a glaring liability. BREAKING BAD (HABITS)
  • 14. BEYOND FTP | I had been working in a vacuum and I had no mentor to show me the ropes, or point out the things I was doing totally wrong. FREELANCERS ARE ALONE. A LOT. BREAKING BAD (HABITS)
  • 15. BEYOND FTP | Desperately, I thought: “Other developers MUST have a better way.” Turns out, they do. BREAKING BAD (HABITS)
  • 16. B E Y O N D F T P - W O R D C A M P N O L A - A U G U S T 1 3 , 2 0 1 6 “Deployment”
  • 17. ´ BEYOND FTP | “all of the activities that make a software system available for use” “DEPLOYMENT” WHAT…IS… DEPLOYMENT? (WikiPedia)
  • 18. ´ BEYOND FTP | AND WHAT DOES THAT MEAN IN WORDPRESS? our “software system” is both the
 files and the database. core, themes, plugins, uploaded content customization, post content, session data “DEPLOYMENT”
  • 19. BEYOND FTP | Q: Do you develop locally and push code to a remote server? “DEPLOYMENT”
  • 20. ´ BEYOND FTP | THEN YOU KNOW THIS LIST… “DEPLOYMENT” Install WordPress. DB up and running. All plugins are installed and configured…The theme is installed (including the parent) and customized properly… The uploads are all there… I’M. SO. BORED.
  • 21. ´ BEYOND FTP | “DEPLOYMENT” CANT WE MAKE OUR MACHINES DO ALL THIS, AHEM, GRUNT WORK FOR US?
  • 22. B E Y O N D F T P - W O R D C A M P N O L A - A U G U S T 1 3 , 2 0 1 6 Why You Haven’t Left FTP Behind The Excuses:
  • 23. BEYOND FTP | “IT’S OVER MY HEAD” FTP EXCUSES But, before you knew how to swim, so did the deep end. $ ../I/know/the --command line_seems SCARY.
  • 24. BEYOND FTP | Just like any text editor, you can take control of the command line and let it adapt to you. iTerm oh-my-zsh aliases $ htdocs client $ cd /Applications/MAMP/htdocs/clientsite.com/wp-content/themes/my-clients-theme/ instead of “IT’S OVER MY HEAD” FTP EXCUSES
  • 25. BEYOND FTP | “it’s such a timesaver that any time I spent setting it up, I got back immediately after it was working, and then some…” “IT TAKES TOO LONG TO SETUP” - Paid Actor, Not a real Doctor FTP EXCUSES
  • 26. BEYOND FTP | “I’M NOT A DEVELOPER AND I HAVE BETTER THINGS TO LEARN” If you’re spending even a few hours a week messing WordPress – even content or theme config – this is worth your while. And if you’re writing code maybe it’s time you start calling yourself a developer… FTP EXCUSES
  • 27. BEYOND FTP | Instead of WordPress, let’s say I work as a lumberjack. r Choppin wood all damn day. HOW IT LOOKS IN ANOTHER INDUSTRY FTP EXCUSES
  • 28. BEYOND FTP | This is me trying to do my job done with the wrong tools… FTP EXCUSES
  • 29. BEYOND FTP | This is me trying to do my job done with the wrong tools… FTP EXCUSES
  • 30. BEYOND FTP | and here’s me with the right tools, gettin paid and clockin out… FTP EXCUSES
  • 31. BEYOND FTP | Note: I do not endorse deforestation FTP EXCUSES
  • 32. BEYOND FTP | NOW THAT YOU HAVE A CHOICE, WHICH ONE DO YOU CHOOSE? FTP EXCUSES
  • 33. B E Y O N D F T P - W O R D C A M P N O L A - A U G U S T 1 3 , 2 0 1 6 Deployment for WordPress “In the Wild”
  • 34. BEYOND FTP | The deploy needs to transfer the “software system” ( files & db ) OUR CRITERIA Needs to work on (or help with) crappy $2/mo hosting services that a lot of are FORCED to use with clients. IN THE WILD 1. 2.
  • 35. BEYOND FTP | RESEARCH & IMPLEMENTATION Roots’ Trellis is an amazing solution but caters to devs deploying enterprise-grade WP apps. Most likely, it won’t work with a cheap shared-server, and it’s tied to git, which is “smarter” but not what I wanted. IN THE WILD
  • 36. BEYOND FTP | & I K N O W , I K N O W . G U L P I S C O O L E R . P L E A S E , W R I T E A P O R T , P L Z … . / WP-CLI IN THE WILD
  • 37. BEYOND FTP | I was already using grunt.js for CSS + JS processing. Found and forked grunt-wordpress-deploy on npm (node package manager) Dario Ghilardi – @webrain on github GRUNT.JS IN THE WILD Javascript “task runner”
  • 38. BEYOND FTP | ๏ Many times faster than FTP (like, 100x) ๏ Intelligent: only touches files that changed ๏ Repeatable, reliable, configurable IN THE WILD GRUNT WORDPRESS DEPLOY Uses rsync, a standard command line file syncing service, and it’s a huge step up from FTP.
  • 39. BEYOND FTP | $ grunt sync_up --target=dev ANATOMY OF A GRUNT “CALL” IN THE WILD
  • 40. BEYOND FTP | $ grunt sync_up --target=dev “$” often represents cmd line. Don’t type this! run the grunt “executable” the grunt “task” you want to execute sets the server “target” flag (variable) to our “dev” environment. ANATOMY OF A GRUNT “CALL” IN THE WILD
  • 41. BEYOND FTP | Made for WP using SSH/rsync • push all local plugins • push all local uploads • build + compress theme/plugin • push theme/plugin • push the database GRUNT WORDPRESS DEPLOY IN THE WILD grunt sync_up
  • 42. BEYOND FTP | • Creates a clean folder that you deploy from – fallback for FTP • Simple versioning : creates “releases” – deliver to client, upload via wp-admin, don’t need to know git GRUNT WORDPRESS DEPLOY IN THE WILD Made for WP in The Wild grunt build
  • 43. BEYOND FTP | GRUNT WORDPRESS DEPLOY • build • push_theme • push_files • push_plugin • push_plugins • deploy • push_db • pull_db • sync_up Other grunt Tasks MANAGING FILES MANAGING THE DB ALL THE THINGS IN THE WILD
  • 44. BEYOND FTP | “WP-CLI is a set of command-line tools for managing WordPress installations. You can update plugins, configure multisite installs and much more, without using a web browser.” WP-CLI (wp-cli.org) IN THE WILD
  • 45. BEYOND FTP | $ wp plugin install query-monitor ANATOMY OF A BASIC WP-CLI IN THE WILD
  • 46. BEYOND FTP | $ wp plugin install query-monitor run the wp-cli “executable” the wp thing “type” you want to manipulate the action you want to perform with that thing additional info. In this case, the plugin slug from the wp plugins directory ANATOMY OF A BASIC WP-CLI IN THE WILD
  • 47. BEYOND FTP | BROWSER REFRESH GOT YA DOWN? No need to click around in wp-admin every time you need to de/activate a plugin. Want to see if that new slider plugin is causing the site to break? $ wp plugin deactivate acme-slider $ dp acme-slider or with my “deactivate-plugin” alias IN THE WILD
  • 48. BEYOND FTP | ALIASES As of very recently, you can specify a remote target WP install using wp-cli aliases. $ wp @dev plugin deactivate query-monitor alias name, defined in config “ssh: user@ssh.dev-site.com/remote/wp/path” MORE WP-CLI AWESOMENESS IN THE WILD View Config Docs
  • 49. B E Y O N D F T P - W O R D C A M P N O L A - A U G U S T 1 3 , 2 0 1 6 Getting it Running
  • 50. BEYOND FTP | I MADE YOU A THING! BOILERPLATE A github project that makes it super easy to get this up and running. I. Follow the 4 steps on github to install II. Add your DB and SSH details to the config III. Test using the —dry-run flag IV. Get to work! https://github.com/madebycaliper/grunt-wp-deploy-boilerplate
  • 51. BEYOND FTP | REQUIREMENTS ✓ SSH access w/key ✓ WP core installed ✓ WP database setup ✓ mysql command line wp-cli installed (optional) ✓ git ✓ rsync (bundled w/OS X) ✓ node.js + npm ✓ SSH key configured ✓ MAMP or comparable ✓ WordPress Installed wp-cli installed (optional) Local Remote BOILERPLATE
  • 52. BEYOND FTP | GRUNT DEPLOY AND WP-CLI DEMO BOILERPLATE
  • 53. BEYOND FTP | CONCERNS ๏ This method is not tied to version control like Capistrano or Deploy HQ. You cannot auto “roll back” to a previous version. ✓ You can checkout a local commit and just run ‘grunt deploy’ ๏ Still some chance of human error, it’s possible to overwrite files (these are irreversible operations) ✓ Play it safe by enabling rsync’s --dry-run flag first – shows you what files will be changed without doing it. ๏ MySQL and PHP configs can vary between hosts and create errors with the DB operations (command line outputs unexpected strings/results) ✓ Use the ‘sql_remove’ option in the wordpresdeploy.coffee file to sanitize output ๏ This hasn’t been tested on very large databases. Test it out for me? ๏ I’ve only ever done this on a Mac/linux. Not sure how rsync works on windows. CONCERNS
  • 54. ´ BEYOND FTP | THANK YOU! ๏ More command line tips for WordPress ๏ Debugging PHP (Sublime Text + Xdebug) ๏ Debugging JS in the Chrome DevTools ๏ Version control with git and SourceTree ๏ Advanced use of the wp-cli MadeByCaliper.com MIC DROP There’s so much more for WordPress developers. Improve your workflow, understanding of code, and know how to quickly troubleshoot WP/PHP:
  • 55. Beyond FTP W O R D C A M P N O L A - A U G U S T 1 3 , 2 0 1 6