SlideShare ist ein Scribd-Unternehmen logo
1 von 55
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Andere mochten auch

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
 

Andere mochten auch (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
 

Ähnlich wie 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ý
 

Ähnlich wie 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
 

Kürzlich hochgeladen

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
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
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
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
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 

Kürzlich hochgeladen (20)

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
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
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
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
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
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
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.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