SlideShare a Scribd company logo
1 of 16
Download to read offline
@cliffseal
THE BIG IDEA
Multiple independent instances of WordPress
running off one, non-hacked core directory
(and possibly sharing themes and plugins, too)
@cliffseal
We use this stuff for
(evermoresites.com)
@cliffseal
WHY MULTITENANCY?
Here’s what multitenancy can offer you over individual
installations:

• Smaller footprint
• Faster code deployment
• Easier updating process all around
• Use single instances of themes & plugins
@cliffseal
NOT MULTISITE


Multiple databases
Less plugin hiccups
@cliffseal
WHAT’S NEW WITH MULTITENANCY?
• Symlinked plugins: Smart people have been talking
about multitenancy (and doing it) for years. Some best
practices have emerged, while WordPress 3.9 included
this critical final step.

• GitHub mirrors: things like WordPress core being
mirrored on Github have made the whole process
easier.
@cliffseal
HOW THE BIG IDEA WORKS


(For Evermore, At Least)
@cliffseal
index.php
wp-config.php
wp => ../wp
content
uploads
mu-plugins => ../repo/mu-plugins
plugins => ../repo/plugins
themes => ../repo/themes
HOW IS EACH SITE STRUCTURED?
@cliffseal
// WordPress view bootstrapper
define( 'WP_USE_THEMES', true );
require( './wp/wp-blog-header.php' );
WHAT’S IN INDEX.PHP?
@cliffseal
define('WP_HOME','https://' .
basename(__DIR__));
define('WP_SITEURL','https://' .
basename(__DIR__) . '/wp');
define( 'WP_CONTENT_DIR',
dirname( __FILE__ ) . '/content' );
define( 'WP_CONTENT_URL', 'https://' .
$_SERVER['HTTP_HOST'] . '/content' );
WHAT’S IN WP-CONFIG.PHP?
@cliffseal
The /uploads directory stays as-is—that always needs to be
independent.
The other symlinks (mu-plugins, plugins, themes) point to
single directories on the server containing one copy of
themes & plugins available on the sites. These are source-
controlled, so we can test updates locally and then deploy
them to each server.
WHAT’S IN THE CONTENT DIRECTORY?
@cliffseal
You need a standard WordPress core directory at the other
end of your symlink. Simply add in your own wp-
config.php:
include_once( $_SERVER['DOCUMENT_ROOT'] .
'/wp-config.php' );
This file never gets updated either in a standard core
update or in a Git checkout.
WHAT’S IN THE WP DIRECTORY?
@cliffseal
If you use the GitHub mirror as a remote, you can wait on
the tag to come through and run:
cd /my/wp/directory
git fetch --tags
git checkout -f tags/4.3.1
...and now everyone is updated. Alternatively, you can push
to a remote that checks itself out (like you might do with
the content dir). You can roll back versions easily, too.
WHAT’S IN THE WP DIRECTORY? (CONT.)
@cliffseal
1.COMBINE STEPS
2.WRITE SCRIPT
3.????
4.PROFIT!!!
@cliffseal
WHAT SHOULD WE LOOK OUT FOR?
• Some plugins (wrongly) assume a more standard
WordPress structure. This can break things. Patch
their plugin and submit it to them, because they will
(probably) not care.
• Use subdirectories inside /plugins when symlinking, as
single file plugins and individual mu-plugins can have
trouble.
• Test deployment processes for multiple production
servers.
@cliffseal
@cliffseal

More Related Content

What's hot

Front-End Web Development
Front-End Web DevelopmentFront-End Web Development
Front-End Web DevelopmentYash Sati
 
Basic Wordpress PPT
Basic Wordpress PPT Basic Wordpress PPT
Basic Wordpress PPT mayur akabari
 
Introduction to WordPress
Introduction to WordPressIntroduction to WordPress
Introduction to WordPressHarshad Mane
 
Basic WordPress for Beginner ppt
Basic WordPress for Beginner pptBasic WordPress for Beginner ppt
Basic WordPress for Beginner pptDipika Wadhvani
 
WordPress Course Outline
WordPress Course OutlineWordPress Course Outline
WordPress Course OutlineIT Ki Dunya
 
