SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Downloaden Sie, um offline zu lesen
Deployment
with ExpressionEngine
@BostonEErs
November 16, 2010
Roadmap
1. Vanilla Migration - Step by Step
2. Making Deployment Easier - Tools and
Methods
3. Alternative Deployment
Methods
The Two Faces of EE
The Database The Files
- Could be locally hosted, already on
the server, or on another server.
- Contains most data that is fed into
ExpressionEngine.
- Locally hosted or on another server.
- Contains ExpressionEngine plus any
addons and their themes.
- Contains templates (if you are saving
templates as files).
- Contains hard-coded EE config files.
The Players
The Database
Staging Server
Local Environment
Production Server
Mystery Element??
Your Setup
Staging Server? No staging server?
One developer or a team of developers?
What your setup is depends on your organizational needs, your
client's needs, and what is overkill.
Beforehand
Have an EE migration checklist handy.
Make sure the new server can handle ExpressionEngine.
Make sure you have enough time (no meetings in 15 minutes).
Make sure you have a backup plan if it hits the fan.
Migrating Step by
Step
Step 1: Backup
Back up the files and the database.
Don't not do this.
Step 2: Sync Templates
This is very easy to do on EE2.1
EE Templates
Is the template saved
as a file?
Yes
Notes
Get all data for the template out
of the database.
Step 2: Sync Templates
No native tool in EE1.x
Alternatives: Manual, third-party solutions.
DC Template Manager (Free)
"Saves the content of the template files (saved in the file-system) back to
the database."
http://devot-ee.com/add-ons/dc-template-manager/
Step 3: Export DB
Take note of Database collation. Changing the DB collation might break your
site entirely.
Database Collations
Notes
"Set of rules for comparing characters in a character set".
Defines the relationship of the character encoding to the actual
characters.
Default is latin1_swedish_ci, because the developers of MySQL
are Swedish.
Collations are needed for MySQL to perform logic - such as
ordering rows by strings in columns in different languages.
ExpressionEngine will, by default, create databases with utf8
character sets and utf8_general_ci collations.
Step 4: Create a New Database
Only necessary if moving databases.
Import SQL file and verify that collation is the same.
Step 5: Migrate File System
Don't delete existing data on the server.
Use an archive (tar or zip) if your host allows it.
& Set Permissions
Confirm and set file permissions as necessary.
File Permissions
/system/expressionengine/config/config.php
/system/expressionengine/config/database.php
666 (or equivalent)
/system/expressionengine/cache/
/images/avatars/uploads/
/images/captchas/
/images/member_photos/
/images/pm_attachments/
/images/signature_attachments/
/images/uploads/
777 (or equivalent)
Set applicable permissions for your template directory.
Check to see if add-ons have file permission needs.
Don't forget ALL the file's need correct permissions.
File Permissions
/path.php
/system/config.php
/system/config_bak.php
666 (or equivalent)
/images/avatars/uploads/
/images/captchas/
/images/member_photos/
/images/pm_attachments/
/images/signature_attachments/
/images/uploads/
/system/cache/
777 (or equivalent)
Step 6: Update Hardcoded Configs
Update configs in the file system for the database and basic
configs.
/system/expressionengine/config/database.php
/system/expressionengine/config/config.php
You can update the config.php values
in the Admin > System Administration
> Config Editor in EE2.
/system/config.php
/path.php
Step 7: Change Path Variables
EE likes to keep the server path in different places. You'll need to update
those.
Find your server path using the Tools > Utilities > PHP Info tool.
Your server path should be the _SERVER['DOMAIN_PATH']
variable.
Step 8: Update Additional Paths
Look for paths in JS, CSS, add-on paths, etc.
Remember hard-coded paths in templates. You can batch-remove these
with search and replace in EE2.
Step 9: Verify You Can Sync Templates
Use the EE2 Sync tool to make sure that you can synchronize your EE2
templates.
All your template data in the database should be up to date at this point in
the move, and you can re-create the directory if there are read/write issues.
Step 10: Clear Your Cache
Just do it. For fun.
Step 11: Verify Your .htaccess
.htaccess files tend to get lost in moves. You may need to re-create it or
modify it for a different server setup.
Step 11: Load Your Site
It either works or it doesn't or something in-between.
Contingency Plans
Put up old site and start steps from #1.
If you can access the CP, turn off the site and start searching on the
forums.
Check file permissions for files in general.
Turn on debugging index.php for PHP errors (EE2) or set error_reporting to
'E_ALL' in index.php (EE1)
Making Deployment
Easier
Cool Tools You Gotta Use If You
Wanna Stay in School
DC Template Manager
"...DC Template Manager offers a
convenient way of moving the
contents of many templates between
the database and the filesystem
simultaneously."
Free
http://devot-ee.com/add-ons/dc-template-manager/
Deeploy Helper
"...collects many of the configuration
parameters we most frequently
modify on one page, where power
users can modify them all at once
with search and replace."
$9
http://devot-ee.com/add-ons/deeploy-helper/
Reelocate
"ExpressionEngine stores your website URL and
Server Path in a ridiculous number of places.
REElocate helps you update these in one simple
step."
Free
http://devot-ee.com/add-ons/reelocate/
EE Deployment Accessory
List (with links where applicable) and helpful resources.
Available at on the GEM blog www.greeneggmedia.com/blog
Sparrow
"Sparrow is the ultimate deployment tool. Its premise is simple:
make deployment insanely easy. It's powerful, flexible, and brilliantly
clever. It tracks your site's changes and pushes them out to servers.
It works perfectly with version control systems. It's the best solution
to this problem. Want to find out more? Visit http://getsparkplugs.
com/sparrow/ to register your interest."
- Jamie Rumbelow
Making Deployment
Easier
Methods
Erskine Design's Modified EE
Setup
Talk from EECI2010 on modifying
ExpressionEngine 1 for efficiency.
config.php loads different config file based
on server IP.
Takes advantage of EE's hard-coded
configuration option.
Code available at:
http://eeinsider.com/blog/eeci-2010-how-erskine-
rolls-with-ee/
EE Config Handling
Notes
system/core.prefs.php handles preferences.
Preferences stored in database in serialized arrays.
Core Prefs saves config.php data, reads the preferences out of the
database, and then overwrites those with config.php items if available.
Config.php's $conf array can be populated with any viable config and it will
override the database version. Config.php can also be extended over
several files provided the $conf array is present, which is what Erskine is
doing.
Configs are in expressionengine/config/config.php in a $config array.
Preferences stored in database using base64 encoding.
EE_Config saves config.php data, reads the preferences out of the
database, and then overwrites those with config.php items if available.
Config.php's $config array can be populated with any viable config and it
will override the database version. Config.php can also be extended in the
same way as EE1.
EE Config Handling
Notes
Alternative Deployment
Methods
Partial Deployment
Not every deployment includes the entire site.
Example: Making updates on a local environment and updating those on
the live site.
Methods include live development on hidden pages, manual uploading, and
versioning.
Using Git with EE
Git is a versioning system that keeps track of changes to files.
Git can be used to collaboratively work on EE sites (mainly using template
and theme files).
Can be set up to ignore EE files you never alter.
If you have SSH access to your server, you can deploy with Git commands
or automatically with Capistrano or with a paid solution like Beanstalk
Caveat: does not track database changes. (Channels, entries, etc.)
Ryan Masuga gave a fantastic talk
at EECI2010 EuroWorld which can
be found at:
http://gititon.masugadesign.com/
"Goal is to not edit anything in the
CP, ever"
The elephant in the room is the
database. No clear solution at this
point.
Resources, links, and more stuff can be found at:
http://www.greeneggmedia.com/deployment

