【发布时间】:2013-02-25 03:54:00
【问题描述】:
通过统一安装程序将 Plone 4.2.3 安装为独立 Zope 实例 运行 CentOS 5.9 版的机器。那台机器的本地IP地址是 192.168.1.10。我在 buildout.cfg 中所做的唯一更改是:
http-address = 192.168.1.10:8080
然后从/usr/local/Plone-4.2.3/zinstance/ 成功运行./bin/buildout。
没有其他进程监听 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”后 19 秒 ZServer HTTP 服务器已启动”条目。大约 8 秒后,下一个条目是 另一个“INFO ZServer HTTP 服务器已启动”。
问题:为什么 ZServer 进程会死掉?
如果 fg 模式和 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 行
导入错误:/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 ticket 有关:
13426(lxml 错误:未定义符号:带有 Plone-4.2 的clock_gettime ...
和
13409(使用 UnifiedInstaller 安装 Plone 4.2.3 时出现问题)– Plone ...
已选中 /usr/local/Plone-4.2.3/buildout-cache/eggs/lxml-2.3.4-py2.7-linux-i686.egg/lxml/etree.so 使用 nm 并且输出中仅出现 clock_gettime 是:
0008a130 T callLookupFallback Uclock_gettime 你关闭
"T" 符号在文本(代码)部分。 "U" 符号未定义。
Google 搜索 (linux clock_gettime) 找到
https://bbs.archlinux.org/viewtopic.php?id=88108 和
Ubuntu Linux C++ error: undefined reference to 'clock_gettime' and 'clock_settime'
两者都说将 -lrt 添加到您链接到的库的(末尾)列表中 将解决问题。我在看 Plone-4.2.3-UnifiedInstaller/base_skeleton/lxml_static.cfg。那种 make 文件对我来说并不熟悉。不知道下一步该做什么。
【问题讨论】:
-
我最喜欢的是对 blobstorage 或文件存储的错误权限。如果您以调试模式启动服务器(即
bin/plonectl fg),您会获得更多有用的信息吗? -
请在
fg模式下运行服务器,并告诉我们控制台打印的内容:/usr/bin/sudo -u plone /usr/local/Plone-4.2.3/zinstance/bin/plonectl start。 -
@pete johnson:我想知道,如果将 IP 包含在“http-address”变量中,而不是像往常一样仅命名端口,这可能是个问题。这样做是否有令人信服的理由?
标签: plone