Diskussion:Server/Plone: Unterschied zwischen den Versionen

Aus Wiki StuRa HTW Dresden
Zur Navigation springen Zur Suche springen
Zeile 480: Zeile 480:
chown -R www:www /…/python
chown -R www:www /…/python
</pre>
</pre>
===== Schmerzen und Linderung =====
; Problem:
<pre>
ERROR Zope.SiteErrorLog […]:8080/Plone/welcome/document_view
Traceback (innermost last):
  Module ZPublisher.Publish, line 138, in publish
  Module ZPublisher.mapply, line 77, in mapply
  Module ZPublisher.Publish, line 48, in call_object
  Module Shared.DC.Scripts.Bindings, line 322, in __call__
  Module Shared.DC.Scripts.Bindings, line 359, in _bindAndExec
  Module Products.CMFCore.FSPageTemplate, line 237, in _exec
  Module Products.CMFCore.FSPageTemplate, line 177, in pt_render
  Module Products.PageTemplates.PageTemplate, line 87, in pt_render
  Module zope.pagetemplate.pagetemplate, line 132, in pt_render
  Module zope.pagetemplate.pagetemplate, line 240, in __call__
  Module zope.tal.talinterpreter, line 266, in __call__
  Module zope.tal.talinterpreter, line 338, in interpret
  Module zope.tal.talinterpreter, line 883, in do_useMacro
  Module zope.tal.talinterpreter, line 338, in interpret
  Module zope.tal.talinterpreter, line 528, in do_optTag_tal
  Module zope.tal.talinterpreter, line 513, in do_optTag
  Module zope.tal.talinterpreter, line 508, in no_tag
  Module zope.tal.talinterpreter, line 338, in interpret
  Module zope.tal.talinterpreter, line 847, in do_condition
  Module zope.tal.talinterpreter, line 338, in interpret
  Module zope.tal.talinterpreter, line 528, in do_optTag_tal
  Module zope.tal.talinterpreter, line 513, in do_optTag
  Module zope.tal.talinterpreter, line 508, in no_tag
  Module zope.tal.talinterpreter, line 338, in interpret
  Module zope.tal.talinterpreter, line 526, in do_optTag_tal
  Module zope.tal.talinterpreter, line 508, in no_tag
  Module zope.tal.talinterpreter, line 338, in interpret
  Module zope.tal.talinterpreter, line 737, in do_insertStructure_tal
  Module Products.PageTemplates.Expressions, line 218, in evaluateStructure
  Module zope.tales.tales, line 696, in evaluate
  - URL: file:/usr/local/lib/python2.7/site-packages/plonetheme/sunburst/skins/sunburst_templates/main_template.pt
  - Line 32, Column 8
  - Expression: <StringExpr u'plone.htmlhead.links'>
  - Names:
      {'container': <PloneSite at /Plone>,
      'context': <ATDocument at /Plone/welcome>,
      'default': <object object at 0x80069e540>,
      'here': <ATDocument at /Plone/welcome>,
      'loop': {},
      'nothing': None,
      'options': {'args': ()},
      'repeat': <Products.PageTemplates.Expressions.SafeMapping object at 0x814ccd470>,
      'request': <HTTPRequest, URL=http://141.56.50.71:8080/Plone/welcome/document_view>,
      'root': <Application at >,
      'template': <FSPageTemplate at /Plone/document_view used for /Plone/welcome>,
      'traverse_subpath': [],
      'user': <User 'administration'>}
  Module zope.contentprovider.tales, line 77, in __call__
  Module zope.viewlet.manager, line 112, in update
  Module zope.viewlet.manager, line 118, in _updateViewlets
  Module five.customerize.zpt, line 135, in update
  Module five.customerize.zpt, line 167, in _getViewlet
  Module ZODB.broken, line 106, in __new__