Weitere ähnliche Inhalte

Was ist angesagt?

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
 
Website releases made easy with the PEAR installer - Barcelona 2008
Website releases made easy with the PEAR installer - Barcelona 2008Website releases made easy with the PEAR installer - Barcelona 2008
Website releases made easy with the PEAR installer - Barcelona 2008Helgi Þormar Þorbjörnsson
 
香港六合彩
香港六合彩香港六合彩
香港六合彩csukxnr
 
WordPress Theme & Plugin development best practices - phpXperts seminar 2011
WordPress Theme & Plugin development best practices - phpXperts seminar 2011WordPress Theme & Plugin development best practices - phpXperts seminar 2011
WordPress Theme & Plugin development best practices - phpXperts seminar 2011Tareq Hasan
 
PHP presentation - Com 585
PHP presentation - Com 585PHP presentation - Com 585
PHP presentation - Com 585jstout007
 
Less18 moving data
Less18 moving dataLess18 moving data
Less18 moving dataImran Ali
 
Installing php and my sql locally using xampp
Installing php and my sql locally using xamppInstalling php and my sql locally using xampp
Installing php and my sql locally using xampppeyman Ghader Kurehpaz
 
Apache Presentation
Apache PresentationApache Presentation
Apache PresentationAnkush Jain
 
