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

Git vs SVN
Git vs SVNGit vs SVN
Git vs SVNneuros
 
Git utilisation quotidienne
Git   utilisation quotidienneGit   utilisation quotidienne
Git utilisation quotidienneSylvain Witmeyer
 
Présentation Git & GitHub
Présentation Git & GitHubPrésentation Git & GitHub
Présentation Git & GitHubThibault Vlacich
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요Jo Hoon
 
Union FileSystem - A Building Blocks Of a Container
Union FileSystem - A Building Blocks Of a ContainerUnion FileSystem - A Building Blocks Of a Container
Union FileSystem - A Building Blocks Of a ContainerKnoldus Inc.
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes IntroductionPeng Xiao
 
GitHub - Présentation
GitHub - PrésentationGitHub - Présentation
GitHub - PrésentationDavid RIEHL
 
GitOps is the best modern practice for CD with Kubernetes
GitOps is the best modern practice for CD with KubernetesGitOps is the best modern practice for CD with Kubernetes
GitOps is the best modern practice for CD with KubernetesVolodymyr Shynkar
 
Kubernetes Secrets Management on Production with Demo
Kubernetes Secrets Management on Production with DemoKubernetes Secrets Management on Production with Demo
Kubernetes Secrets Management on Production with DemoOpsta
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to GitLukas Fittl
 
Introduction to GitHub, Open Source and Tech Article
Introduction to GitHub, Open Source and Tech ArticleIntroduction to GitHub, Open Source and Tech Article
Introduction to GitHub, Open Source and Tech ArticlePRIYATHAMDARISI
 
Environment management in a continuous delivery world (3)
Environment management in a continuous delivery world (3)Environment management in a continuous delivery world (3)
Environment management in a continuous delivery world (3)Victor Iglesias
 
Formation autour de git et git lab
Formation autour de git et git labFormation autour de git et git lab
Formation autour de git et git labAbdelghani Azri
 
Extending kubernetes with CustomResourceDefinitions
Extending kubernetes with CustomResourceDefinitionsExtending kubernetes with CustomResourceDefinitions
Extending kubernetes with CustomResourceDefinitionsStefan Schimanski
 
WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...
WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...
WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...Brian Grant
 
Speeding up your team with GitOps
Speeding up your team with GitOpsSpeeding up your team with GitOps
Speeding up your team with GitOpsBrice Fernandes
 
Getting Git Right
Getting Git RightGetting Git Right
Getting Git RightSven Peters
 
Intelligence-Driven Industrial Security with Case Studies in ICS Attacks
Intelligence-Driven Industrial Security with Case Studies in ICS Attacks  Intelligence-Driven Industrial Security with Case Studies in ICS Attacks
Intelligence-Driven Industrial Security with Case Studies in ICS Attacks Dragos, Inc.
 

What's hot (20)

Git real slides
Git real slidesGit real slides
Git real slides
 
Git vs SVN
Git vs SVNGit vs SVN
Git vs SVN
 
Git utilisation quotidienne
Git   utilisation quotidienneGit   utilisation quotidienne
Git utilisation quotidienne
 
Présentation Git & GitHub
Présentation Git & GitHubPrésentation Git & GitHub
Présentation Git & GitHub
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
 
Union FileSystem - A Building Blocks Of a Container
Union FileSystem - A Building Blocks Of a ContainerUnion FileSystem - A Building Blocks Of a Container
Union FileSystem - A Building Blocks Of a Container
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
GitHub - Présentation
GitHub - PrésentationGitHub - Présentation
GitHub - Présentation
 
GitOps is the best modern practice for CD with Kubernetes
GitOps is the best modern practice for CD with KubernetesGitOps is the best modern practice for CD with Kubernetes
GitOps is the best modern practice for CD with Kubernetes
 
Kubernetes Secrets Management on Production with Demo
Kubernetes Secrets Management on Production with DemoKubernetes Secrets Management on Production with Demo
Kubernetes Secrets Management on Production with Demo
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
Introduction to GitHub, Open Source and Tech Article
Introduction to GitHub, Open Source and Tech ArticleIntroduction to GitHub, Open Source and Tech Article
Introduction to GitHub, Open Source and Tech Article
 
Environment management in a continuous delivery world (3)
Environment management in a continuous delivery world (3)Environment management in a continuous delivery world (3)
Environment management in a continuous delivery world (3)
 
Formation autour de git et git lab
Formation autour de git et git labFormation autour de git et git lab
Formation autour de git et git lab
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
Extending kubernetes with CustomResourceDefinitions
Extending kubernetes with CustomResourceDefinitionsExtending kubernetes with CustomResourceDefinitions
Extending kubernetes with CustomResourceDefinitions
 
WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...
WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...
WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...
 
Speeding up your team with GitOps
Speeding up your team with GitOpsSpeeding up your team with GitOps
Speeding up your team with GitOps
 
Getting Git Right
Getting Git RightGetting Git Right
Getting Git Right
 
Intelligence-Driven Industrial Security with Case Studies in ICS Attacks
Intelligence-Driven Industrial Security with Case Studies in ICS Attacks  Intelligence-Driven Industrial Security with Case Studies in ICS Attacks
Intelligence-Driven Industrial Security with Case Studies in ICS Attacks
 

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
 
Meaningful UX At Any Scale
Meaningful UX At Any ScaleMeaningful UX At Any Scale
Meaningful UX At Any ScaleCliff Seal
 

Viewers also liked (20)

An Introduction to PHP Classes
An Introduction to PHP ClassesAn Introduction to PHP Classes
An Introduction to PHP Classes
 
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
 
Meaningful UX At Any Scale
Meaningful UX At Any ScaleMeaningful UX At Any Scale
Meaningful UX At Any Scale
 

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
 
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
 
Empowering Non-Profits with WordPress
Empowering Non-Profits with WordPressEmpowering Non-Profits with WordPress
Empowering Non-Profits with WordPressCliff 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
 
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
 
Empowering Non-Profits with WordPress
Empowering Non-Profits with WordPressEmpowering Non-Profits with WordPress
Empowering Non-Profits with WordPress
 

Recently uploaded

Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 

Recently uploaded (20)

Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 

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