This document is valid for the current version of Plone.

Installing on Windows

How to get Plone up and running on Windows, not for serious development

The binary installer for Windows is the option to choose if you want to try out Plone on Windows or host a site but not serious development. Should you want to do serious development, check this document.

This document was updated for Plone-4.1.2.

The Basics

This section explains how to do a basic installation of Plone.

Downloading and Installing Plone

  1. Download the installer from this page on
  2. Save it in a place you can remember, such as your Desktop.
  3. After the download is completed, double-click on the installer file to run it.
  4. Go through the installation wizard. The installer creates a folder in C:\Plone41 and installs Plone there.
  5. Wait while the installer extracts files and sets up your Plone instance.
  6. The newer installer automatically installs Windows services for Plone and starts the services so there's no need to start Plone by hand. If you need to start or stop the new services they are called "Plone 4.1" and "Plone 4.1 Zeo" and are listed in the Services controller window.

Accessing Plone

Note: You may need to tell your firewall to open TCP Port 8080 before you can access Plone's web interface.

  1. Open a browser window and browse to http://localhost:8080 and click the "Create a new Plone site" button.
  2. You'll be asked to login next. The default username is "admin" and the password is also "admin" (no quotes).
  3. On the "Create a Plone site" page scroll down and click the "Create Plone Site" button.
  4. After the site is created you'll be redirected to the site at http://localhost:8080/Plone. You can use this URL the next time you want to visit your site.

Starting and Stopping Your Plone Services

In case you need to stop or start your Plone services by hand you can access them this way:

Click on the Windows "Start" button.

Type "services" (no quotes) into the search bar that will appear at the bottom of the Start Menu.

Click on the entry called "Services" in the "Programs" category of the search results.

In the Services window, scroll down to find the "Plone 4.1" and "Plone 4.1 Zeo" services.

From here you can start and stop the services whenever you need to.

If you're only testing Plone and you don't want it to start every time you start your computer, adjust the "Properties" of each of the Plone services and set the "Startup Type" to "Manual."

The Details

This section give more information about the Windows installer and how to customize it if needed.

As of Plone 4.0.9 and Plone 4.1 there are new Windows installers being provided to the community. These installers behave differently than previous versions. This document explains the changes and the rationale behind them.


Previously the Plone Windows installer ran buildout after allowing the user to input several variables, including an installation directory. However, due to the way that Python, Windows and buildout interact, long or complex installation directories did not always work, leading to fatal errors during the buildout installation process. This failure would be very difficult for an evaluator to recover from, thereby creating a bad “first impression” for a new user.

The new Plone Windows installer trades off some of this flexibility for vastly improved reliability. Buildout is run when building the installer, not “live” during the installation process. This means that buildout can never fail during installation. However, this also means that the Windows installer will only install Plone into C:\Plone41 (for 4.1) and C:\Plone42 (for 4.2).

For users who require more flexibility in installation paths, we have provided the ability to copy-and-paste an installation directory to a new location, as well as a new facility to create custom Windows installers for Plone (which ships with the Plone Windows installer). Now, you can modify your buildouts and regenerate new Windows installers with different configurations (e.g., using multiple ZEO clients, multiple databases or different products), which you can use in production or distribute to customers.


Plone’s Windows services now use a recipe called enfold.recipe.winservice which is a fork of the z3c.winservice recipe for use in Zope 2. The new Plone Windows installer has three key differences from previous versions:

  • Default credentials for Plone
    • Previously you could create these from inside the installer.
    • Now it is hardcoded as login: admin and password: admin. This makes the Windows installer consistent with the Unified Installer and the Mac OS X installer.
      This can be changed by editing buildout.cfg, see the [shared] section
      which contains the line: user = login:password
  • Windows Service name
    • Previously this was auto-generated during installation
    • Now it is defined in buildout.cfg see the [service] and [service-zeo] sections
      name = Unique Service Name
  • Installation Location
    • Previously the user could select/create new folder to install Plone
    • Now it installs into C:\Plone41 or C:\Plone40 (depending on version)

How to Change the Installation Location

The new Plone Windows installer does not allow you to change the installation location when you run the installer.  However, it is still possible to install Plone into a different location after the initial installation, albeit via a more manual process. For example, suppose you have installed Plone into C:\Plone41 and after evaluation you want to copy it to a more permanent location, lets say Z:\Plone41-Intranet\.

The good news is that your installation directory, C:\Plone41, is 100% self-contained.  There are no external dependencies defined anywhere else. You can simply copy/paste this directory, modify your buildout.cfg file (described below), and rebuild your custom environment. For a production-quality deployment of Plone, you will nearly always need to do this because the default settings for Plone Windows installation are very basic, and intended more for evaluation than for production deployment scenarios.

Here’s a simple example for moving Plone from its default installation directory (C:\Plone41) to a new directory, Z:\Plone41-Intranet

  • Change to Z:\ drive
  • mkdir Plone41-Intranet
  • cd Plone41-Intranet
  • copy C:\Plone41\* .
  • switch to Z:\Plone41-Intranet
  • edit the buildout.cfg file
    • goto [shared] section
    • change user variable to login:password they want to use
    • change the http-address to a unique port, say 9090
    • change the zeo-address to a unique port, say 9999

user = administrator:s3kr1t
http-address = 9090
zeo-address = 9999
debug-mode = off
verbose-security = off

    • goto [service] section
    • change name variable to “Plone 4.1 Intranet”

recipe = enfold.recipe.winservice:service
name = Plone 4.1 Intranet
runzope = run-instance

    • goto [service-zeo] section
    • change name variable to “Plone 4.1 Intranet Database”

recipe = enfold.recipe.winservice:service
name = Plone 4.1 Intranet Database
runzope = run-zeo

  • re-build the configuration files
  • now install your new service
    • bin\instance.exe install
      bin\zeo_service.exe install
    • you can now start your database server service
      • bin\zeo_service.exe start
      • It is always best to start your client/instance in foreground mode.  If this fails you a substantial configuration problem or source code mismatch in your system.
        • bin\instance.exe fg

          Your terminal will be connected to the server.  If it says “Zope Ready to Serve Requests” you are good to go. Control-C or Break out of it and start the service from services panel or command line

            bin\instance.exe start

            I believe there is a problem with registry and python.  Since we *do not* register the python system-wide you will need to have your current working directory as Python.  So the command will be as follows:

            Z:\Plone41-Intranet> bin\buildout
            Z:\Plone41-Intranet> cd python
            Z:\Plone41-Intranet\Python> python ..\bin\ --startup auto install
            Z:\Plone41-Intranet\Python> python ..\bin\ --startup auto install

            Building a Custom Windows Installer

            The biggest feature of the new installer is the ability to create a custom Windows installers, which you can use or distribute.  Previously, building a custom Windows installer required substantial knowledge of how many different sub-systems work together. Now you simply edit the installer.cfg buildout recipe.  Re-run buildout with -c installer.cfg and you will get a new Windows installer executable in the current working directory.

            See the “Windows Packaging Details” link below for more information.