TypeError: object.__new__(TTWViewlet) is not safe, use Persistence.Persistent.__new__()
</pre>
<pre>
ERROR root Exception while rendering an error message
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/OFS/SimpleItem.py", line 242, in raise_standardErrorMessage
    v = s(**kwargs)
  File "/usr/local/lib/python2.7/site-packages/Products/CMFCore/FSPythonScript.py", line 127, in __call__
    return Script.__call__(self, *args, **kw)
  File "/usr/local/lib/python2.7/site-packages/Shared/DC/Scripts/Bindings.py", line 322, in __call__
    return self._bindAndExec(args, kw, None)
  File "/usr/local/lib/python2.7/site-packages/Shared/DC/Scripts/Bindings.py", line 359, in _bindAndExec
    return self._exec(bound_data, args, kw)
  File "/usr/local/lib/python2.7/site-packages/Products/PythonScripts/PythonScript.py", line 344, in _exec
    result = f(*args, **kw)
  File "Script (Python)", line 35, in standard_error_message
  File "/usr/local/lib/python2.7/site-packages/Shared/DC/Scripts/Bindings.py", line 322, in __call__
    return self._bindAndExec(args, kw, None)
  File "/usr/local/lib/python2.7/site-packages/Shared/DC/Scripts/Bindings.py", line 359, in _bindAndExec
    return self._exec(bound_data, args, kw)
  File "/usr/local/lib/python2.7/site-packages/Products/CMFCore/FSPageTemplate.py", line 237, in _exec
    result = self.pt_render(extra_context=bound_names)
  File "/usr/local/lib/python2.7/site-packages/Products/CMFCore/FSPageTemplate.py", line 177, in pt_render
    self, source, extra_context
  File "/usr/local/lib/python2.7/site-packages/Products/PageTemplates/PageTemplate.py", line 87, in pt_render
    showtal=showtal)
  File "/usr/local/lib/python2.7/site-packages/zope/pagetemplate/pagetemplate.py", line 132, in pt_render
    strictinsert=0, sourceAnnotations=sourceAnnotations
  File "/usr/local/lib/python2.7/site-packages/zope/pagetemplate/pagetemplate.py", line 240, in __call__
    interpreter()
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 266, in __call__
    self.interpret(self.program)
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 338, in interpret
    handlers[opcode](self, args)
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 883, in do_useMacro
    self.interpret(macro)
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 338, in interpret
    handlers[opcode](self, args)
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 528, in do_optTag_tal
    self.do_optTag(stuff)
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 513, in do_optTag
    return self.no_tag(start, program)
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 508, in no_tag
    self.interpret(program)
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 338, in interpret
    handlers[opcode](self, args)
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 847, in do_condition
    self.interpret(block)
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 338, in interpret
    handlers[opcode](self, args)
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 528, in do_optTag_tal
    self.do_optTag(stuff)
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 513, in do_optTag
    return self.no_tag(start, program)
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 508, in no_tag
    self.interpret(program)
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 338, in interpret
    handlers[opcode](self, args)
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 526, in do_optTag_tal
    self.no_tag(stuff[-2], stuff[-1])
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 508, in no_tag
    self.interpret(program)
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 338, in interpret
    handlers[opcode](self, args)
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 737, in do_insertStructure_tal
    structure = self.engine.evaluateStructure(expr)
  File "/usr/local/lib/python2.7/site-packages/Products/PageTemplates/Expressions.py", line 218, in evaluateStructure
    text = super(ZopeContext, self).evaluateStructure(expr)
  File "/usr/local/lib/python2.7/site-packages/zope/tales/tales.py", line 696, in evaluate
    return expression(self)
  File "/usr/local/lib/python2.7/site-packages/zope/contentprovider/tales.py", line 77, in __call__
    provider.update()
  File "/usr/local/lib/python2.7/site-packages/zope/viewlet/manager.py", line 112, in update
    self._updateViewlets()
  File "/usr/local/lib/python2.7/site-packages/zope/viewlet/manager.py", line 118, in _updateViewlets
    viewlet.update()
  File "/usr/local/lib/python2.7/site-packages/five/customerize/zpt.py", line 135, in update
    self._getViewlet().update()
  File "/usr/local/lib/python2.7/site-packages/five/customerize/zpt.py", line 167, in _getViewlet
    self.viewlet = TTWViewlet(self.context, self.request, self.view, self.manager)
  File "/usr/local/lib/python2.7/site-packages/ZODB/broken.py", line 106, in __new__
    result = object.__new__(class_)
TypeError: object.__new__(TTWViewlet) is not safe, use Persistence.Persistent.__new__()
</pre>
; Lösung (quick and dirty):


<pre>
<pre>

Version vom 31. August 2015, 15:20 Uhr

Plone 5 testen

Ave PT!