Linux Webserver Installation Command and GUI.ppt
Linux Webserver Installation Command and GUI.pptLinux Webserver Installation Command and GUI.ppt
Linux Webserver Installation Command and GUI.pptwebhostingguy
 

Was ist angesagt? (20)

Formats
FormatsFormats
Formats
 
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
 
WP HTTP API
WP HTTP APIWP HTTP API
WP HTTP API
 
CHANGELOG.txt
CHANGELOG.txtCHANGELOG.txt
CHANGELOG.txt
 
Apache - Quick reference guide
Apache - Quick reference guideApache - Quick reference guide
Apache - Quick reference guide
 
Website releases made easy with the PEAR installer - Barcelona 2008
Website releases made easy with the PEAR installer - Barcelona 2008Website releases made easy with the PEAR installer - Barcelona 2008
Website releases made easy with the PEAR installer - Barcelona 2008
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
Installing AtoM with Ansible
Installing AtoM with AnsibleInstalling AtoM with Ansible
Installing AtoM with Ansible
 
WordPress Theme & Plugin development best practices - phpXperts seminar 2011
WordPress Theme & Plugin development best practices - phpXperts seminar 2011WordPress Theme & Plugin development best practices - phpXperts seminar 2011
WordPress Theme & Plugin development best practices - phpXperts seminar 2011
 
PHP presentation - Com 585
PHP presentation - Com 585PHP presentation - Com 585
PHP presentation - Com 585
 
Apache
Apache Apache
Apache
 
$ make install
$ make install$ make install
$ make install
 
Appache.ppt
Appache.pptAppache.ppt
Appache.ppt
 
Less18 moving data
Less18 moving dataLess18 moving data
Less18 moving data
 
Installing php and my sql locally using xampp
Installing php and my sql locally using xamppInstalling php and my sql locally using xampp
Installing php and my sql locally using xampp
 
Php Power Tools
Php Power ToolsPhp Power Tools
Php Power Tools
 
Apache Presentation
Apache PresentationApache Presentation
Apache Presentation
 
Team lab install_en
Team lab install_enTeam lab install_en
Team lab install_en
 
Linux Webserver Installation Command and GUI.ppt
Linux Webserver Installation Command and GUI.pptLinux Webserver Installation Command and GUI.ppt
Linux Webserver Installation Command and GUI.ppt
 
PHPExcel and OPENXML4J
PHPExcel and OPENXML4JPHPExcel and OPENXML4J
PHPExcel and OPENXML4J
 

Andere mochten auch

Search Engines for Machine Learning: Presented by Joe Blue, MapR
Search Engines for Machine Learning: Presented by Joe Blue, MapRSearch Engines for Machine Learning: Presented by Joe Blue, MapR
Search Engines for Machine Learning: Presented by Joe Blue, MapRLucidworks
 
