Plone Installieren: Unterschied zwischen den Versionen
Dgy00 (Diskussion | Beiträge) |
KKeine Bearbeitungszusammenfassung |
||
(43 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
== Plone 6 == | |||
== | |||
'''Python: | Die Webseite von Plone ist: https://plone.org/ bzw. https://plone.de/ | ||
Zitat von dort: | |||
> Plone ist ein Open-Source Content-Management-System (CMS) mit über 20 Jahren Stabilität und Sicherheit, was mit Plone 6 ein modernes, leistungsfähiges und benutzerfreundlich Overlay bekommen hat. | |||
> Es setzt weiterhin den Standard für Content-Managemen-Systeme, indem es die meisten Funktionen und Anpassmöglichkeiten von Haus aus bietet. | |||
Der Quelltext ist verfügbar auf: | |||
* https://github.com/plone/plone | |||
* https://github.com/plone/volto | |||
{{Textkasten|gelb|2 Daemon-Dienste erforderlich|Sowohl Plone als auch Volto laufen als eigener Dienst. Daemon Dienste sind im Managed Webspace zusätzlich kostenpflichtig. Die entsprechenden Ports müssen beim Hostsharing Service angefordert werden.}} | |||
=== Version === | |||
'''Plone 6.0.11''' | |||
'''Volto 17.1.1''' | |||
'''CMF 3.2''' | |||
'''Zope 5.8.5''' | |||
'''Python 3.9.16 (main, Oct 16 2023, 08:33:43) [GCC 8.3.0]''' | |||
'''PIL 9.5.0 (Pillow)''' | |||
== Installation == | == Installation == | ||
In der Anleitung findet die Installation im Home-Verzeichnis des | In der Anleitung findet die Installation im Home-Verzeichnis des Accounts xyz00-plone statt. | ||
Erzeugung reproduzierbarer Installationen. | Wir installieren Plone 6 weitgehend automatisiert mit Hilfe von buildout, einer Software zur Erzeugung reproduzierbarer Installationen. | ||
Volto ist das neue Frontend für Plone, und das wird mit yarn installiert. | |||
Wir benötigen eine aktuelle Version von Python, und benutzen dafür pyenv. | |||
=== Installation mit Ansible Skript === | |||
Es gibt ein Ansible Skript, mit Hilfe dessen die benötigten Programme und Domains eingerichtet werden können. | |||
Die Quellen für das Ansible Skript können hier eingesehen werden: https://codeberg.org/tpokorra/hs.ansible/src/branch/main/playbooks/plone | |||
=== Manuelle Installation === | |||
==== Installation von Python 3.9 ==== | |||
siehe [[Eigenes_Python_installieren#Installation_mit_pyenv]] | |||
Wir haben Python 3.9 installiert. Es müsste auch mit Python 3.11 gehen. | |||
==== Installation von Node.js ==== | |||
siehe [[NodeJS]] | |||
Es wird die aktuelle Version von Node 18 benötigt. | |||
==== Virtualenv für lokale Python Packages ==== | |||
Folgende Shell Befehle ausführen: | |||
$ mkdir plone | |||
$ cd plone | |||
$ source .profile | |||
$ ~/.pyenv/versions/3.9.16/bin/python3 -m venv .venv | |||
$ source .venv/bin/activate | |||
$ pip install --upgrade pip | |||
$ pip install setuptools==68.0.0 | |||
$ pip install wheel==0.40.0 | |||
$ pip install zc.buildout==3.0.1 | |||
$ pip install robotframework==6.0.2 | |||
==== Konfiguration und Installation mit buildout ==== | |||
Nun wird die zentrale Konfigurationsdatei erstellt. Die fett markierten Einstellungen müssen individuell angepasst werden. Es können weitere Optionen nach Bedarf konfiguriert werden, um beispielsweise zusätzliche Products oder eggs zu installieren. | |||
Shell Befehl | Shell Befehl | ||
$ cd ~/plone | |||
$ mkdir buildout | |||
$ cd buildout | |||
Inhalt der buildout.cfg | Inhalt der buildout.cfg | ||
<syntaxhighlight lang=ini line> | |||
[buildout] | |||
parts = instance | |||
extends = http://dist.plone.org/release/6-latest/versions.cfg | |||
versions = versions | |||
[instance] | |||
recipe = plone.recipe.zope2instance | |||
user = admin:'''initialpassword''' | |||
http-address = '''12300''' | |||
eggs = | |||
Plone | Plone | ||
Pillow | |||
plone.restapi | |||
plone.volto | |||
</syntaxhighlight> | |||
Shell Befehle ausführen: | |||
$ source ~/.profile | |||
$ source .venv/bin/activate | |||
$ cd ~/plone/buildout | |||
$ ../.venv/bin/buildout | |||
==== Start Stop des Plone Dienstes ==== | |||
Zum Starten und Stoppen sollte ein systemd Dienst eingerichtet werden. | |||
Es sind diese Verzeichnisse zu erstellen: | |||
$ mkdir -p ~/var/log | |||
$ mkdir -p ~/.config/systemd/user | |||
Die Datei ~/.config/systemd/user/plone.service sollte diesen Inhalt haben: | |||
=== | <syntaxhighlight lang=ini line> | ||
[Unit] | |||
Description=Plone | |||
After=network.target | |||
[Service] | |||
Type=forking | |||
Restart=on-abort | |||
WorkingDirectory=%h/plone | |||
ExecStart=%h/plone/.venv/bin/python3 %h/plone/buildout/bin/instance start | |||
ExecStop=%h/plone/.venv/bin/python3 %h/plone/buildout/bin/instance stop | |||
ExecReload=%h/plone/.venv/bin/python3 %h/plone/buildout/bin/instance reload | |||
StandardError=append:%h/var/log/plone.err.log | |||
StandardOutput=append:%h/var/log/plone.out.log | |||
[Install] | |||
WantedBy=default.target | |||
</syntaxhighlight> | |||
=== | Aktivieren des Dienstes: | ||
$ systemctl --user enable --now plone | |||
==== Einrichten von Volto ==== | |||
Es muss das Volto Repository ausgecheckt werden: | |||
$ cd ~ | |||
$ git clone https://github.com/plone/volto.git volto | |||
$ git checkout -b 17.1.1 17.1.1 | |||
Dann müssen die Node Pakete installiert werden: | |||
$ source ~/.profile | |||
$ cd ~/volto | |||
$ nice yarn | |||
$ nice yarn build | |||
==== Start Stop des Volto Dienstes ==== | |||
Zum Starten und Stoppen sollte ein systemd Dienst eingerichtet werden. | |||
Es sind diese Verzeichnisse zu erstellen: | |||
$ mkdir -p ~/var/log | |||
$ mkdir -p ~/.config/systemd/user | |||
Die Datei ~/.config/systemd/user/volto.service sollte diesen Inhalt haben: | |||
<syntaxhighlight lang=ini line> | |||
[Unit] | |||
Description=Volto | |||
After=network.target | |||
[Service] | |||
WorkingDirectory=%h/volto | |||
Environment="NVM_DIR=%h/.nvm" | |||
Environment="NVM_BIN=%h/.nvm/versions/node/v18.18.2/bin" | |||
Environment="NODE_ENV=production" | |||
Environment="PORT=31631" | |||
Environment="RAZZLE_API_PATH=https://plone.beispielverein.de" | |||
ExecStart=%h/.nvm/versions/node/v18.18.2/bin/node build/server.js | |||
StandardError=append:%h/var/log/volto.err.log | |||
StandardOutput=append:%h/var/log/volto.out.log | |||
Restart=always | |||
PrivateTmp=true | |||
NoNewPrivileges=true | |||
[Install] | |||
WantedBy=default.target | |||
</syntaxhighlight> | |||
Aktivieren des Dienstes: | |||
$ systemctl --user enable --now volto | |||
=== Konfiguration von Apache === | === Konfiguration von Apache === | ||
Zeile 169: | Zeile 208: | ||
Um die erzeugte Plone Site auch über einen registrierten Domainnamen ansprechen zu können, wird im Verzeichnis der jeweiligen Subdomain eine Konfigurationsdatei .htaccess mit dem folgenden, vorgegebenen Inhalt hinterlegt. Dabei müssen der Name des Pakets, der Name der Domain und der zugewiesene Port für HTTP angepasst werden. | Um die erzeugte Plone Site auch über einen registrierten Domainnamen ansprechen zu können, wird im Verzeichnis der jeweiligen Subdomain eine Konfigurationsdatei .htaccess mit dem folgenden, vorgegebenen Inhalt hinterlegt. Dabei müssen der Name des Pakets, der Name der Domain und der zugewiesene Port für HTTP angepasst werden. | ||
xyz00-plone@h99:~$ nano ~/doms/example.com/ | xyz00-plone@h99:~$ nano ~/doms/www.example.com/htdocs-ssl/.htaccess | ||
<syntaxhighlight lang=apache line> | |||
DirectoryIndex disabled | |||
RewriteEngine on | |||
RewriteBase / | |||
RewriteRule \+\+api\+\+($|/.*) http://127.0.0.1:{{plone.ploneport}}/VirtualHostBase/https/www.example.com:443/{{plone.site_code}}/++api++/VirtualHostRoot/$1 [proxy,last] | |||
== | RewriteRule .* http://127.0.0.1:{{plone.voltoport}}/%{REQUEST_URI} [proxy,last] | ||
</syntaxhighlight> | |||
Desweiteren wird eine Domain für Zope benötigt, wo die Plone Webauftritte erstellt werden können: | |||
xyz00-plone@h99:~$ nano ~/doms/zope.example.com/htdocs-ssl/.htaccess | |||
<syntaxhighlight lang=apache line> | |||
DirectoryIndex disabled | |||
RewriteEngine on | |||
RewriteBase / | |||
RewriteRule (.*) http://127.0.0.1:{{plone.ploneport}}/VirtualHostBase/https/zope.example.com:443/VirtualHostRoot/$1 [proxy,last] | |||
</syntaxhighlight> | |||
Diese Domain sollte mit htpasswd geschützt werden, um die Liste der Webauftritte zu verbergen. | |||
xyz00-plone@h99:~$ nano ~/doms/zope.example.com/.htaccess | |||
<syntaxhighlight lang=apache line> | |||
AuthType Basic | |||
AuthName "Passwortgeschütztes Verzeichnis" | |||
AuthUserFile /home/pacs/xyz00/users/plone/doms/zope.example.com/.htpasswd | |||
Require valid-user | |||
</syntaxhighlight> | |||
Erzeugen der Passwort Datei: | |||
$ htpasswd -c ~/doms/zope.example.com/.htpasswd admin | |||
=== Erzeugen der Plone Site === | |||
Eine laufende Instanz kann jederzeit über http://www.example.com mit dem Webbrowser direkt angesprochen werden. Dabei muss für jeden Webauftritt eine eigene Sub-Domain mit entsprechender .htaccess Datei konfiguriert werden. | |||
Mit Hilfe des Zope Management Interfaces (ZMI) wird nun eine Plone Site angelegt. Dazu wird im Webbrowser http://zope.example.com aufgerufen und nach dem Login mit den vergebenen Zugangsdaten auf den Button "Add Plone Site" klicken. Die Plone Site sollte Plone oder ein anderes Kürzel genannt werden. | |||
Die laufende Plone Site kann anschließend über http://www.example.com mit dem Webbrowser angesprochen werden. | |||
Für weitere Seiten muss entsprechend eine Sub-Domain eingerichtet werden, inkl. einer .htaccess Datei, mit einem entsprechenden Eintrag für den Site Code, anstatt Plone. | |||
== Automatisches Packen der ZopeDB == | |||
Füge dazu die folgende Anweisung in Deine [[Cron]]-Konfiguration ein: | |||
wget --http-user=zopeuser --http-password=zopepassword http://xyz00.hostsharing.net:12300/Control_Panel/Database/main/manage_pack --post-data="days3Afloat=7&submit=Pack" | |||
In diesem Fall werden alle Änderungen, die jünger als 7 Tage sind in der ZODB erhalten bleiben und können unter gewissen Umständen rückgängig gemacht werden. | |||
== Links == | |||
* Internationale Plone Seite: https://plone.org | |||
* Deutsche Plone Seite: https://plone.de | |||
* Github Repository für Plone: https://github.com/plone/plone | |||
* Github Repository für Volto: https://github.com/plone/volto | |||
* Ansible Skript: https://codeberg.org/tpokorra/hs.ansible/src/branch/main/playbooks/plone | |||
Zeile 183: | Zeile 277: | ||
[[Kategorie:HSDoku]] | [[Kategorie:HSDoku]] | ||
[[Kategorie:Installationsanleitungen]] | [[Kategorie:Installationsanleitungen]] | ||
[[Kategorie: | [[Kategorie:Software]] | ||
[[Kategorie: | [[Kategorie:CMS]] | ||
[[Kategorie:Ansible Playbook]] |
Aktuelle Version vom 27. Mai 2024, 11:59 Uhr
Plone 6
Die Webseite von Plone ist: https://plone.org/ bzw. https://plone.de/
Zitat von dort:
> Plone ist ein Open-Source Content-Management-System (CMS) mit über 20 Jahren Stabilität und Sicherheit, was mit Plone 6 ein modernes, leistungsfähiges und benutzerfreundlich Overlay bekommen hat.
> Es setzt weiterhin den Standard für Content-Managemen-Systeme, indem es die meisten Funktionen und Anpassmöglichkeiten von Haus aus bietet.
Der Quelltext ist verfügbar auf:
2 Daemon-Dienste erforderlich
Sowohl Plone als auch Volto laufen als eigener Dienst. Daemon Dienste sind im Managed Webspace zusätzlich kostenpflichtig. Die entsprechenden Ports müssen beim Hostsharing Service angefordert werden.
Version
Plone 6.0.11
Volto 17.1.1
CMF 3.2
Zope 5.8.5
Python 3.9.16 (main, Oct 16 2023, 08:33:43) [GCC 8.3.0]
PIL 9.5.0 (Pillow)
Installation
In der Anleitung findet die Installation im Home-Verzeichnis des Accounts xyz00-plone statt.
Wir installieren Plone 6 weitgehend automatisiert mit Hilfe von buildout, einer Software zur Erzeugung reproduzierbarer Installationen.
Volto ist das neue Frontend für Plone, und das wird mit yarn installiert.
Wir benötigen eine aktuelle Version von Python, und benutzen dafür pyenv.
Installation mit Ansible Skript
Es gibt ein Ansible Skript, mit Hilfe dessen die benötigten Programme und Domains eingerichtet werden können.
Die Quellen für das Ansible Skript können hier eingesehen werden: https://codeberg.org/tpokorra/hs.ansible/src/branch/main/playbooks/plone
Manuelle Installation
Installation von Python 3.9
siehe Eigenes_Python_installieren#Installation_mit_pyenv
Wir haben Python 3.9 installiert. Es müsste auch mit Python 3.11 gehen.
Installation von Node.js
siehe NodeJS
Es wird die aktuelle Version von Node 18 benötigt.
Virtualenv für lokale Python Packages
Folgende Shell Befehle ausführen:
$ mkdir plone $ cd plone $ source .profile $ ~/.pyenv/versions/3.9.16/bin/python3 -m venv .venv $ source .venv/bin/activate $ pip install --upgrade pip $ pip install setuptools==68.0.0 $ pip install wheel==0.40.0 $ pip install zc.buildout==3.0.1 $ pip install robotframework==6.0.2
Konfiguration und Installation mit buildout
Nun wird die zentrale Konfigurationsdatei erstellt. Die fett markierten Einstellungen müssen individuell angepasst werden. Es können weitere Optionen nach Bedarf konfiguriert werden, um beispielsweise zusätzliche Products oder eggs zu installieren.
Shell Befehl
$ cd ~/plone $ mkdir buildout $ cd buildout
Inhalt der buildout.cfg
[buildout]
parts = instance
extends = http://dist.plone.org/release/6-latest/versions.cfg
versions = versions
[instance]
recipe = plone.recipe.zope2instance
user = admin:'''initialpassword'''
http-address = '''12300'''
eggs =
Plone
Pillow
plone.restapi
plone.volto
Shell Befehle ausführen:
$ source ~/.profile $ source .venv/bin/activate $ cd ~/plone/buildout $ ../.venv/bin/buildout
Start Stop des Plone Dienstes
Zum Starten und Stoppen sollte ein systemd Dienst eingerichtet werden.
Es sind diese Verzeichnisse zu erstellen:
$ mkdir -p ~/var/log $ mkdir -p ~/.config/systemd/user
Die Datei ~/.config/systemd/user/plone.service sollte diesen Inhalt haben:
[Unit]
Description=Plone
After=network.target
[Service]
Type=forking
Restart=on-abort
WorkingDirectory=%h/plone
ExecStart=%h/plone/.venv/bin/python3 %h/plone/buildout/bin/instance start
ExecStop=%h/plone/.venv/bin/python3 %h/plone/buildout/bin/instance stop
ExecReload=%h/plone/.venv/bin/python3 %h/plone/buildout/bin/instance reload
StandardError=append:%h/var/log/plone.err.log
StandardOutput=append:%h/var/log/plone.out.log
[Install]
WantedBy=default.target
Aktivieren des Dienstes:
$ systemctl --user enable --now plone
Einrichten von Volto
Es muss das Volto Repository ausgecheckt werden:
$ cd ~ $ git clone https://github.com/plone/volto.git volto $ git checkout -b 17.1.1 17.1.1
Dann müssen die Node Pakete installiert werden:
$ source ~/.profile $ cd ~/volto $ nice yarn $ nice yarn build
Start Stop des Volto Dienstes
Zum Starten und Stoppen sollte ein systemd Dienst eingerichtet werden.
Es sind diese Verzeichnisse zu erstellen:
$ mkdir -p ~/var/log $ mkdir -p ~/.config/systemd/user
Die Datei ~/.config/systemd/user/volto.service sollte diesen Inhalt haben:
[Unit]
Description=Volto
After=network.target
[Service]
WorkingDirectory=%h/volto
Environment="NVM_DIR=%h/.nvm"
Environment="NVM_BIN=%h/.nvm/versions/node/v18.18.2/bin"
Environment="NODE_ENV=production"
Environment="PORT=31631"
Environment="RAZZLE_API_PATH=https://plone.beispielverein.de"
ExecStart=%h/.nvm/versions/node/v18.18.2/bin/node build/server.js
StandardError=append:%h/var/log/volto.err.log
StandardOutput=append:%h/var/log/volto.out.log
Restart=always
PrivateTmp=true
NoNewPrivileges=true
[Install]
WantedBy=default.target
Aktivieren des Dienstes:
$ systemctl --user enable --now volto
Konfiguration von Apache
Um die erzeugte Plone Site auch über einen registrierten Domainnamen ansprechen zu können, wird im Verzeichnis der jeweiligen Subdomain eine Konfigurationsdatei .htaccess mit dem folgenden, vorgegebenen Inhalt hinterlegt. Dabei müssen der Name des Pakets, der Name der Domain und der zugewiesene Port für HTTP angepasst werden.
xyz00-plone@h99:~$ nano ~/doms/www.example.com/htdocs-ssl/.htaccess
DirectoryIndex disabled
RewriteEngine on
RewriteBase /
RewriteRule \+\+api\+\+($|/.*) http://127.0.0.1:{{plone.ploneport}}/VirtualHostBase/https/www.example.com:443/{{plone.site_code}}/++api++/VirtualHostRoot/$1 [proxy,last]
RewriteRule .* http://127.0.0.1:{{plone.voltoport}}/%{REQUEST_URI} [proxy,last]
Desweiteren wird eine Domain für Zope benötigt, wo die Plone Webauftritte erstellt werden können:
xyz00-plone@h99:~$ nano ~/doms/zope.example.com/htdocs-ssl/.htaccess
DirectoryIndex disabled
RewriteEngine on
RewriteBase /
RewriteRule (.*) http://127.0.0.1:{{plone.ploneport}}/VirtualHostBase/https/zope.example.com:443/VirtualHostRoot/$1 [proxy,last]
Diese Domain sollte mit htpasswd geschützt werden, um die Liste der Webauftritte zu verbergen.
xyz00-plone@h99:~$ nano ~/doms/zope.example.com/.htaccess
AuthType Basic
AuthName "Passwortgeschütztes Verzeichnis"
AuthUserFile /home/pacs/xyz00/users/plone/doms/zope.example.com/.htpasswd
Require valid-user
Erzeugen der Passwort Datei:
$ htpasswd -c ~/doms/zope.example.com/.htpasswd admin
Erzeugen der Plone Site
Eine laufende Instanz kann jederzeit über http://www.example.com mit dem Webbrowser direkt angesprochen werden. Dabei muss für jeden Webauftritt eine eigene Sub-Domain mit entsprechender .htaccess Datei konfiguriert werden.
Mit Hilfe des Zope Management Interfaces (ZMI) wird nun eine Plone Site angelegt. Dazu wird im Webbrowser http://zope.example.com aufgerufen und nach dem Login mit den vergebenen Zugangsdaten auf den Button "Add Plone Site" klicken. Die Plone Site sollte Plone oder ein anderes Kürzel genannt werden.
Die laufende Plone Site kann anschließend über http://www.example.com mit dem Webbrowser angesprochen werden.
Für weitere Seiten muss entsprechend eine Sub-Domain eingerichtet werden, inkl. einer .htaccess Datei, mit einem entsprechenden Eintrag für den Site Code, anstatt Plone.
Automatisches Packen der ZopeDB
Füge dazu die folgende Anweisung in Deine Cron-Konfiguration ein:
wget --http-user=zopeuser --http-password=zopepassword http://xyz00.hostsharing.net:12300/Control_Panel/Database/main/manage_pack --post-data="days3Afloat=7&submit=Pack"
In diesem Fall werden alle Änderungen, die jünger als 7 Tage sind in der ZODB erhalten bleiben und können unter gewissen Umständen rückgängig gemacht werden.
Links
- Internationale Plone Seite: https://plone.org
- Deutsche Plone Seite: https://plone.de
- Github Repository für Plone: https://github.com/plone/plone
- Github Repository für Volto: https://github.com/plone/volto
- Ansible Skript: https://codeberg.org/tpokorra/hs.ansible/src/branch/main/playbooks/plone