JavaScript guide 2020 Learn JavaScript
JavaScript guide 2020 Learn JavaScriptJavaScript guide 2020 Learn JavaScript
JavaScript guide 2020 Learn JavaScriptLaurence Svekis ✔
 
Curso Wordpress - Diseña tu Web en Wordpress
Curso Wordpress - Diseña tu Web en WordpressCurso Wordpress - Diseña tu Web en Wordpress
Curso Wordpress - Diseña tu Web en WordpressToni Padrell
 
Unix shell scripting basics
Unix shell scripting basicsUnix shell scripting basics
Unix shell scripting basicsManav Prasad
 
Introduction to WordPress
Introduction to WordPressIntroduction to WordPress
Introduction to WordPressEunus Hosen
 
Apache Server Tutorial
Apache Server TutorialApache Server Tutorial
Apache Server TutorialJagat Kothari
 
Laravel presentation
Laravel presentationLaravel presentation
Laravel presentationToufiq Mahmud
 
HTML5: features with examples
HTML5: features with examplesHTML5: features with examples
HTML5: features with examplesAlfredo Torre
 
Introduction to Docker
Introduction  to DockerIntroduction  to Docker
Introduction to DockerJian Wu
 
web development.pptx
web development.pptxweb development.pptx
web development.pptxMohdArbazraza
 
Web Development Presentation
Web Development PresentationWeb Development Presentation
Web Development PresentationTurnToTech
 

What's hot (20)

Front-End Web Development
Front-End Web DevelopmentFront-End Web Development
Front-End Web Development
 
Basics PHP
Basics PHPBasics PHP
Basics PHP
 
Basic Wordpress PPT
Basic Wordpress PPT Basic Wordpress PPT
Basic Wordpress PPT
 
Introduction to WordPress
Introduction to WordPressIntroduction to WordPress
Introduction to WordPress
 
Basic WordPress for Beginner ppt
Basic WordPress for Beginner pptBasic WordPress for Beginner ppt
Basic WordPress for Beginner ppt
 
WordPress Course Outline
WordPress Course OutlineWordPress Course Outline
WordPress Course Outline
 
Drupal
DrupalDrupal
Drupal
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
JavaScript guide 2020 Learn JavaScript
JavaScript guide 2020 Learn JavaScriptJavaScript guide 2020 Learn JavaScript
JavaScript guide 2020 Learn JavaScript
 
Curso Wordpress - Diseña tu Web en Wordpress
Curso Wordpress - Diseña tu Web en WordpressCurso Wordpress - Diseña tu Web en Wordpress
Curso Wordpress - Diseña tu Web en Wordpress
 
Unix shell scripting basics
Unix shell scripting basicsUnix shell scripting basics
Unix shell scripting basics
 
Introduction to WordPress
Introduction to WordPressIntroduction to WordPress
Introduction to WordPress
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Apache Server Tutorial
Apache Server TutorialApache Server Tutorial
Apache Server Tutorial
 
Spring Boot Tutorial
Spring Boot TutorialSpring Boot Tutorial
Spring Boot Tutorial
 
Laravel presentation
Laravel presentationLaravel presentation
Laravel presentation
 
HTML5: features with examples
HTML5: features with examplesHTML5: features with examples
HTML5: features with examples
 
Introduction to Docker
Introduction  to DockerIntroduction  to Docker
Introduction to Docker
 
web development.pptx
web development.pptxweb development.pptx
web development.pptx
 
Web Development Presentation
Web Development PresentationWeb Development Presentation
Web Development Presentation
 

Viewers also liked

An Introduction to PHP Classes
An Introduction to PHP ClassesAn Introduction to PHP Classes
An Introduction to PHP ClassesMicah Wood
 
Varying wordpressdevelopmentenvironment wp-campus2016
Varying wordpressdevelopmentenvironment wp-campus2016Varying wordpressdevelopmentenvironment wp-campus2016
Varying wordpressdevelopmentenvironment wp-campus2016David Brattoli
 
Web Publishing with WordPress Across the Curriculum - WP Campus16
Web Publishing with WordPress Across the Curriculum - WP Campus16Web Publishing with WordPress Across the Curriculum - WP Campus16
Web Publishing with WordPress Across the Curriculum - WP Campus16Middle Tennessee State University
 
