--- myst: html_meta: "description": "" "property=og:description": "" "property=og:title": "" "keywords": "" --- (plone5-installation-label)= # Installation & Setup (plone5-installation-plone-label)= ## Installing Plone The following table shows the Python versions required by Plone from version 3.x to 5.2.x: | Plone | Python | | ----- | -------------- | | 3.x | 2.4 | | 4.0.x | 2.6 | | 4.1.x | 2.6 | | 4.2.x | 2.6 or 2.7 | | 4.3.x | 2.7 | | 5.0.x | 2.7 | | 5.1.x | 2.7.9 | | 5.2.x | 2.7.14 or 3.6+ | (Hopefully you won't have to deal with any Plone sites older than version 4.3.x) Plone 5.x requires a working Python 2.7 (or Python 3.6+ for Plone 5.2.x) and other system tools that not every OS provides. The installation of Plone is different on every system. Here are some ways that Python can be installed: - use a Python that comes pre-installed in your operating system (most Linux Distributions and macOS have one) - use the [python buildout](https://github.com/collective/buildout.python) - building Linux packages - [Homebrew](https://brew.sh) (macOS) - PyWin32 (Windows) Most developers use their primary system to develop Plone. For complex setups they often use Linux virtual machines. - macOS: Use the system python and [Homebrew](https://brew.sh) for some missing Linux tools. - Linux: Depending on your Linux flavor you might have to install Python 3.7 yourself and install some tools. - Windows: Alan Runyan (one of Plone's founders) uses it. A downside: Plone seems to be running slower on Windows. Plone offers multiple options for being installed: 1. Unified installers (all 'nix, including macOS) 2. A Vagrant/VirtualBox install kit (all platforms) 3. A VirtualBox Appliance 4. A [Windows installer](https://github.com/plone/WinPloneInstaller) 5. Use your own Buildout Visit the [download page](https://plone.org/download) to see all the options. ```{only} not presentation For the training you will use option 2 or 5 to install and run Plone. We will create our own Buildout and extend it as we wish. If you choose to do so you will run it in a Vagrant machine. For your own first experiments we recommend option 1 or 2 (if you have a Windows laptop or encounter problems). Later on you should be able to use your own Buildout (we will cover that later on). ``` ```{only} presentation For the training we will use option 2 or 5 to install and run Plone. ``` ```{seealso} - ``` (plone5-installation-hosting-label)= ## Hosting Plone ```{only} not presentation If you want to host a real live Plone site yourself then running it from your laptop is not a viable option. ``` You can host Plone... - with one of many professional [hosting providers](https://plone.org/providers) - on a virtual private server - on dedicated servers See all the ways you can [set up Plone](https://plone.org/download) ```{seealso} - Plone Installation Requirements: ``` (plone5-installation-prod-deploy-label)= ## Production Deployment The way we are setting up a Plone site during this class may be adequate for a small site — or even a large one that's not very busy — but you are likely to want to do much more if you are using Plone for anything demanding. - Using a production web server like Apache or Nginx for URL rewriting, SSL and combining multiple, best-of-breed solutions into a single web site. - Reverse proxy caching with a tool like Varnish to improve site performance. - Load balancing to make best use of multiple core CPUs and even multiple servers. - Optimizing cache headers and Plone's internal caching schemes with plone.app.caching. And, you will need to learn strategies for efficient backup and log file rotation. All these topics are introduced in [Guide to deploying and installing Plone in production](https://5.docs.plone.org/manage/deploying/index.html).