ScottMadden's 51st State Roadmap
ScottMadden's 51st State RoadmapScottMadden's 51st State Roadmap
ScottMadden's 51st State RoadmapScottMadden, Inc.
 
Basf roadmap-2-global-st852
Basf roadmap-2-global-st852Basf roadmap-2-global-st852
Basf roadmap-2-global-st852ChrisVdJ
 
Where are we now: IPv6 deployment update - Brunei National IPv6 Day Conference
Where are we now: IPv6 deployment update - Brunei National IPv6 Day ConferenceWhere are we now: IPv6 deployment update - Brunei National IPv6 Day Conference
Where are we now: IPv6 deployment update - Brunei National IPv6 Day ConferenceAPNIC
 
A Roadmap to Improving a BPO Program
A Roadmap to Improving a BPO ProgramA Roadmap to Improving a BPO Program
A Roadmap to Improving a BPO ProgramTeki Repalda
 
Keys To Successful Governance with SOA
Keys To Successful Governance with SOAKeys To Successful Governance with SOA
Keys To Successful Governance with SOANathaniel Palmer
 
BASF - Sustainable Operations and Environmental Impact at the Largest Chemica...
BASF - Sustainable Operations and Environmental Impact at the Largest Chemica...BASF - Sustainable Operations and Environmental Impact at the Largest Chemica...
BASF - Sustainable Operations and Environmental Impact at the Largest Chemica...Sustainable Brands
 
Reliability roadmap using quality function deployment
Reliability roadmap using quality function deployment Reliability roadmap using quality function deployment
Reliability roadmap using quality function deployment ASQ Reliability Division
 
Portal Deployment Best Practices | IBM Portal Excellence Conference 2009
Portal Deployment Best Practices | IBM Portal Excellence Conference 2009Portal Deployment Best Practices | IBM Portal Excellence Conference 2009
Portal Deployment Best Practices | IBM Portal Excellence Conference 2009Perficient, Inc.
 
Everything you need to know about SQL Server 2016
Everything you need to know about SQL Server 2016Everything you need to know about SQL Server 2016
Everything you need to know about SQL Server 2016Softchoice Corporation
 
VMware End-User-Computing Best Practices Poster
VMware End-User-Computing Best Practices PosterVMware End-User-Computing Best Practices Poster
VMware End-User-Computing Best Practices PosterVMware Academy
 
Startup Roadmap Workshop
Startup Roadmap WorkshopStartup Roadmap Workshop
Startup Roadmap WorkshopMichael Skok
 
Creating your Company's Roadmap to SharePoint Success
Creating your Company's Roadmap to SharePoint SuccessCreating your Company's Roadmap to SharePoint Success
Creating your Company's Roadmap to SharePoint SuccessC/D/H Technology Consultants
 

Andere mochten auch (14)

Search Engines for Machine Learning: Presented by Joe Blue, MapR
Search Engines for Machine Learning: Presented by Joe Blue, MapRSearch Engines for Machine Learning: Presented by Joe Blue, MapR
Search Engines for Machine Learning: Presented by Joe Blue, MapR
 
ScottMadden's 51st State Roadmap
ScottMadden's 51st State RoadmapScottMadden's 51st State Roadmap
ScottMadden's 51st State Roadmap
 
Basf roadmap-2-global-st852
Basf roadmap-2-global-st852Basf roadmap-2-global-st852
Basf roadmap-2-global-st852
 
Where are we now: IPv6 deployment update - Brunei National IPv6 Day Conference
Where are we now: IPv6 deployment update - Brunei National IPv6 Day ConferenceWhere are we now: IPv6 deployment update - Brunei National IPv6 Day Conference
Where are we now: IPv6 deployment update - Brunei National IPv6 Day Conference
 
A Roadmap to Improving a BPO Program
A Roadmap to Improving a BPO ProgramA Roadmap to Improving a BPO Program
A Roadmap to Improving a BPO Program
 
Keys To Successful Governance with SOA
Keys To Successful Governance with SOAKeys To Successful Governance with SOA
Keys To Successful Governance with SOA
 