FEMALE ABUSE WE CAN MAKE A DIFFERENCE
FEMALE ABUSE WE CAN MAKE A DIFFERENCEFEMALE ABUSE WE CAN MAKE A DIFFERENCE
FEMALE ABUSE WE CAN MAKE A DIFFERENCEKittycat200
 
No One Cares About Your Content (Yet): WordCamp Chicago 2013
No One Cares About Your Content (Yet): WordCamp Chicago 2013No One Cares About Your Content (Yet): WordCamp Chicago 2013
No One Cares About Your Content (Yet): WordCamp Chicago 2013Cliff Seal
 
The Leslie F. Schwartz Pancreatic Cancer Research Foundation
The Leslie F. Schwartz Pancreatic Cancer Research FoundationThe Leslie F. Schwartz Pancreatic Cancer Research Foundation
The Leslie F. Schwartz Pancreatic Cancer Research FoundationRobert Schwartz
 
01 manajemen-personalia1
01 manajemen-personalia101 manajemen-personalia1
01 manajemen-personalia1STEVENZ Huang
 
Ru quran kuliev_no_comments
Ru quran kuliev_no_commentsRu quran kuliev_no_comments
Ru quran kuliev_no_commentsgalamislam
 
SEM GRUP AdWords 101-1A
SEM GRUP AdWords 101-1ASEM GRUP AdWords 101-1A
SEM GRUP AdWords 101-1ASEM GRUP
 
นำเสนอ23สิงหาคม
นำเสนอ23สิงหาคมนำเสนอ23สิงหาคม
นำเสนอ23สิงหาคมAtima Teraksee
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1Atima Teraksee
 
Get Started in Professional WordPress Design & Development
Get Started in Professional WordPress Design & DevelopmentGet Started in Professional WordPress Design & Development
Get Started in Professional WordPress Design & DevelopmentCliff Seal
 
Каст самомотивации. Моя первая презентация. ЗОЖ.
Каст самомотивации. Моя первая презентация. ЗОЖ.Каст самомотивации. Моя первая презентация. ЗОЖ.
Каст самомотивации. Моя первая презентация. ЗОЖ.Alexander Monchenko
 
Indian spirituality
Indian spiritualityIndian spirituality
Indian spiritualitygaabba2000
 

Viewers also liked (20)

An Introduction to PHP Classes
An Introduction to PHP ClassesAn Introduction to PHP Classes
An Introduction to PHP Classes
 
Introducing Wordpress Multitenancy
Introducing Wordpress MultitenancyIntroducing Wordpress Multitenancy
Introducing Wordpress Multitenancy
 
Varying wordpressdevelopmentenvironment wp-campus2016
Varying wordpressdevelopmentenvironment wp-campus2016Varying wordpressdevelopmentenvironment wp-campus2016
Varying wordpressdevelopmentenvironment wp-campus2016
 
Web Publishing with WordPress Across the Curriculum - WP Campus16
Web Publishing with WordPress Across the Curriculum - WP Campus16Web Publishing with WordPress Across the Curriculum - WP Campus16
Web Publishing with WordPress Across the Curriculum - WP Campus16
 
Autoestima
AutoestimaAutoestima
Autoestima
 
FEMALE ABUSE WE CAN MAKE A DIFFERENCE
FEMALE ABUSE WE CAN MAKE A DIFFERENCEFEMALE ABUSE WE CAN MAKE A DIFFERENCE
FEMALE ABUSE WE CAN MAKE A DIFFERENCE
 
No One Cares About Your Content (Yet): WordCamp Chicago 2013
No One Cares About Your Content (Yet): WordCamp Chicago 2013No One Cares About Your Content (Yet): WordCamp Chicago 2013
No One Cares About Your Content (Yet): WordCamp Chicago 2013
 
The Leslie F. Schwartz Pancreatic Cancer Research Foundation
The Leslie F. Schwartz Pancreatic Cancer Research FoundationThe Leslie F. Schwartz Pancreatic Cancer Research Foundation
The Leslie F. Schwartz Pancreatic Cancer Research Foundation
 
