Plone 3.3 Site Administration
By Alex Clark
()
About this ebook
Alex Clark
Alex Clark is a Plone Consultant from Bethesda, MD, USA. He runs a thriving Plone consultancy along with his wife, Amy Clark. Together, they service a wide variety of government, corporate, and non-profit organizations in the greater Washington, D.C. area, and worldwide. For more information, please see http://aclark.net.This is his first book and he hopes that people enjoy the result and get inspired to use Plone.
Related to Plone 3.3 Site Administration
Related ebooks
Using Yocto Project with BeagleBone Black Rating: 0 out of 5 stars0 ratingsLearning Puppet for Windows Server Rating: 0 out of 5 stars0 ratingsLearning Puppet Rating: 0 out of 5 stars0 ratingsPlone 3 Intranets Rating: 0 out of 5 stars0 ratingsPuppet Reporting and Monitoring Rating: 0 out of 5 stars0 ratingsPython for Beginners: A Crash Course to Learn Python Programming in 1 Week Rating: 0 out of 5 stars0 ratingsPublishing Python Packages: Test, share, and automate your projects Rating: 0 out of 5 stars0 ratingsThe PEAR Installer Manifesto Rating: 0 out of 5 stars0 ratingsMastering Python: a Comprehensive Guide Rating: 0 out of 5 stars0 ratingsMastering Puppet - Second Edition Rating: 0 out of 5 stars0 ratingsZabbix 1.8 Network Monitoring Rating: 5 out of 5 stars5/5Learning Ansible 2 - Second Edition Rating: 5 out of 5 stars5/5Learning NAGIOS 3.0 Rating: 0 out of 5 stars0 ratingsLearning Nagios - Third Edition Rating: 0 out of 5 stars0 ratingsYocto for Raspberry Pi Rating: 0 out of 5 stars0 ratingsPuppet for Containerization Rating: 0 out of 5 stars0 ratingsMonitoring Docker Rating: 0 out of 5 stars0 ratingsBeagleBone Media Center Rating: 0 out of 5 stars0 ratingsLearning Website Development with Django Rating: 0 out of 5 stars0 ratingsLearning SaltStack - Second Edition Rating: 0 out of 5 stars0 ratingsIT Inventory and Resource Management with OCS Inventory NG 1.02 Rating: 0 out of 5 stars0 ratingsDaniel Arbuckle’s Mastering Python Rating: 0 out of 5 stars0 ratingsIntroduction to Python Programming: Learn Coding with Hands-On Projects for Beginners Rating: 0 out of 5 stars0 ratingsLearning Robotics Using Python Rating: 0 out of 5 stars0 ratingsRaspberry Pi 3 Projects for Java Programmers Rating: 0 out of 5 stars0 ratingsExtending Jenkins Rating: 0 out of 5 stars0 ratingsMastering CryENGINE Rating: 0 out of 5 stars0 ratingsWiX 3.6: A Developer's Guide to Windows Installer XML Rating: 0 out of 5 stars0 ratings
Information Technology For You
Summary of Super-Intelligence From Nick Bostrom Rating: 5 out of 5 stars5/5How to Write Effective Emails at Work Rating: 4 out of 5 stars4/5Computer Science: A Concise Introduction Rating: 4 out of 5 stars4/5Creating Online Courses with ChatGPT | A Step-by-Step Guide with Prompt Templates Rating: 4 out of 5 stars4/5Supercommunicator: Explaining the Complicated So Anyone Can Understand Rating: 3 out of 5 stars3/5CompTIA A+ CertMike: Prepare. Practice. Pass the Test! Get Certified!: Core 1 Exam 220-1101 Rating: 0 out of 5 stars0 ratingsCompTIA Network+ CertMike: Prepare. Practice. Pass the Test! Get Certified!: Exam N10-008 Rating: 0 out of 5 stars0 ratingsPanda3d 1.7 Game Developer's Cookbook Rating: 0 out of 5 stars0 ratingsLinux Command Line and Shell Scripting Bible Rating: 3 out of 5 stars3/5ChatGPT: The Future of Intelligent Conversation Rating: 4 out of 5 stars4/5How To Use Chatgpt: Using Chatgpt To Make Money Online Has Never Been This Simple Rating: 0 out of 5 stars0 ratingsAn Ultimate Guide to Kali Linux for Beginners Rating: 3 out of 5 stars3/5Data Analytics for Beginners: Introduction to Data Analytics Rating: 4 out of 5 stars4/5Practical Ethical Hacking from Scratch Rating: 5 out of 5 stars5/5Hacking Essentials - The Beginner's Guide To Ethical Hacking And Penetration Testing Rating: 3 out of 5 stars3/5Windows Registry Forensics: Advanced Digital Forensic Analysis of the Windows Registry Rating: 4 out of 5 stars4/5Health Informatics: Practical Guide Rating: 0 out of 5 stars0 ratingsThe Basics of Hacking and Penetration Testing: Ethical Hacking and Penetration Testing Made Easy Rating: 4 out of 5 stars4/5Computer Organization and Design: The Hardware / Software Interface Rating: 4 out of 5 stars4/520 Windows Tools Every SysAdmin Should Know Rating: 5 out of 5 stars5/5Quantum Computing for Programmers and Investors: with full implementation of algorithms in C Rating: 5 out of 5 stars5/5A Mind at Play: How Claude Shannon Invented the Information Age Rating: 4 out of 5 stars4/5The Programmer's Brain: What every programmer needs to know about cognition Rating: 5 out of 5 stars5/5Cybersecurity for Beginners : Learn the Fundamentals of Cybersecurity in an Easy, Step-by-Step Guide: 1 Rating: 0 out of 5 stars0 ratingsCompTIA ITF+ CertMike: Prepare. Practice. Pass the Test! Get Certified!: Exam FC0-U61 Rating: 0 out of 5 stars0 ratingsThe Ultimate Guide to Landing a Network Engineering Job Rating: 0 out of 5 stars0 ratingsInkscape Beginner’s Guide Rating: 5 out of 5 stars5/5
Reviews for Plone 3.3 Site Administration
0 ratings0 reviews
Book preview
Plone 3.3 Site Administration - Alex Clark
Table of Contents
Plone 3.3 Site Administration
Credits
Foreword
About the Author
About the Reviewer
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Errata
Piracy
Questions
1. Background
Site administration essentials
Development
Deployment
Maintenance
What you need to get started
Modern computer
Supported operating system
Internet connection
Terminal window
Text editor
About Plone installers
About Python software distributions
Using Python on Mac OS X
Verify that Python works
Installing Python on Windows
Download the Python installer
Run the Python installer
Configure the Environment Variable—Path
Verify that Python works
Install PyWin
Using Python on Ubuntu Linux
Verify that Python works
How to install Distribute—a framework for managing Python packages
Installing Distribute on Mac OS X
Download distribute_setup.py
Execute distribute_setup.py
Verify that Distribute works
Installing Distribute on Windows 7
Download distribute_setup.py
Execute distribute_setup.py
Verify that Distribute works
Installing Distribute on Ubuntu Linux
Download distribute_setup.py
Execute distribute_setup.py
Verify that Distribute works
How to install PIP: a more user friendly Python package installer
Installing PIP on Mac OS X
Installing PIP on Windows 7
Installing PIP on Ubuntu Linux
How to install Buildout—a tool for building software
Installing Buildout on Mac OS X
Installing Buildout on Windows 7
Installing Buildout on Ubuntu Linux
More about Python software distributions
How to install a C compiler
Installing a C compiler on Mac OS X
Installing XCode
Verify that GCC works
Installing a C compiler on Windows
Downloading MinGW
Installing MinGW
Adding MinGW to the Environment Variable—Path
Verify that GCC works
Configuring Distutils
Installing a C compiler on Ubuntu Linux
Verify that GCC works
Installing additional development libraries
How to install Subversion—a version control system
Using Subversion on Mac OS X
Verify that Subversion works
Installing Subversion on Windows
Downloading Subversion
Installing Subversion
Verify that Subversion works
Installing Subversion on Ubuntu Linux
Verify that Subversion works
How to install Python with Buildout
Running the first buildout
Running the second buildout
Verify that Python works
Summary
2. Site Basics
More about Buildout
Configuration file format
About the Python buildout
The buildout section
Adding parts
Global versus local Buildout command
Introducing the Plone buildout
Using the extends parameter to specify versions
Using plone.recipe.zope2install to install Zope 2
Using plone.recipe.zope2instance to create a Zope 2 instance
The PIL problem
Using the Python buildout
Using PIP
Adding PIL to your buildout
Bootstrapping and running the buildout
Adding a Plone site
Starting Plone and adding a Plone site manually
Changing the top-level Zope user's password
Adding a Plone site with Buildout
Customizing site navigation
Plone 3 navigation portlet extended
Installing collective.portlet.explore
Installing webcouturier.dropdownmenu
Adding new content types
Adding a blog entry type
Configure the blog_view
Configure the RSS feed
Summary
3. Appearance
Installing themes with Buildout
Searching for themes on plone.org
Adding themes with Buildout
Installing themes in Plone
Examining themes with Omelette and Python
Installing and using Omelette
Exploring modules with zopepy
Overview of theme package files
Creating a theme package with ZopeSkel
Adding ZopeSkel to a buildout
Running ZopeSkel
Running Paster
Examining themes in the Zope Management Interface
Making changes through the Web
portal_skins
portal_view_customizations
Summary
4. Administration
Configuring mail settings in a development environment
Setting up the mail host
Avoiding the mail host
Faking the mail host
User and group management: Out of the box
The Zope 2 administrator account
The Plone administrator account
Resetting the password
Users and groups management with LDAP
Adding plone.app.ldap to the Buildout
Adding plone.app.ldap to Plone
Configuring plone.app.ldap
LDAP Terminology
DN
DC, UID, OU
RDN
Bind DN and password
Attributes and object classes
Entering the form data
LDAP server type
RDN attribute
User id attribute
Login name attribute
LDAP object classes
Bind DN and password
Base DN and search scope for users and groups
Restarting Plone
Using LDAP in Plone
Creating and using LDAP groups
Restarting Plone
Adding users to MyGroup
Summary
5. Deployment and Maintenance
Creating a production buildout
Backing up your database
The repozo utility
Making repozo easier with collective.recipe.backup
A simple backup strategy
Automating database backups
Using z3c.recipe.usercrontab on Mac OS X and Ubuntu Linux
Using Task Scheduler on Windows
Restoring your database from a backup
Packing your database
Automate database packing
Rotating logs
Using iw.rotatezlogs on Mac OS X, Ubuntu Linux, and Windows
Summary
6. Optimization
Caching background in the context of Plone
Installing CacheFu—a caching add-on for Plone
Installing Varnish—a caching agent
Installing Squid—a caching agent
Creating multiple instances with Buildout macros
Load balancing in the context of Plone
Installing HAProxy—a load balancer
The HAProxy binary
The HAProxy configuration file
Installing Pound—a load balancer
The Pound binary
The Pound configuration file
Installing Supervisor—a process manager
Understanding the software stack
Frontend Apache configuration
Frontend Nginx configuration
Installing Munin plugins to analyze performance
Installing the munin.zope package
Testing the munin.zope plugins through the Web
Installing the munin.zope plugins on the command line
Testing the munin.zope plugins on the command line
Munin graphs
ZODB activity
Zope cache parameters
Zope memory usage
Zope 2 server threads
Summary
7. Security
Restricting TCP/IP access to localhost or LAN host
Managing IP addresses and ports effectively
Configuring the Zope 2 effective user dynamically
Installing Cassandra to audit through the web (TTW) security
Permissions and roles in the ZMI
Roles and groups
Cassandra
Applying security and bug fixes to Plone
Using a newer Zope 2 with an older release of Plone
Hold on to your buildouts
A modern
Plone 2.1 buildout
Summary
8. The Future
Specifying package versions
Executing Buildout in offline mode
Analyzing the contents of our buildout
Staying calm when trouble arises
Upgrading to Plone 4
Summary
Index
Plone 3.3 Site Administration
Alex Clark
Plone 3.3 Site Administration
Copyright © 2010 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: July 2010
Production Reference: 1170710
Published by Packt Publishing Ltd.
32 Lincoln Road
Olton
Birmingham, B27 6PA, UK.
ISBN 978-1-847197-04-7
www.packtpub.com
Cover Image by Ed Maclean (<edmaclean@gmail.com>)
Credits
Author
Alex Clark
Reviewer
Steve McMahon
Acquisition Editor
Rashmi Phadnis
Development Editor
Darshana Shinde
Technical Editor
Krutika V. Katelia
Indexer
Monica Ajmera Mehta
Editorial Team Leader
Mithun Sehgal
Project Team Leader
Priya Mukherji
Project Coordinator
Zainab Bagasrawala
Proofreader
Lynda Sliwoski
Graphics
Geetanjali Sawant
Production Coordinator
Melwyn D'sa
Cover Work
Melwyn D'sa
Foreword
Back in the old days, Zope was a big monolithic Python package that contained the entire web framework. Creating and customizing a Plone site was accomplished by adding Products
(special Python packages that only Zope 2 understands) to a special directory. When Zope 2 launched, it would scan this directory and look for special initialization functions to activate each Product. This plugin-based approach was nice in some ways, but not nice in others.
For example, how can you efficiently manage your web applications when installing means you need to manually unzip hundreds of Products on to your filesystem, and make sure all the Product dependencies were satisfied? This was a nightmare!
I remember some Zope sprints back in 2002 where we had to set up specific Zope environments to work. We had to go through every Product's README to list all its dependencies, and make sure we had all of them, whether they were other Products or Python packages. That usually took us half a day before we could start coding.
Nowadays, setting up any kind of Plone-based application can be performed automatically in a few minutes, thanks to zc.buildout! This tool reads a configuration file, sets up your environment by downloading Python packages from the Python Package Index, and performs any additional steps as needed.
But zc.buildout, and all its underlying technology, like Distribute or Distutils, takes a long time to understand and master. It's not the silver bullet either—there are traps all along the road. Plus, it may compete with your server's own packaging system, which sometimes can be an issue.
But the pain is worthwhile! Learning all these tools that became a standard in the Plone community will give you all the power you need to set up and manage industrial-level Plone sites.
And what's great is that the Zope and Plone communities have now adopted the Python Distutils standard as a basis for their building blocks, making it easier to share code between the two worlds.
That is what this book is all about!
Alex, who is a brilliant Plone site administrator and developer, will guide you through the whole process, from setting up your Python environment, to installing, upgrading, and managing your Plone applications with ease, and avoiding pitfalls along the way.
Enjoy! (And keep it under your pillow.)
Tarek Ziadé, Turcey, France, May 2010
Python core developer and Distribute maintainer
http://ziade.org
About the Author
Alex Clark is a Plone consultant from Bethesda, MD, USA. He currently operates a busy open source consulting firm, along with his wife and business partner, Amy Clark. He also operates a non-profit organization that supports the local Python developer community by organizing monthly meetings, trainings, sprints, conferences, and more. For more information, please see http://aclark.net and http://zpugdc.org respectively.
Alex is a co-author of "Practical Plone 3", Packt Publishing (https://www.packtpub.com/practical-plone-3-beginners-guide-to-building-powerful-websites/book) and this book marks his first sole authorship. He hopes it will empower individuals, organizations and the world to use and contribute to Plone!
I would like to thank the following people for their assistance in writing this book: Amy Clark, Chris McDonough, Chris Shenton, Darshana Shinde, David Glick, Erik Rose, Fernando Correa Neto, Gilles Lenfant, Hanno Schichting, Krutika Katelia, Martin Aspeli, Matt Bowen, Matthew Wilkes, Michael Dunlap, Rashmi Phadnis, Reed O'Brien, Ricardo Newbery, Steve McMahon, Tarek Ziadé, Veda Williams, Wichert Akkerman, Zainab Bagasrawala, and you, if I forgot to thank you!
Also, I would be remiss if I did not thank the giants whose shoulders I am fortunate enough to stand on every day: Guido Van Rossum for Python, Jim Fulton for Zope, and Alexander Limi and Alan Runyan for Plone. Thank you!
About the Reviewer
Steve McMahon is a partner in Reid-McMahon, LLC, a Davis, California, web development company specializing in deploying Plone for non-profit and governmental organizations. He is chief maintainer for Plone's Unified
and OS X installers and release manager for the popular PloneFormGen add-on. Steve is serving his third term on the Plone Foundation Board of Directors and his second as board secretary. He also does extensive volunteer work for the Davis Community Network, where he helps build local community with Internet resources.
Steve was one of the many authors of "Practical Plone 3", Packt Publishing (https://www.packtpub.com/practical-plone-3-beginners-guide-to-building-powerful-websites/book) and has been a technical reviewer for several Plone books.
For my other half, Amy Elyse.
Preface
Plone is a powerful web application used mainly for website content management and comprised of many different, but related Python packages. But it wasn't always this way.
Over the years, Plone has grown from just a few packages built on top of the powerful Zope 2 application server, while Zope 2 itself has grown from a single, monolithic package to a collection of smaller, and often reusable Python packages.
All of this hardly matters to Plone's end users, but unfortunately it has been difficult to hide such details from them. Some day that goal may be achieved, but in the meantime there is this book, which aims to clear up some of the confusion.
That confusion mostly surrounds the use of a tool called Buildout, which is used to assemble the various Python packages. Buildout is a fantastic tool for developers, but not such a good choice for end users.
That said, if you are interested in learning about Buildout and how to use it to build Plone sites, then this book is for you.
What this book covers
Chapter 1,