BASF - Sustainable Operations and Environmental Impact at the Largest Chemica...
BASF - Sustainable Operations and Environmental Impact at the Largest Chemica...BASF - Sustainable Operations and Environmental Impact at the Largest Chemica...
BASF - Sustainable Operations and Environmental Impact at the Largest Chemica...
 
Reliability roadmap using quality function deployment
Reliability roadmap using quality function deployment Reliability roadmap using quality function deployment
Reliability roadmap using quality function deployment
 
Portal Deployment Best Practices | IBM Portal Excellence Conference 2009
Portal Deployment Best Practices | IBM Portal Excellence Conference 2009Portal Deployment Best Practices | IBM Portal Excellence Conference 2009
Portal Deployment Best Practices | IBM Portal Excellence Conference 2009
 
Everything you need to know about SQL Server 2016
Everything you need to know about SQL Server 2016Everything you need to know about SQL Server 2016
Everything you need to know about SQL Server 2016
 
Aria 1.0 roadmap
Aria 1.0 roadmapAria 1.0 roadmap
Aria 1.0 roadmap
 
VMware End-User-Computing Best Practices Poster
VMware End-User-Computing Best Practices PosterVMware End-User-Computing Best Practices Poster
VMware End-User-Computing Best Practices Poster
 
Startup Roadmap Workshop
Startup Roadmap WorkshopStartup Roadmap Workshop
Startup Roadmap Workshop
 
Creating your Company's Roadmap to SharePoint Success
Creating your Company's Roadmap to SharePoint SuccessCreating your Company's Roadmap to SharePoint Success
Creating your Company's Roadmap to SharePoint Success
 

Ähnlich wie Deployment with ExpressionEngine

Getting started-with-zend-framework
Getting started-with-zend-frameworkGetting started-with-zend-framework
Getting started-with-zend-frameworkNilesh Bangar
 
17398351 sap-system-copy-homcopyv1
17398351 sap-system-copy-homcopyv117398351 sap-system-copy-homcopyv1
17398351 sap-system-copy-homcopyv1Mmusi Dithotse
 
Techedafricademystifyingbackuprestoreinsharepoint2007 090805103250 Phpapp02
Techedafricademystifyingbackuprestoreinsharepoint2007 090805103250 Phpapp02Techedafricademystifyingbackuprestoreinsharepoint2007 090805103250 Phpapp02
Techedafricademystifyingbackuprestoreinsharepoint2007 090805103250 Phpapp02malonzo
 
Tech Ed Africa Demystifying Backup Restore In Share Point 2007
Tech Ed Africa Demystifying Backup Restore In Share Point 2007Tech Ed Africa Demystifying Backup Restore In Share Point 2007
Tech Ed Africa Demystifying Backup Restore In Share Point 2007Joel Oleson
 
OroCRM Partner Technical Training: September 2015
OroCRM Partner Technical Training: September 2015OroCRM Partner Technical Training: September 2015
OroCRM Partner Technical Training: September 2015Oro Inc.
 