01 manajemen-personalia1
01 manajemen-personalia101 manajemen-personalia1
01 manajemen-personalia1
 
Ru quran kuliev_no_comments
Ru quran kuliev_no_commentsRu quran kuliev_no_comments
Ru quran kuliev_no_comments
 
SEM GRUP AdWords 101-1A
SEM GRUP AdWords 101-1ASEM GRUP AdWords 101-1A
SEM GRUP AdWords 101-1A
 
นำเสนอ23สิงหาคม
นำเสนอ23สิงหาคมนำเสนอ23สิงหาคม
นำเสนอ23สิงหาคม
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1
 
Get Started in Professional WordPress Design & Development
Get Started in Professional WordPress Design & DevelopmentGet Started in Professional WordPress Design & Development
Get Started in Professional WordPress Design & Development
 
Błędy Ex Post
Błędy Ex PostBłędy Ex Post
Błędy Ex Post
 
น้ำ22
น้ำ22น้ำ22
น้ำ22
 
Unit 4, #18
Unit 4, #18Unit 4, #18
Unit 4, #18
 
Каст самомотивации. Моя первая презентация. ЗОЖ.
Каст самомотивации. Моя первая презентация. ЗОЖ.Каст самомотивации. Моя первая презентация. ЗОЖ.
Каст самомотивации. Моя первая презентация. ЗОЖ.
 
Bài 11
Bài 11Bài 11
Bài 11
 
Indian spirituality
Indian spiritualityIndian spirituality
Indian spirituality
 

Similar to Introducing WordPress Multitenancy (Wordcamp Vegas/Orlando 2015/WPCampus)

Microservices are ‘easy’ dependencies are hard
Microservices are ‘easy’ dependencies are hardMicroservices are ‘easy’ dependencies are hard
Microservices are ‘easy’ dependencies are hardItiel Shwartz
 
WordPress At Scale. WordCamp Dhaka 2019
WordPress At Scale. WordCamp Dhaka 2019WordPress At Scale. WordCamp Dhaka 2019
WordPress At Scale. WordCamp Dhaka 2019Anam Ahmed
 
Bootstrap Framework and Drupal
Bootstrap Framework and DrupalBootstrap Framework and Drupal
Bootstrap Framework and DrupalJim Birch
 
LuisRodriguezLocalDevEnvironmentsDrupalOpenDays
LuisRodriguezLocalDevEnvironmentsDrupalOpenDaysLuisRodriguezLocalDevEnvironmentsDrupalOpenDays
LuisRodriguezLocalDevEnvironmentsDrupalOpenDaysLuis Rodríguez Castromil
 
Managing a WordPress Site as a Composer Project by Rahul Bansal @ WordCamp Na...
Managing a WordPress Site as a Composer Project by Rahul Bansal @ WordCamp Na...Managing a WordPress Site as a Composer Project by Rahul Bansal @ WordCamp Na...
Managing a WordPress Site as a Composer Project by Rahul Bansal @ WordCamp Na...rtCamp
 
Best Practices for Building WordPress Applications
Best Practices for Building WordPress ApplicationsBest Practices for Building WordPress Applications
Best Practices for Building WordPress ApplicationsTaylor Lovett
 
August OpenNTF Webinar - Git and GitHub Explained
August OpenNTF Webinar - Git and GitHub ExplainedAugust OpenNTF Webinar - Git and GitHub Explained
August OpenNTF Webinar - Git and GitHub ExplainedHoward Greenberg
 
Docman - The swiss army knife for Drupal multisite docroot management and dep...
Docman - The swiss army knife for Drupal multisite docroot management and dep...Docman - The swiss army knife for Drupal multisite docroot management and dep...
Docman - The swiss army knife for Drupal multisite docroot management and dep...Aleksey Tkachenko
 
Gianluca Varisco - DevOoops (Increase awareness around DevOps infra security)
Gianluca Varisco - DevOoops (Increase awareness around DevOps infra security)Gianluca Varisco - DevOoops (Increase awareness around DevOps infra security)
Gianluca Varisco - DevOoops (Increase awareness around DevOps infra security)Codemotion
 
