Plone 5.2 on Debian 11 with Python 3.8
apt update
apt upgrade
wget https://www.python.org/ftp/python/3.8.15/Python-3.8.15.tgz
tar -zxvf Python-3.8.15.tgz
mv Python3.8.15 /opt/Python3.8.15
apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev curl libbz2-dev -y
do not run as root:
cd /opt/Python3.8.15/
./configure --enable-optimizations --enable-shared
make -j 4 (if have 4 cpus available to speed up compiling)
sudo make altinstall
sudo ldconfig /opt/Python3.8.15\
python3.8 –version
mkdir -p /opt/plone/5
Optional virtualenv:
python3.8 -m venv /opt/plone/5/plone_5_venv
cd /opt/plone/5/
source plone_5_venv/bin/activate
wget https://launchpad.net/plone/5.2/5.2.9/+download/Plone-5.2.9-UnifiedInstaller-1.0.tgz
tar -zxvf Plone-5.2.9-UnifiedInstaller-1.0.tgz
apt install poppler-utils
apt install wv
apt install libjpeg-dev
apt install libexpat1 libexpat1-dev
apt install libxml2 >= 2.7.8 (dev)* libxml2 and libxml2-dev
apt install libxslt >= 1.1.26 (dev)* libxslt1.1 and libxslt1-dev
May also need to install:
libffi-dev
install libpcre or libpcre-dev, which version? 2, 3,? or is it pcre2?
tried: pt install libpcre2-32-0 libpcre2-dev libpcre3 libpcre3-dev pcre2-utils
Either run just vanilla ./install.sh and answer prompts, or you can pass paramaters from the command line, similar to these:
./install.sh --target="/opt/plone/5" --password="youtpassword" --clients=2 --build-python zeocluster
For example (NOTE THIS WILL CREATE THE VENV for you, don't run from inside venv yet):
./install.sh zeocluster --target="/opt/plone/5/plone_5_venv" --with-python=/usr/local/bin/python3.8 --password=******** --clients=2
Should see output similar to this:
Testing /usr/local/bin/python3.8 for Zope/Plone requirements....
/usr/local/bin/python3.8 looks OK. We will use it.
Root install method chosen. Will install for use by users:
ZEO & Client Daemons: plone_daemon
Code Resources & buildout: plone_buildout
Detailed installation log being written to /opt/downloads/Plone-5.2.9-UnifiedInstaller-1.0/install.log
Installing Plone 5.2.9 at /opt/plone/5/plone_5_venv
Using useradd and groupadd to create users and groups.
Adding user plone_daemon to group plone_group.
Adding user plone_buildout to group plone_group.
Creating Python virtual environment.
Installing Python requirements in virtual environment.
Copying Plone-docs
Create buildout: cluster
Vanilla ./install.sh with prompts:
YES to continue
Select ZEO cluster for production, or Standalone for DEV/TST
Number of ZEO Clients? (see: https://docs.plone.org/manage/deploying/stack.html?highlight=zeo#how-many-zeo-clients-how-much-memory): I selected on this 4 CPU system: 2. Would prefer for higher traffic probably more around 4 or so. May need to increase later as traffic gets migrated to pointing to this server for more and more domains/sites.
Installation Target Directory: /opt/plone/5/plone_5_venv
Administrator password: Used pwgen -y 12 - or can leave blank for it to autogenerate a random password for you.
Then next screen should look like this:
If looks good to you, then select "Yes", otherwise "No".
REFERENCES
https://www.linuxcapable.com/how-to-install-python-3-8-on-debian-11-bullseye/
https://plone.org/download/releases/5.2.9
https://docs.plone.org/manage/deploying/production/ubuntu_production.html