[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the BasicsUlrich Krause
 
PHP North-East - Automated Deployment
PHP North-East - Automated DeploymentPHP North-East - Automated Deployment
PHP North-East - Automated DeploymentMichael Peacock
 
Automated Deployment
Automated DeploymentAutomated Deployment
Automated Deploymentphpne
 
White Paper: Using Perforce 'Attributes' for Managing Game Asset Metadata
White Paper: Using Perforce 'Attributes' for Managing Game Asset MetadataWhite Paper: Using Perforce 'Attributes' for Managing Game Asset Metadata
White Paper: Using Perforce 'Attributes' for Managing Game Asset MetadataPerforce
 
XPages -Beyond the Basics
XPages -Beyond the BasicsXPages -Beyond the Basics
XPages -Beyond the BasicsUlrich Krause
 
O porque das minhas aplicações funcionarem... E o que acontece com os recurso...
O porque das minhas aplicações funcionarem... E o que acontece com os recurso...O porque das minhas aplicações funcionarem... E o que acontece com os recurso...
O porque das minhas aplicações funcionarem... E o que acontece com os recurso...Comunidade NetPonto
 
Extension Library - Viagra for XPages
Extension Library - Viagra for XPagesExtension Library - Viagra for XPages
Extension Library - Viagra for XPagesUlrich Krause
 
A Complete Installation Guide for Orangescrum
A Complete Installation Guide for OrangescrumA Complete Installation Guide for Orangescrum
A Complete Installation Guide for OrangescrumOrangescrum
 
Migraine Drupal - syncing your staging and live sites
Migraine Drupal - syncing your staging and live sitesMigraine Drupal - syncing your staging and live sites
Migraine Drupal - syncing your staging and live sitesdrupalindia
 

Ähnlich wie Deployment with ExpressionEngine (20)

Getting started-with-zend-framework
Getting started-with-zend-frameworkGetting started-with-zend-framework
Getting started-with-zend-framework
 
17398351 sap-system-copy-homcopyv1
17398351 sap-system-copy-homcopyv117398351 sap-system-copy-homcopyv1
17398351 sap-system-copy-homcopyv1
 
Asp .net folders and web.config
Asp .net folders and web.configAsp .net folders and web.config
Asp .net folders and web.config
 
Techedafricademystifyingbackuprestoreinsharepoint2007 090805103250 Phpapp02
Techedafricademystifyingbackuprestoreinsharepoint2007 090805103250 Phpapp02Techedafricademystifyingbackuprestoreinsharepoint2007 090805103250 Phpapp02
Techedafricademystifyingbackuprestoreinsharepoint2007 090805103250 Phpapp02
 
Tech Ed Africa Demystifying Backup Restore In Share Point 2007
Tech Ed Africa Demystifying Backup Restore In Share Point 2007Tech Ed Africa Demystifying Backup Restore In Share Point 2007
Tech Ed Africa Demystifying Backup Restore In Share Point 2007
 
OroCRM Partner Technical Training: September 2015
OroCRM Partner Technical Training: September 2015OroCRM Partner Technical Training: September 2015
OroCRM Partner Technical Training: September 2015
 
[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics
 
PHP North-East - Automated Deployment
PHP North-East - Automated DeploymentPHP North-East - Automated Deployment
PHP North-East - Automated Deployment
 
Automated Deployment
Automated DeploymentAutomated Deployment
Automated Deployment
 
White Paper: Using Perforce 'Attributes' for Managing Game Asset Metadata
White Paper: Using Perforce 'Attributes' for Managing Game Asset MetadataWhite Paper: Using Perforce 'Attributes' for Managing Game Asset Metadata
White Paper: Using Perforce 'Attributes' for Managing Game Asset Metadata
 
Test
TestTest
Test
 
XPages -Beyond the Basics
XPages -Beyond the BasicsXPages -Beyond the Basics
XPages -Beyond the Basics
 
O porque das minhas aplicações funcionarem... E o que acontece com os recurso...
O porque das minhas aplicações funcionarem... E o que acontece com os recurso...O porque das minhas aplicações funcionarem... E o que acontece com os recurso...
O porque das minhas aplicações funcionarem... E o que acontece com os recurso...
 
Extension Library - Viagra for XPages
Extension Library - Viagra for XPagesExtension Library - Viagra for XPages
Extension Library - Viagra for XPages
 
Asp .net folders and web.config
Asp .net folders and web.configAsp .net folders and web.config
Asp .net folders and web.config
 
A Complete Installation Guide for Orangescrum
A Complete Installation Guide for OrangescrumA Complete Installation Guide for Orangescrum
A Complete Installation Guide for Orangescrum
 
Migraine Drupal - syncing your staging and live sites
Migraine Drupal - syncing your staging and live sitesMigraine Drupal - syncing your staging and live sites
Migraine Drupal - syncing your staging and live sites
 
Drupal 8 Configuration Management
Drupal 8 Configuration ManagementDrupal 8 Configuration Management
Drupal 8 Configuration Management
 
Lab 1 Essay
Lab 1 EssayLab 1 Essay
Lab 1 Essay
 
Edubooktraining
EdubooktrainingEdubooktraining
Edubooktraining
 

Kürzlich hochgeladen

Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
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
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFMichael Gough
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 

Kürzlich hochgeladen (20)

Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
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
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDF
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 

Deployment with ExpressionEngine

  • 2. Roadmap 1. Vanilla Migration - Step by Step 2. Making Deployment Easier - Tools and Methods 3. Alternative Deployment Methods
  • 3. The Two Faces of EE The Database The Files - Could be locally hosted, already on the server, or on another server. - Contains most data that is fed into ExpressionEngine. - Locally hosted or on another server. - Contains ExpressionEngine plus any addons and their themes. - Contains templates (if you are saving templates as files). - Contains hard-coded EE config files.
  • 4. The Players The Database Staging Server Local Environment Production Server Mystery Element??
  • 5. Your Setup Staging Server? No staging server? One developer or a team of developers? What your setup is depends on your organizational needs, your client's needs, and what is overkill.
  • 6. Beforehand Have an EE migration checklist handy. Make sure the new server can handle ExpressionEngine. Make sure you have enough time (no meetings in 15 minutes). Make sure you have a backup plan if it hits the fan.
  • 8. Step 1: Backup Back up the files and the database. Don't not do this.
  • 9. Step 2: Sync Templates This is very easy to do on EE2.1
  • 10. EE Templates Is the template saved as a file? Yes Notes Get all data for the template out of the database.
  • 11. Step 2: Sync Templates No native tool in EE1.x Alternatives: Manual, third-party solutions. DC Template Manager (Free) "Saves the content of the template files (saved in the file-system) back to the database." http://devot-ee.com/add-ons/dc-template-manager/
  • 12. Step 3: Export DB Take note of Database collation. Changing the DB collation might break your site entirely.
  • 13. Database Collations Notes "Set of rules for comparing characters in a character set". Defines the relationship of the character encoding to the actual characters. Default is latin1_swedish_ci, because the developers of MySQL are Swedish. Collations are needed for MySQL to perform logic - such as ordering rows by strings in columns in different languages. ExpressionEngine will, by default, create databases with utf8 character sets and utf8_general_ci collations.
  • 14. Step 4: Create a New Database Only necessary if moving databases. Import SQL file and verify that collation is the same.
  • 15. Step 5: Migrate File System Don't delete existing data on the server. Use an archive (tar or zip) if your host allows it. & Set Permissions Confirm and set file permissions as necessary.
  • 16. File Permissions /system/expressionengine/config/config.php /system/expressionengine/config/database.php 666 (or equivalent) /system/expressionengine/cache/ /images/avatars/uploads/ /images/captchas/ /images/member_photos/ /images/pm_attachments/ /images/signature_attachments/ /images/uploads/ 777 (or equivalent) Set applicable permissions for your template directory. Check to see if add-ons have file permission needs. Don't forget ALL the file's need correct permissions.
  • 17. File Permissions /path.php /system/config.php /system/config_bak.php 666 (or equivalent) /images/avatars/uploads/ /images/captchas/ /images/member_photos/ /images/pm_attachments/ /images/signature_attachments/ /images/uploads/ /system/cache/ 777 (or equivalent)
  • 18. Step 6: Update Hardcoded Configs Update configs in the file system for the database and basic configs. /system/expressionengine/config/database.php /system/expressionengine/config/config.php You can update the config.php values in the Admin > System Administration > Config Editor in EE2. /system/config.php /path.php
  • 19. Step 7: Change Path Variables EE likes to keep the server path in different places. You'll need to update those. Find your server path using the Tools > Utilities > PHP Info tool. Your server path should be the _SERVER['DOMAIN_PATH'] variable.
  • 20. Step 8: Update Additional Paths Look for paths in JS, CSS, add-on paths, etc. Remember hard-coded paths in templates. You can batch-remove these with search and replace in EE2.
  • 21. Step 9: Verify You Can Sync Templates Use the EE2 Sync tool to make sure that you can synchronize your EE2 templates. All your template data in the database should be up to date at this point in the move, and you can re-create the directory if there are read/write issues.
  • 22. Step 10: Clear Your Cache Just do it. For fun. Step 11: Verify Your .htaccess .htaccess files tend to get lost in moves. You may need to re-create it or modify it for a different server setup.
  • 23. Step 11: Load Your Site It either works or it doesn't or something in-between.
  • 24. Contingency Plans Put up old site and start steps from #1. If you can access the CP, turn off the site and start searching on the forums. Check file permissions for files in general. Turn on debugging index.php for PHP errors (EE2) or set error_reporting to 'E_ALL' in index.php (EE1)
  • 25. Making Deployment Easier Cool Tools You Gotta Use If You Wanna Stay in School
  • 26. DC Template Manager "...DC Template Manager offers a convenient way of moving the contents of many templates between the database and the filesystem simultaneously." Free http://devot-ee.com/add-ons/dc-template-manager/
  • 27. Deeploy Helper "...collects many of the configuration parameters we most frequently modify on one page, where power users can modify them all at once with search and replace." $9 http://devot-ee.com/add-ons/deeploy-helper/
  • 28. Reelocate "ExpressionEngine stores your website URL and Server Path in a ridiculous number of places. REElocate helps you update these in one simple step." Free http://devot-ee.com/add-ons/reelocate/
  • 29. EE Deployment Accessory List (with links where applicable) and helpful resources. Available at on the GEM blog www.greeneggmedia.com/blog
  • 30. Sparrow "Sparrow is the ultimate deployment tool. Its premise is simple: make deployment insanely easy. It's powerful, flexible, and brilliantly clever. It tracks your site's changes and pushes them out to servers. It works perfectly with version control systems. It's the best solution to this problem. Want to find out more? Visit http://getsparkplugs. com/sparrow/ to register your interest." - Jamie Rumbelow
  • 32. Erskine Design's Modified EE Setup Talk from EECI2010 on modifying ExpressionEngine 1 for efficiency. config.php loads different config file based on server IP. Takes advantage of EE's hard-coded configuration option. Code available at: http://eeinsider.com/blog/eeci-2010-how-erskine- rolls-with-ee/
  • 33. EE Config Handling Notes system/core.prefs.php handles preferences. Preferences stored in database in serialized arrays. Core Prefs saves config.php data, reads the preferences out of the database, and then overwrites those with config.php items if available. Config.php's $conf array can be populated with any viable config and it will override the database version. Config.php can also be extended over several files provided the $conf array is present, which is what Erskine is doing.
  • 34. Configs are in expressionengine/config/config.php in a $config array. Preferences stored in database using base64 encoding. EE_Config saves config.php data, reads the preferences out of the database, and then overwrites those with config.php items if available. Config.php's $config array can be populated with any viable config and it will override the database version. Config.php can also be extended in the same way as EE1. EE Config Handling Notes
  • 36. Partial Deployment Not every deployment includes the entire site. Example: Making updates on a local environment and updating those on the live site. Methods include live development on hidden pages, manual uploading, and versioning.
  • 37. Using Git with EE Git is a versioning system that keeps track of changes to files. Git can be used to collaboratively work on EE sites (mainly using template and theme files). Can be set up to ignore EE files you never alter. If you have SSH access to your server, you can deploy with Git commands or automatically with Capistrano or with a paid solution like Beanstalk Caveat: does not track database changes. (Channels, entries, etc.)
  • 38. Ryan Masuga gave a fantastic talk at EECI2010 EuroWorld which can be found at: http://gititon.masugadesign.com/ "Goal is to not edit anything in the CP, ever" The elephant in the room is the database. No clear solution at this point.
  • 39. Resources, links, and more stuff can be found at: http://www.greeneggmedia.com/deployment