Containers for grownups migrating traditional & existing applications[1...
Containers for grownups   migrating traditional & existing applications[1...Containers for grownups   migrating traditional & existing applications[1...
Containers for grownups migrating traditional & existing applications[1...DevOps.com
 
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ý
 
Road to Opscon (Pisa '15) - DevOoops
Road to Opscon (Pisa '15) - DevOoopsRoad to Opscon (Pisa '15) - DevOoops
Road to Opscon (Pisa '15) - DevOoopsGianluca Varisco
 
APACHE
APACHEAPACHE
APACHEARJUN
 
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Michael Lihs
 
Building a Custom Theme in Drupal 8
Building a Custom Theme in Drupal 8Building a Custom Theme in Drupal 8
Building a Custom Theme in Drupal 8Anne Tomasevich
 

Similar to Introducing WordPress Multitenancy (Wordcamp Vegas/Orlando 2015/WPCampus) (20)

Microservices are ‘easy’ dependencies are hard
Microservices are ‘easy’ dependencies are hardMicroservices are ‘easy’ dependencies are hard
Microservices are ‘easy’ dependencies are hard
 
WordPress At Scale. WordCamp Dhaka 2019
WordPress At Scale. WordCamp Dhaka 2019WordPress At Scale. WordCamp Dhaka 2019
WordPress At Scale. WordCamp Dhaka 2019
 
Bootstrap Framework and Drupal
Bootstrap Framework and DrupalBootstrap Framework and Drupal
Bootstrap Framework and Drupal
 
Drupal Multi-site for Fun and Profit
Drupal Multi-site for Fun and ProfitDrupal Multi-site for Fun and Profit
Drupal Multi-site for Fun and Profit
 
LuisRodriguezLocalDevEnvironmentsDrupalOpenDays
LuisRodriguezLocalDevEnvironmentsDrupalOpenDaysLuisRodriguezLocalDevEnvironmentsDrupalOpenDays
LuisRodriguezLocalDevEnvironmentsDrupalOpenDays
 
Managing a WordPress Site as a Composer Project by Rahul Bansal @ WordCamp Na...
Managing a WordPress Site as a Composer Project by Rahul Bansal @ WordCamp Na...Managing a WordPress Site as a Composer Project by Rahul Bansal @ WordCamp Na...
Managing a WordPress Site as a Composer Project by Rahul Bansal @ WordCamp Na...
 
Best Practices for Building WordPress Applications
Best Practices for Building WordPress ApplicationsBest Practices for Building WordPress Applications
Best Practices for Building WordPress Applications
 
August OpenNTF Webinar - Git and GitHub Explained
August OpenNTF Webinar - Git and GitHub ExplainedAugust OpenNTF Webinar - Git and GitHub Explained
August OpenNTF Webinar - Git and GitHub Explained
 
Pantheon basics
Pantheon basicsPantheon basics
Pantheon basics
 
CICD_1670665418.pdf
CICD_1670665418.pdfCICD_1670665418.pdf
CICD_1670665418.pdf
 
Docman - The swiss army knife for Drupal multisite docroot management and dep...
Docman - The swiss army knife for Drupal multisite docroot management and dep...Docman - The swiss army knife for Drupal multisite docroot management and dep...
Docman - The swiss army knife for Drupal multisite docroot management and dep...
 
Fewd week1 slides
Fewd week1 slidesFewd week1 slides
Fewd week1 slides
 
Gianluca Varisco - DevOoops (Increase awareness around DevOps infra security)
Gianluca Varisco - DevOoops (Increase awareness around DevOps infra security)Gianluca Varisco - DevOoops (Increase awareness around DevOps infra security)
Gianluca Varisco - DevOoops (Increase awareness around DevOps infra security)
 
Containers for grownups migrating traditional & existing applications[1...
Containers for grownups   migrating traditional & existing applications[1...Containers for grownups   migrating traditional & existing applications[1...
Containers for grownups migrating traditional & existing applications[1...
 
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
 
Road to Opscon (Pisa '15) - DevOoops
Road to Opscon (Pisa '15) - DevOoopsRoad to Opscon (Pisa '15) - DevOoops
Road to Opscon (Pisa '15) - DevOoops
 
APACHE
APACHEAPACHE
APACHE
 
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
 
Building a Custom Theme in Drupal 8
Building a Custom Theme in Drupal 8Building a Custom Theme in Drupal 8
Building a Custom Theme in Drupal 8
 

More from Cliff Seal

Trust in the Future
Trust in the FutureTrust in the Future
Trust in the FutureCliff Seal
 
Building Advocates with World-Class Customer Experiences
Building Advocates with World-Class Customer ExperiencesBuilding Advocates with World-Class Customer Experiences
Building Advocates with World-Class Customer ExperiencesCliff Seal
 
Mastering B2B Email
Mastering B2B EmailMastering B2B Email
Mastering B2B EmailCliff Seal
 
Death to Boring B2B Marketing, Part 2: Jobs-to-Be-Done
Death to Boring B2B Marketing, Part 2: Jobs-to-Be-DoneDeath to Boring B2B Marketing, Part 2: Jobs-to-Be-Done
Death to Boring B2B Marketing, Part 2: Jobs-to-Be-DoneCliff Seal
 
DIY WordPress Site Management: Configure, Launch, and Maintain
DIY WordPress Site Management: Configure, Launch, and MaintainDIY WordPress Site Management: Configure, Launch, and Maintain
DIY WordPress Site Management: Configure, Launch, and MaintainCliff Seal
 
Inviting Experimentation by Design
Inviting Experimentation by DesignInviting Experimentation by Design
Inviting Experimentation by DesignCliff Seal
 
Death to Boring B2B Marketing: How Applying Design Thinking Drives Success
Death to Boring B2B Marketing: How Applying Design Thinking Drives SuccessDeath to Boring B2B Marketing: How Applying Design Thinking Drives Success
Death to Boring B2B Marketing: How Applying Design Thinking Drives SuccessCliff Seal
 
People Over Pixels: Meaningful UX That Scales
People Over Pixels: Meaningful UX That ScalesPeople Over Pixels: Meaningful UX That Scales
People Over Pixels: Meaningful UX That ScalesCliff Seal
 
Friendlier, Safer WordPress Admin Areas
Friendlier, Safer WordPress Admin AreasFriendlier, Safer WordPress Admin Areas
Friendlier, Safer WordPress Admin AreasCliff Seal
 
Temporary Cache Assistance (Transients API): WordCamp Birmingham 2014
Temporary Cache Assistance (Transients API): WordCamp Birmingham 2014Temporary Cache Assistance (Transients API): WordCamp Birmingham 2014
Temporary Cache Assistance (Transients API): WordCamp Birmingham 2014Cliff Seal
 
Meaningful UX At Any Scale
Meaningful UX At Any ScaleMeaningful UX At Any Scale
Meaningful UX At Any ScaleCliff Seal
 
No one cares about your content (yet): WordCamp Charleston 2014
No one cares about your content (yet): WordCamp Charleston 2014No one cares about your content (yet): WordCamp Charleston 2014
No one cares about your content (yet): WordCamp Charleston 2014Cliff Seal
 
Usability, Groupthink, and Authority
Usability, Groupthink, and AuthorityUsability, Groupthink, and Authority
Usability, Groupthink, and AuthorityCliff Seal
 
Temporary Cache Assistance (Transients API): WordCamp Phoenix 2014
Temporary Cache Assistance (Transients API): WordCamp Phoenix 2014Temporary Cache Assistance (Transients API): WordCamp Phoenix 2014
Temporary Cache Assistance (Transients API): WordCamp Phoenix 2014Cliff Seal
 
No One Cares About Your Content (Yet): WordCamp Miami 2013
No One Cares About Your Content (Yet): WordCamp Miami 2013No One Cares About Your Content (Yet): WordCamp Miami 2013
No One Cares About Your Content (Yet): WordCamp Miami 2013Cliff Seal
 
Speed Things Up with Transients
Speed Things Up with TransientsSpeed Things Up with Transients
Speed Things Up with TransientsCliff Seal
 
A Brief History of Metal
A Brief History of MetalA Brief History of Metal
A Brief History of MetalCliff Seal
 
No One Cares About Your Content (Yet): WordCamp Phoenix 2013
No One Cares About Your Content (Yet): WordCamp Phoenix 2013No One Cares About Your Content (Yet): WordCamp Phoenix 2013
No One Cares About Your Content (Yet): WordCamp Phoenix 2013Cliff Seal
 
WordPress and Pardot: The World’s Newest Power Couple
WordPress and Pardot: The World’s Newest Power CoupleWordPress and Pardot: The World’s Newest Power Couple
WordPress and Pardot: The World’s Newest Power CoupleCliff Seal
 
No One Cares About Your Content (Yet): Digital Atlanta 2012
No One Cares About Your Content (Yet): Digital Atlanta 2012No One Cares About Your Content (Yet): Digital Atlanta 2012
No One Cares About Your Content (Yet): Digital Atlanta 2012Cliff Seal
 

More from Cliff Seal (20)

Trust in the Future
Trust in the FutureTrust in the Future
Trust in the Future
 
Building Advocates with World-Class Customer Experiences
Building Advocates with World-Class Customer ExperiencesBuilding Advocates with World-Class Customer Experiences
Building Advocates with World-Class Customer Experiences
 
Mastering B2B Email
Mastering B2B EmailMastering B2B Email
Mastering B2B Email
 
Death to Boring B2B Marketing, Part 2: Jobs-to-Be-Done
Death to Boring B2B Marketing, Part 2: Jobs-to-Be-DoneDeath to Boring B2B Marketing, Part 2: Jobs-to-Be-Done
Death to Boring B2B Marketing, Part 2: Jobs-to-Be-Done
 
DIY WordPress Site Management: Configure, Launch, and Maintain
DIY WordPress Site Management: Configure, Launch, and MaintainDIY WordPress Site Management: Configure, Launch, and Maintain
DIY WordPress Site Management: Configure, Launch, and Maintain
 
Inviting Experimentation by Design
Inviting Experimentation by DesignInviting Experimentation by Design
Inviting Experimentation by Design
 
Death to Boring B2B Marketing: How Applying Design Thinking Drives Success
Death to Boring B2B Marketing: How Applying Design Thinking Drives SuccessDeath to Boring B2B Marketing: How Applying Design Thinking Drives Success
Death to Boring B2B Marketing: How Applying Design Thinking Drives Success
 
People Over Pixels: Meaningful UX That Scales
People Over Pixels: Meaningful UX That ScalesPeople Over Pixels: Meaningful UX That Scales
People Over Pixels: Meaningful UX That Scales
 
Friendlier, Safer WordPress Admin Areas
Friendlier, Safer WordPress Admin AreasFriendlier, Safer WordPress Admin Areas
Friendlier, Safer WordPress Admin Areas
 
Temporary Cache Assistance (Transients API): WordCamp Birmingham 2014
Temporary Cache Assistance (Transients API): WordCamp Birmingham 2014Temporary Cache Assistance (Transients API): WordCamp Birmingham 2014
Temporary Cache Assistance (Transients API): WordCamp Birmingham 2014
 
Meaningful UX At Any Scale
Meaningful UX At Any ScaleMeaningful UX At Any Scale
Meaningful UX At Any Scale
 
No one cares about your content (yet): WordCamp Charleston 2014
No one cares about your content (yet): WordCamp Charleston 2014No one cares about your content (yet): WordCamp Charleston 2014
No one cares about your content (yet): WordCamp Charleston 2014
 
Usability, Groupthink, and Authority
Usability, Groupthink, and AuthorityUsability, Groupthink, and Authority
Usability, Groupthink, and Authority
 
Temporary Cache Assistance (Transients API): WordCamp Phoenix 2014
Temporary Cache Assistance (Transients API): WordCamp Phoenix 2014Temporary Cache Assistance (Transients API): WordCamp Phoenix 2014
Temporary Cache Assistance (Transients API): WordCamp Phoenix 2014
 
No One Cares About Your Content (Yet): WordCamp Miami 2013
No One Cares About Your Content (Yet): WordCamp Miami 2013No One Cares About Your Content (Yet): WordCamp Miami 2013
No One Cares About Your Content (Yet): WordCamp Miami 2013
 
Speed Things Up with Transients
Speed Things Up with TransientsSpeed Things Up with Transients
Speed Things Up with Transients
 
A Brief History of Metal
A Brief History of MetalA Brief History of Metal
A Brief History of Metal
 
No One Cares About Your Content (Yet): WordCamp Phoenix 2013
No One Cares About Your Content (Yet): WordCamp Phoenix 2013No One Cares About Your Content (Yet): WordCamp Phoenix 2013
No One Cares About Your Content (Yet): WordCamp Phoenix 2013
 
WordPress and Pardot: The World’s Newest Power Couple
WordPress and Pardot: The World’s Newest Power CoupleWordPress and Pardot: The World’s Newest Power Couple
WordPress and Pardot: The World’s Newest Power Couple
 
No One Cares About Your Content (Yet): Digital Atlanta 2012
No One Cares About Your Content (Yet): Digital Atlanta 2012No One Cares About Your Content (Yet): Digital Atlanta 2012
No One Cares About Your Content (Yet): Digital Atlanta 2012
 

Recently uploaded

PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 

Recently uploaded (20)

PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 

Introducing WordPress Multitenancy (Wordcamp Vegas/Orlando 2015/WPCampus)

  • 2. THE BIG IDEA Multiple independent instances of WordPress running off one, non-hacked core directory (and possibly sharing themes and plugins, too) @cliffseal
  • 3. We use this stuff for (evermoresites.com) @cliffseal
  • 4. WHY MULTITENANCY? Here’s what multitenancy can offer you over individual installations:
 • Smaller footprint • Faster code deployment • Easier updating process all around • Use single instances of themes & plugins @cliffseal
  • 5. NOT MULTISITE 
 Multiple databases Less plugin hiccups @cliffseal
  • 6. WHAT’S NEW WITH MULTITENANCY? • Symlinked plugins: Smart people have been talking about multitenancy (and doing it) for years. Some best practices have emerged, while WordPress 3.9 included this critical final step.
 • GitHub mirrors: things like WordPress core being mirrored on Github have made the whole process easier. @cliffseal
  • 7. HOW THE BIG IDEA WORKS 
 (For Evermore, At Least) @cliffseal
  • 8. index.php wp-config.php wp => ../wp content uploads mu-plugins => ../repo/mu-plugins plugins => ../repo/plugins themes => ../repo/themes HOW IS EACH SITE STRUCTURED? @cliffseal
  • 9. // WordPress view bootstrapper define( 'WP_USE_THEMES', true ); require( './wp/wp-blog-header.php' ); WHAT’S IN INDEX.PHP? @cliffseal
  • 10. define('WP_HOME','https://' . basename(__DIR__)); define('WP_SITEURL','https://' . basename(__DIR__) . '/wp'); define( 'WP_CONTENT_DIR', dirname( __FILE__ ) . '/content' ); define( 'WP_CONTENT_URL', 'https://' . $_SERVER['HTTP_HOST'] . '/content' ); WHAT’S IN WP-CONFIG.PHP? @cliffseal
  • 11. The /uploads directory stays as-is—that always needs to be independent. The other symlinks (mu-plugins, plugins, themes) point to single directories on the server containing one copy of themes & plugins available on the sites. These are source- controlled, so we can test updates locally and then deploy them to each server. WHAT’S IN THE CONTENT DIRECTORY? @cliffseal
  • 12. You need a standard WordPress core directory at the other end of your symlink. Simply add in your own wp- config.php: include_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-config.php' ); This file never gets updated either in a standard core update or in a Git checkout. WHAT’S IN THE WP DIRECTORY? @cliffseal
  • 13. If you use the GitHub mirror as a remote, you can wait on the tag to come through and run: cd /my/wp/directory git fetch --tags git checkout -f tags/4.3.1 ...and now everyone is updated. Alternatively, you can push to a remote that checks itself out (like you might do with the content dir). You can roll back versions easily, too. WHAT’S IN THE WP DIRECTORY? (CONT.) @cliffseal
  • 15. WHAT SHOULD WE LOOK OUT FOR? • Some plugins (wrongly) assume a more standard WordPress structure. This can break things. Patch their plugin and submit it to them, because they will (probably) not care. • Use subdirectories inside /plugins when symlinking, as single file plugins and individual mu-plugins can have trouble. • Test deployment processes for multiple production servers. @cliffseal