执行摘要:Apache默默地无法通过SSI包含,其中包含的HTML由与SQLite和/或pthreads链接的C ++程序生成。 SSI包含在C ++不使用SQLite时工作。
更长的版本:我有两个非常相似的C ++程序,它们产生SSI虚拟包含所需的输出。两者都为HTML select
生成了大约100个选项的列表。其中一个包含按预期工作,但另一个无效。
A
)是简单的独立C ++代码,它使用STL生成一个字符串,写入cout
;没问题。B
)稍微复杂一些。这是混合的
C和C ++,包括一个嵌入式SQLite
数据库,通过C API与它交谈。 SQLite也使用pthreads。B
在链接到静态和动态SQLite代码时都会失败。静态和动态版本都依赖于pthreads共享库。B
时不会在错误日志中生成任何内容,但它也不会将任何内容替换为HTML select
。我可以轻松地让Apache生产
错误消息(通过在HTML中指定错误的可执行文件名称)
例如#include
所以我很确定Apache会这样做
实际上至少尝试执行该程序。A
和B
都是valgrind-clean。ScriptLog
中获得任何输出,因此我可能错误地设置了它。我已将LogLevel
设置为debug
,但它仍然没有告诉我有关脚本执行的任何信息。有什么想法吗?感谢。
答案 0 :(得分:0)
su
编辑给Apache用户,然后手动运行CGI程序,则会返回400错误消息。但是,即使将error.log
设置为LogLevel
,也无法访问Apache debug
,并且我无法获得任何ScriptLog
输出,并且firebug不会在网络标签中显示任何内容。当我更改目录权限时,一切正常。