easyengine - command-line tool to manage wordpress sites on nginx
DESCRIPTION
EasyEngine is a Command Line Tool to Manage WordPress Sites on Nginx Server. Apart from site management, it installs php, mysql, nginx, postfix, memcache and everything else required to run high traffic WordPress sites. You can serve millions of page-views on $5 digitalocean plan using EasyEngine! ;-) These slides are from WordCamp Mumbai 2014 session.TRANSCRIPT
Easy ( WordPress + Nginx )
by rtCamp
Mitesh Shah & Rahul Bansal
Table of Contents1. Introduction
2. Motivation
3. Features
4. Inside EasyEngine
5. Roadmap
6. Getting Involved
7. Demo
2
IntroductionHello World!
EasyEngine is...• a command-line tool
• coded in shell scripting language
• "control-panel" for geeks/developers
• made for WordPress
• GPL like WordPress
4
MotivationWhat annoyed lazy people!
cPanel/Plesk ?#%!@• Bloated/Resource-Hog
• TOO many unwanted features
• NOT made 4 WordPress
6
Automation• Performance Optimization
• Debugging
• Maintainance
Anything that can go wrong — will go wrong!
Murphy's Law“
7
InstallationWelcome to the Easy world!
Inside Shell...curl -sL rt.cx/ee | sudo bash
ee system install
ee site create example.com --wp
Simplicity is the ultimate sophistication!
William Gaddis
01.
02.
03.
9
Create "12" Types of WordPress Sites!Single Site Multisite with Subdir Multisite with Subdom
NO Cache --wp --wpsubdir --wpsubdom
WP Super Cache --wpsc --wpsc --wpsubdir --wpsc --wpsubdom
W3 Total Cache --w3tc --w3tc --wpsubdir --w3tc --wpsubdom
Nginx FastCGI Cache --wpfc --wpfc --wpsubdir --wpfc --wpsubdom
10
Features/UsageDriver's manual
A Site includes...• PHP's Zend-Opcache
• Memcache for Object-Cache and DB-Cache
• Full Page-Cache
• Separate access and error logs
12
Site management...• Enable ee site enable example.com
• Disable ee site disable example.com
• Delete ee site delete example.com
• Info ee site info example.com
13
Debugging...• Debug system ee debug
• Debug site ee debug example.com
• Rewrites only ee debug example.com --rewrite
• Interactive ee debug example.com -i
14
Easy to learn...• Built-in help ee help
• Man pages man ee
• Autocompletion for commands and site-name
Never memorize something that you can look up!
Albert Einstein
15
Inside EasyEngineUnder The Hood
How Quick Setup Works!• Prefer binary packages instead of compiling
• Prefer conventions over database
• Tweaks differnt configs at the time of installation only
17
ConventionsFile structure for example.com site
• /var/www/example.com/ - All files related to example.com
• /var/www/example.com/htdocs/ - Document Root
• /var/www/example.com/logs/ - Logs
• /var/www/example.com/wp-config.php - WordPress config
• /etc/nginx/sites-available/example.com - Nginx config
Database details are used from wp-config.php
18
Git-based backupFor all configs
• /etc/nginx/
• /etc/php5/
• /etc/mysql/
• /etc/postfix/
If something goes wrong...
git checkout /path/to/config/file
19
Administrative ToolsPort 22222 for Web-based tools
• MySQL admin tools e.g. phpMyAdmin, adminer
• Debugging tools e.g. Anemometer, WebGrind
• Stats viewer for MemCache, PHP's Zend-OpCache
CLI...
• ee info
• ee site info
20
Logging• Installation log
• Site creation & other commands log
• Error log
Log Location: /var/log/easyengine/
21
Roadmap
Next few milestones...• Easy Debugging
• Automated Monitoring with Email Alerts
• Mail Server
• "Shared" Hosting Support
• Easy Migrations/Cloning
• Offsite/Peer backups
23
Beyond CLI...• REST API
• Web-based control panel
• Mobile Apps
24
Getting InvolvedFor "Easier"Engine!
How you can help?• Coding
• Documentation
• Testing
• Help others move
• Spread the word
• Dontations! ;-)
26
Useful Links• Homepage https://rtcamp.com/easyengine/
• Docs https://rtcamp.com/easyengine/docs/
• Github https://github.com/rtCamp/easyengine
• Twitter https://twitter.com/easyengine
27
Demo!It's showtime!!!
Q&ALet's talk!
The End!Thanks :-)