通过统一安装程序在运行 CentOS 5.9 版的机器上安装 Plone 4.2.3 作为独立 Zope 实例。那台机器的本地 IP 地址是 192.168.1.10。我在 buildout.cfg 中所做的唯一更改是:
http-address = 192.168.1.10:8080
然后成功地./bin/buildout
从/usr/local/Plone-4.2.3/zinstance/
. 没有其他进程在端口 8080 上侦听。成功启动 Plone:
# pwd; date; /usr/bin/sudo -u plone /usr/local/Plone-4.2.3/zinstance/bin/plonectl start
/usr/local/Plone-4.2.3
Sun Feb 24 14:12:06 EST 2013
instance: . .
daemon process started, pid=2687
问题是 ZServer 大约每 25 到 30 秒就会停止并启动另一个,因此无法使用。.../zinstance/var/log/instance.log 显示:
------
2013-02-24T14:12:31 INFO ZServer HTTP server started at Sun Feb 24 14:12:31 2013
Hostname: xxxxx
Port: 8080
------
2013-02-24T14:13:11 INFO ZServer HTTP server started at Sun Feb 24 14:13:11 2013
Hostname: xxxxx
Port: 8080
------
2013-02-24T14:13:39 INFO ZServer HTTP server started at Sun Feb 24 14:13:39 2013
Hostname: xxxxx
Port: 8080
------
2013-02-24T14:14:09 INFO ZServer HTTP server started at Sun Feb 24 14:14:09 2013
Hostname: xxxxx
Port: 8080
并且更多此类条目会不断添加到日志文件中。
.../zinstance/parts/instance/etc/zope.conf
然后我将事件日志级别从 INFO 更改为ALL并设置“ zserver-threads 1
”然后停止并启动 Plone。
ZServer 再次在 25 到 30 秒后死亡,另一个 ZServer 启动,它在 25-30 秒后死亡,等等。instance.log 中的所有条目都是 DEBUG 级别。对于给定的 ZServer,最后一个日志条目的日期约为。其“INFO ZServer HTTP 服务器已启动”条目后 19 秒。大约。8 秒后,下一个条目是另一个“INFO ZServer HTTP 服务器已启动”。
问题:为什么 ZServer 进程会死掉?
Ran server if fg mode 和 ZServer 死前的最后几个错误是:
zope.configuration.xmlconfig.ZopeXMLConfigurationError:文件“/usr/local/Plone-4.2.3/zinstance/parts/instance/etc/site.zcml”,第 16.2-16.23 行
ZopeXMLConfigurationError:文件“/usr/local/Plone-4.2.3/buildout-cache/eggs/Products.CMFPlone-4.2.3-py2.7.egg/Products/CMFPlone/configure.zcml”,第 102.4-106.10 行
ZopeXMLConfigurationError:文件“/usr/local/Plone-4.2.3/buildout-cache/eggs/plone.app.theming-1.0.4-py2.7.egg/plone/app/theming/configure.zcml”,第 19.4 行-19.34
ZopeXMLConfigurationError:文件“/usr/local/Plone-4.2.3/buildout-cache/eggs/plone.app.theming-1.0.4-py2.7.egg/plone/app/theming/browser/configure.zcml”, 12.4-18.10 行
ImportError:/usr/local/Plone-4.2.3/buildout-cache/eggs/lxml-2.3.4-py2.7-linux-i686.egg/lxml/etree.so:未定义符号:clock_gettime
clock_gettime 错误显然与 dev plone org 票证有关:
13426(lxml 错误:未定义的符号:带有 Plone-4.2 的clock_gettime ...
和
13409(使用 UnifiedInstaller 安装 Plone 4.2.3 时出现问题)– Plone ...
用 nm 检查 /usr/local/Plone-4.2.3/buildout-cache/eggs/lxml-2.3.4-py2.7-linux-i686.egg/lxml/etree.so 并且输出中仅出现 clock_gettime 是:
0008a130 T callLookupFallback U clock_gettime U close
“T”符号在文本(代码)部分。"U" 符号未定义。
谷歌搜索 (linux clock_gettime) 找到
https://bbs.archlinux.org/viewtopic.php?id=88108和
Ubuntu Linux C++ 错误:未定义对“clock_gettime”和“clock_settime”的引用
两者都说将 -lrt 添加到您链接到的库的(末尾)列表中将解决问题。我查看了 Plone-4.2.3-UnifiedInstaller/base_skeleton/lxml_static.cfg。这种make文件对我来说并不熟悉。不知道下一步该怎么做。