Da du ja begonnen hattest Plone 5 "zu spielen": Bei Launchpad liegt die "roadmap" zu Plone 5, so tagesaktuell auch die 5.0a2, die du mit dem UnifiedInstaller, den du ja zu Plone 4 erfolgreich (nach dem "vorgegeben" Schema) verwendet hattest.

Kollaborative

--Paul 06:14, 13. Dez. 2014 (CET)

Installation einer bestimmten (veralteten) Version von Plone mit UnifiedInstaller

pkg update; pkg upgrade -y
pkg install -y wget
mkdir -p /usr/local/install/plone; cd /usr/local/install/plone
wget https://launchpad.net/plone/4.0/4.0.5/+download/Plone-4.0.5-UnifiedInstaller.tgz
tar -xvf Plone-4.0.5-UnifiedInstaller.tgz
cd Plone-4.0.5-UnifiedInstaller
./install.sh standalone
Username: admin                                                               
Password: admin
cd /usr/local/Plone/zinstance
./bin/plonectl start

--Paul 01:33, 10. Aug. 2015 (CEST)


--Paul 02:02, 10. Aug. 2015 (CEST)


dump beschaffen und beispielsweise in /usr/local/install/plone/dump ablegen

mkdir /usr/local/install/plone/dump
auf dem Hauptsystem den dump herüber kopieren
cp /mnt/zroot/jails/name-der-alten-jail/usr/local/dump-of-plone.tar.gz /mnt/zroot/jails/name-der-neuen-jail/usr/local/install/plone/dump/dump-of-plone.tar.gz
cd /usr/local/install/plone/dump
tar -xvf dump-of-plone.tar.gz
cp -pr /usr/local/Plone/zinstance/ /usr/local/Plone/zinstance.bak/
cp -pr /usr/local/install/plone/dump/Plone/zinstance/var/filestorage/Data.fs /usr/local/Plone/zinstance/var/filestorage/Data.fs
cp -pr /usr/local/install/plone/dump/Plone/zinstance/var/blobstorage/ /usr/local/Plone/zinstance/var/blobstorage/
cp -pr /usr/local/install/plone/dump/Plone/zinstance/*.conf /usr/local/Plone/zinstance/bak/
cp -pr /usr/local/install/plone/dump/Plone/zinstance/*.cfg /usr/local/Plone/zinstance/previous-zinstance
cp -pr /usr/local/install/plone/dump/Plone/zinstance/adminPassword.txt /usr/local/Plone/zinstance/previous-zinstance
cp -pr /usr/local/install/plone/dump/Plone/zinstance/src/ /usr/local/Plone/zinstance/src/
cd /usr/local/Plone/zinstance
./bin/plonectl start

Plone 3

Im Übrigen müsste das auch so mit Plone 3 funktionieren.

  Username: admin                                                               
  Password: admin

Falls wer übermotiviert ein Plone 3 zu Plone 4 aktualisieren mag: Updating a custom Plone 3 buildout for Plone 4

--Paul 01:33, 10. Aug. 2015 (CEST)


Tutorial:

--Paul 01:54, 10. Aug. 2015 (CEST)

Inhalte von Plone übertragen

wenn mit UnifiedInstaller die bisherige Version 4.0.5 installiert wird, dann werden folgende Versionen verwendet

Plone 4.0.5
Zope 2.12.23
Python 2.6.6

Plone 4 ist aber folgendes

    Plone 4.0.5
    Zope 2.12.23
    Python 2.6.6 (r266:84292, Sep 25 2011, 12:20:08) [GCC 4.2.1 20070719 [FreeBSD]]

wenn mit UnifiedInstaller die bisherige Version 3.3.5 installiert wird, dann werden folgende Versionen verwendet

    Plone 3.3.5
    CMF 2.1.2
    Zope (unreleased version, python 2.4.6, freebsd9)
    Python 2.4.6 (#1, Aug 10 2015, 00:11:06) [GCC 4.2.1 20070831 patched [FreeBSD]]
    PIL 1.1.6

Plone 3 ist aber folgendes

    Plone 3.2.1
    CMF 2.1.2
    Zope (Zope 2.10.9-final, python 2.4.6, freebsd8)
    Python 2.4.6 (#1, Sep 25 2011, 15:33:29) [GCC 4.2.1 20070719 [FreeBSD]]
    PIL 1.1.6
Versuch export/import Plone 4
  • aus dem bisherigen Plone "einfach" exportieren lassen
    Das kann wohl was dauern!
  • Jail neu aufsetzen
  • Plone mit UnifiedInstaller in der gleichen Version 4.0.5 installieren
  • export (dump) in die neue Jail kopieren
    builtout (vielleicht auch erst später)
  • in das kommende Plone "einfach" importieren lassen
Drecksarbeit abwarten!

weitere wohl benötigte Pakete

wv installieren
pkg install -y wv
xpdf installieren
pkg install -y xpdf
ln -s /usr/local/libexec/xpdf/pdftotext /usr/local/bin/pdftotext

--Paul 01:52, 12. Aug. 2015 (CEST)

---

Bei der schrittweisen Aktualisierung nach der Installation von der veralteten Version (4.0.5) mit UnifiedInstaller fiel auf, dass wohl auch

  • py27-lxml
    pkg install -y lxml
  • freetype
    pkg install -y freetype
    ln -s /usr/local/include/freetype2 /usr/local/include/freetype
  • py27-graphviz
    pkg install -y py27-graphviz

benötigt werden.

--Paul 00:08, 23. Aug. 2015 (CEST)

Vergleich zwischen aktuell installierten Paketen und darüber hinaus noch verfügbaren Paketen

pkg info | grep plone | awk '{print $1}' > /tmp/pkg_info_plone ; pkg search plone > /tmp/pkg_search_plone ; diff /tmp/pkg_info_plone /tmp/pkg_search_plone

--Paul 03:34, 12. Aug. 2015 (CEST)

pkg info | grep zope | awk '{print $1}' > /tmp/pkg_info_zope ; pkg search zope > /tmp/pkg_search_zope ; diff /tmp/pkg_info_zope /tmp/pkg_search_zope

--Paul 11:02, 31. Aug. 2015 (CEST)

aktueller UnifiedInstaller ()

pkg update; pkg upgrade -y
pkg install -y wget
mkdir -p /usr/local/install/plone; cd /usr/local/install/plone
wget https://launchpad.net/plone/4.3/4.3.2/+download/Plone-4.3.2-UnifiedInstaller.tgz
tar -xvf Plone-4.3.2-UnifiedInstaller
cd Plone-4.3.2-UnifiedInstaller
pkg install -y libxml2 libxslt
./install.sh standalone
Testing /usr/local/bin/python2.7 for Zope/Plone requirements....
/usr/local/bin/python2.7 looks OK. We'll try to 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 /usr/local/install/plone/Plone-4.3.2-UnifiedInstaller/install.log
Installing Plone 4.3.2 at /usr/local/Plone

Using pw to create users and groups
Creating python virtual environment, no site packages.
New python executable in /usr/local/Plone/Python-2.7/bin/python2.7
Also creating executable in /usr/local/Plone/Python-2.7/bin/python
Installing Setuptools..............................................................................................................................................................................................................................done.
Installing Pip.....................................................................................................................................................................................................................................................................................................................................done.
Compiling and installing jpeg local libraries ...
Unpacking buildout cache to /usr/local/Plone/buildout-cache
Copying Plone-docs
Setting /usr/local/Plone ownership to plone_buildout:plone_group
Copying buildout skeleton
Fixing up bin/buildout
Building Zope/Plone; this takes a while...
Buildout completed
 
#####################################################################
######################  Installation Complete  ######################
 
Plone successfully installed at /usr/local/Plone
See /usr/local/Plone/zinstance/README.html
for startup instructions
 
Use the account information below to log into the Zope Management Interface
The account has full 'Manager' privileges.

  Username: admin
  Password: admin

This account is created when the object database is initialized. If you change
the password later (which you should!), you'll need to use the new password.

Use this account only to create Plone sites and initial users. Do not use it
for routine login or maintenance. 
 
- If you need help, ask the mailing lists or #plone on irc.freenode.net.
- The live support channel also exists at http://plone.org/chat
- You can read/post to the lists via http://plone.org/forums
 
- Submit feedback and report errors at http://dev.plone.org/plone
(For install problems, specify component "Installer (Unified)")
cd /usr/local/Plone/zinstance
./bin/plonectl start

--Paul 04:23, 12. Aug. 2015 (CEST)

"manuelles" backup erstellen

tar -zcvf Plone-backup.tgz /usr/local/Plone möglichst möge plone vorher gestoppt sein

--Paul 06:01, 12. Aug. 2015 (CEST)

Gehversuche zum Umherziehen

Pauschales Aktualisieren

pkg upgrade -y

Installieren von Plone

pkg install -y plone

Erlauben des dauerhaften Startens von Zope (für Plone)

echo 'zope213_enable="YES"' >> /etc/rc.conf

Eintrag einer Zeile zur möglichen späteren Verortung der Instanz von Zope (wenn sie nicht dem voreinstellten Pfad entspricht)

echo '#zope213_instances="<INSTANCEDIR>"' >> /etc/rc.conf
testweises Suchen des voreinstellten Pfades in den Skripten von rc.d
grep /usr/local/www/ /usr/local/etc/rc.d/ -r

Erstellen einer Instanz Zope im "empfohlenen" (vorgegebenen) Pfad /usr/local/www/Zope213/

mkzopeinstance --dir /usr/local/www/Zope213/

möglichst Rechte auf Account www beschränken (und root:wheel vermeinden)

grep effective-user /usr/local/www/Zope213/etc/zope.conf
# Directive: effective-user
effective-user www
chown www:www /usr/local/www/Zope213/var
chown www:www /usr/local/www/Zope213/log

Neustarten der Jail (gleich über srs1337 als host)

ee /usr/local/www/Zope213/etc/zope.conf
<blobstorage>
blob-dir $INSTANCE/var/blobstorage
<filestorage>
      # See .../ZODB/component.xml for directives sectiontype
      # "filestorage").
      path $INSTANCE/var/Data.fs
</filestorage>
</blobstorage>
cp <alte-instanz>/Plone/zinstance/var/filestorage/Data.fs /usr/local/www/Zope213/var/
cp -a <alte-instanz>/Plone/zinstance/var/blobstorage/ /usr/local/www/Zope213/var/

ee /usr/local/etc/rc.d/zope213
echo 'export PATH=/usr/local/bin:/usr/local/libexec/xpdf:$PATH' >> /usr/local/etc/rc.d/zope213
### PATH variable von allen child prozessen ändern
pkg install -y wv xpdf py27-textile
ln -s /usr/local/libexec/xpdf/pdftotext /usr/local/bin/pdftotext

Instanz umziehen

auf der bisherigen Instanz mit ZFS Schnappschüsse (snapshots) erstellen

Namen vom snapshot (<NAME (of the volume)>) heraussuchen

zfs list

Erstellen von einem snapshot im laufenden Betrieb der Jail (Das ist nur pro-forma.)

mit date "+%Y-%m-%d-%H-%M-%S" einfach die Bezeichnung für den Zeitpunkt vom snapshot generieren lassen
zfs snapshot <NAME (of the volume)>@`date "+%Y-%m-%d-%H-%M-%S"`_running

ergänzendes Erstellen von einem rekursiven snapshot im laufenden Betrieb der Jail (Das ist nur pro-forma. Ein rekursiver ist eigentlich nur dann nötig, wenn unter dem volume mehrere weitere datasets liegen.)

zfs snapshot -r <NAME (of the volume)>@`date "+%Y-%m-%d-%H-%M-%S"`_running

Stoppen der Jail (srs1)

service jail stop srs1

Erneutes Erstellen von einem rekursiven snapshot und einem einfachen snapshot im angehalten Betrieb

zfs snapshot -r <NAME (of the volume)>@`date "+%Y-%m-%d-%H-%M-%S"`_stopped
zfs snapshot <NAME (of the volume)>@`date "+%Y-%m-%d-%H-%M-%S"`_stopped

prüfendes Auflisten lassen von snapshots mit der Bezeichnung der aktuellen und vorherigen Kalenderstunde

zfs list -t snapshot | grep -e `date "+%Y-%m-%d-%H"` -e `date -v-1H "+%Y-%m-%d-%H"`

Erneutes Starten der Jail (srs1)

Damn! Plone sollte vielleicht sanfter als durch das herunterfahren der Jail gestoppt werden.
service jail start srs1
jexec <JID> sh

service plone stop
service apache22 stop
service bacula-fd stop

Stoppen der Jail (srs1)

service jail stop srs1

Erneutes Erstellen von einem rekursiven snapshot und einem einfachen snapshot im angehalten Betrieb

zfs snapshot -r <NAME (of the volume)>@`date "+%Y-%m-%d-%H-%M-%S"`_plone-stopped
zfs snapshot <NAME (of the volume)>@`date "+%Y-%m-%d-%H-%M-%S"`_plone-stopped

Erneutes Starten der Jail (srs1)

service jail start srs1
Nun wird es ja langsam heiß! Der Index soll durch das alte Plone selbst und neu gebaut werden. (Das wurde seit Jahren nicht gemacht. Es ist ein alte Version von Plone auf einer altern Version von Zope und mit einer alten Version von Pythyon. Installieren können wir auch durch das Betriebssystem auch nichts mehr.)
http://www.stura.htw-dresden.de:8080/Plone/portal_catalog/manage_catalogAdvanced verfügbar
jexec <JID> sh

service plone stop
service apache22 stop
service bacula-fd stop

Stoppen der Jail (srs1)

service jail stop srs1

Pauschales hässlich hartes Kopieren (für ganz schlimme Fälle)

Im Übrigen kann vorher geschaut werden, ob noch eine Datei im Format zexp abgelegt ist. Diese Datei ist ein Datei zum kompletten Export der Instanz. (In unserem Fall kann sie gelöscht werden, da das Importieren nicht funktioniert. Diese so leider unnütze große Datei muss ja nicht unnütz kopiert werden.)
ls /usr/home/jails/srs1/usr/local/Plone/zinstance/var/instance/
scp -r -v -P <port-for-ssh-on-server> /usr/home/jails/srs1/usr/local/Plone root@<host>:/<path>
service jail start srs1
Der Index soll durch das alte Plone selbst und neu gebaut werden. Das wurde, bezugnehmend auf /usr/local/Plone/zinstance/var/log/instance.log gleich dreimal gemacht.
http://www.stura.htw-dresden.de:8080/Plone/portal_catalog/manage_catalogAdvanced verfügbar
Es kamen häufig die "Kleinigkeit", dass pdftotext nicht in /sbin:/bin:/usr/sbin:/usr/bin gefunden werden kann.
Das hätte ja mal installiert werden können! (In der veralteten Instanz kann aber nichts mehr nachträglich installiert werden.)
jexec <JID> sh

service plone stop
service apache22 stop
service bacula-fd stop

Stoppen der Jail (srs1)

service jail stop srs1

service jail start srs1

Nochmal kurz schauen, ob Plone noch startet

Läuft!
service jail stop srs1

Erneutes Erstellen von einem rekursiven snapshot und einem einfachen snapshot im angehalten Betrieb

zfs snapshot -r <NAME (of the volume)>@`date "+%Y-%m-%d-%H-%M-%S"`_plone-stopped
zfs snapshot <NAME (of the volume)>@`date "+%Y-%m-%d-%H-%M-%S"`_plone-stopped

Erneutes pauschales hässlich hartes Kopieren (für ganz schlimme Fälle)

scp -r -v -P <port-for-ssh-on-server> /usr/home/jails/srs1/usr/local/Plone root@<host>:/<(other) path>

neue Instanz, in die umgezogen werden soll

Schaffen der neuen Instanz (Jail FreeNAS 9.3)
pkg upgrade -y 
pkg install -y zsh
zsh
pkg install -y plone 
/usr/local/bin/mkzopeinstance --dir /usr/local/www/Zope213/
chown www:www /usr/local/www/Zope213/var
chown www:www /usr/local/www/Zope213/log
echo 'zope213_enable="YES"' >> /etc/rc.conf 
echo '#zope213_instances="<INSTANCEDIR>"' >> /etc/rc.conf

Neustart!

Schauen, ob auf dem standardmäßigen Port 8080 Plone verfügbar wird.

service zope213 stop
pkg install -y wv xpdf py27-textile py27-lxml freetype py27-graphviz
ln -s /usr/local/libexec/xpdf/pdftotext /usr/local/bin/pdftotext 
ln -s /usr/local/include/freetype2 /usr/local/include/freetype
muss aber direkt zum starten
echo 'export PATH=/usr/local/bin:$PATH' >> /usr/local/etc/rc.d/zope213

(wegen i18n) pauschal

chown -R www:www /…/python
Schmerzen und Linderung
Problem
ERROR Zope.SiteErrorLog […]:8080/Plone/welcome/document_view
Traceback (innermost last):
  Module ZPublisher.Publish, line 138, in publish
  Module ZPublisher.mapply, line 77, in mapply
  Module ZPublisher.Publish, line 48, in call_object
  Module Shared.DC.Scripts.Bindings, line 322, in __call__
  Module Shared.DC.Scripts.Bindings, line 359, in _bindAndExec
  Module Products.CMFCore.FSPageTemplate, line 237, in _exec
  Module Products.CMFCore.FSPageTemplate, line 177, in pt_render
  Module Products.PageTemplates.PageTemplate, line 87, in pt_render
  Module zope.pagetemplate.pagetemplate, line 132, in pt_render
  Module zope.pagetemplate.pagetemplate, line 240, in __call__
  Module zope.tal.talinterpreter, line 266, in __call__
  Module zope.tal.talinterpreter, line 338, in interpret
  Module zope.tal.talinterpreter, line 883, in do_useMacro
  Module zope.tal.talinterpreter, line 338, in interpret
  Module zope.tal.talinterpreter, line 528, in do_optTag_tal
  Module zope.tal.talinterpreter, line 513, in do_optTag
  Module zope.tal.talinterpreter, line 508, in no_tag
  Module zope.tal.talinterpreter, line 338, in interpret
  Module zope.tal.talinterpreter, line 847, in do_condition
  Module zope.tal.talinterpreter, line 338, in interpret
  Module zope.tal.talinterpreter, line 528, in do_optTag_tal
  Module zope.tal.talinterpreter, line 513, in do_optTag
  Module zope.tal.talinterpreter, line 508, in no_tag
  Module zope.tal.talinterpreter, line 338, in interpret
  Module zope.tal.talinterpreter, line 526, in do_optTag_tal
  Module zope.tal.talinterpreter, line 508, in no_tag
  Module zope.tal.talinterpreter, line 338, in interpret
  Module zope.tal.talinterpreter, line 737, in do_insertStructure_tal
  Module Products.PageTemplates.Expressions, line 218, in evaluateStructure
  Module zope.tales.tales, line 696, in evaluate
   - URL: file:/usr/local/lib/python2.7/site-packages/plonetheme/sunburst/skins/sunburst_templates/main_template.pt
   - Line 32, Column 8
   - Expression: <StringExpr u'plone.htmlhead.links'>
   - Names:
      {'container': <PloneSite at /Plone>,
       'context': <ATDocument at /Plone/welcome>,
       'default': <object object at 0x80069e540>,
       'here': <ATDocument at /Plone/welcome>,
       'loop': {},
       'nothing': None,
       'options': {'args': ()},
       'repeat': <Products.PageTemplates.Expressions.SafeMapping object at 0x814ccd470>,
       'request': <HTTPRequest, URL=http://141.56.50.71:8080/Plone/welcome/document_view>,
       'root': <Application at >,
       'template': <FSPageTemplate at /Plone/document_view used for /Plone/welcome>,
       'traverse_subpath': [],
       'user': <User 'administration'>}
  Module zope.contentprovider.tales, line 77, in __call__
  Module zope.viewlet.manager, line 112, in update
  Module zope.viewlet.manager, line 118, in _updateViewlets
  Module five.customerize.zpt, line 135, in update
  Module five.customerize.zpt, line 167, in _getViewlet
  Module ZODB.broken, line 106, in __new__
TypeError: object.__new__(TTWViewlet) is not safe, use Persistence.Persistent.__new__()
ERROR root Exception while rendering an error message
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/OFS/SimpleItem.py", line 242, in raise_standardErrorMessage
    v = s(**kwargs)
  File "/usr/local/lib/python2.7/site-packages/Products/CMFCore/FSPythonScript.py", line 127, in __call__
    return Script.__call__(self, *args, **kw)
  File "/usr/local/lib/python2.7/site-packages/Shared/DC/Scripts/Bindings.py", line 322, in __call__
    return self._bindAndExec(args, kw, None)
  File "/usr/local/lib/python2.7/site-packages/Shared/DC/Scripts/Bindings.py", line 359, in _bindAndExec
    return self._exec(bound_data, args, kw)
  File "/usr/local/lib/python2.7/site-packages/Products/PythonScripts/PythonScript.py", line 344, in _exec
    result = f(*args, **kw)
  File "Script (Python)", line 35, in standard_error_message
  File "/usr/local/lib/python2.7/site-packages/Shared/DC/Scripts/Bindings.py", line 322, in __call__
    return self._bindAndExec(args, kw, None)
  File "/usr/local/lib/python2.7/site-packages/Shared/DC/Scripts/Bindings.py", line 359, in _bindAndExec
    return self._exec(bound_data, args, kw)
  File "/usr/local/lib/python2.7/site-packages/Products/CMFCore/FSPageTemplate.py", line 237, in _exec
    result = self.pt_render(extra_context=bound_names)
  File "/usr/local/lib/python2.7/site-packages/Products/CMFCore/FSPageTemplate.py", line 177, in pt_render
    self, source, extra_context
  File "/usr/local/lib/python2.7/site-packages/Products/PageTemplates/PageTemplate.py", line 87, in pt_render
    showtal=showtal)
  File "/usr/local/lib/python2.7/site-packages/zope/pagetemplate/pagetemplate.py", line 132, in pt_render
    strictinsert=0, sourceAnnotations=sourceAnnotations
  File "/usr/local/lib/python2.7/site-packages/zope/pagetemplate/pagetemplate.py", line 240, in __call__
    interpreter()
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 266, in __call__
    self.interpret(self.program)
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 338, in interpret
    handlers[opcode](self, args)
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 883, in do_useMacro
    self.interpret(macro)
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 338, in interpret
    handlers[opcode](self, args)
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 528, in do_optTag_tal
    self.do_optTag(stuff)
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 513, in do_optTag
    return self.no_tag(start, program)
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 508, in no_tag
    self.interpret(program)
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 338, in interpret
    handlers[opcode](self, args)
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 847, in do_condition
    self.interpret(block)
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 338, in interpret
    handlers[opcode](self, args)
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 528, in do_optTag_tal
    self.do_optTag(stuff)
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 513, in do_optTag
    return self.no_tag(start, program)
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 508, in no_tag
    self.interpret(program)
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 338, in interpret
    handlers[opcode](self, args)
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 526, in do_optTag_tal
    self.no_tag(stuff[-2], stuff[-1])
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 508, in no_tag
    self.interpret(program)
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 338, in interpret
    handlers[opcode](self, args)
  File "/usr/local/lib/python2.7/site-packages/zope/tal/talinterpreter.py", line 737, in do_insertStructure_tal
    structure = self.engine.evaluateStructure(expr)
  File "/usr/local/lib/python2.7/site-packages/Products/PageTemplates/Expressions.py", line 218, in evaluateStructure
    text = super(ZopeContext, self).evaluateStructure(expr)
  File "/usr/local/lib/python2.7/site-packages/zope/tales/tales.py", line 696, in evaluate
    return expression(self)
  File "/usr/local/lib/python2.7/site-packages/zope/contentprovider/tales.py", line 77, in __call__
    provider.update()
  File "/usr/local/lib/python2.7/site-packages/zope/viewlet/manager.py", line 112, in update
    self._updateViewlets()
  File "/usr/local/lib/python2.7/site-packages/zope/viewlet/manager.py", line 118, in _updateViewlets
    viewlet.update()
  File "/usr/local/lib/python2.7/site-packages/five/customerize/zpt.py", line 135, in update
    self._getViewlet().update()
  File "/usr/local/lib/python2.7/site-packages/five/customerize/zpt.py", line 167, in _getViewlet
    self.viewlet = TTWViewlet(self.context, self.request, self.view, self.manager)
  File "/usr/local/lib/python2.7/site-packages/ZODB/broken.py", line 106, in __new__
    result = object.__new__(class_)
TypeError: object.__new__(TTWViewlet) is not safe, use Persistence.Persistent.__new__()
Lösung (quick and dirty)
$EDITOR /usr/local/lib/python2.7/site-packages/plonetheme/sunburst/skins/sunburst_templates/main_template.pt
       <!-- <link tal:replace="structure provider:plone.htmlhead.links" />
-->

Einziehen

Neustarten der Jail (gleich via http)!

oder notfalls
service jail onestart srs1

noch zu Renovieren

WARNING OFS.Uninstalled Could not import class 'NavigationViewlet' from module 'plone.app.layout.links.viewlets'