1

通过统一安装程序在运行 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文件对我来说并不熟悉。不知道下一步该怎么做。

4

1 回答 1

3

选择最新版本的 4.2.x 统一安装程序(撰写本文时为 4.2.4),它修复了 CentOS 上的 libxml2 构建。然后,在 ./install.sh 命令行上使用“--static-lxml”参数。

于 2013-02-25T15:26:08.980 回答