FastCGI脚本在Apache 2.4.6和mod_fastcgi中无法找到libfcgi.so.0。
这是我简单的hello-world fastcgi脚本,用c. 编写 #include "fcgi_stdio.h" #include void main(void) { int count = 0; while(FCGI_Accept() >= 0) printf("Content-type: text/html\r\n" "\r\n" "FastCGI Hello!" " FastCGI Hello! " "Request number %d running on host %s\n", ++count, getenv("SERVER_NAME")); } 如果我使用静态链接对其进行编译. gcc -o "test.fcg" "test.c" /usr/local/lib
0 2024-04-10
编程技术问答社区
脚本输出在标题前结束 Apache 2.4 错误
我们刚刚从2.2升级到Apache 2.4,我们的FastCGI应用程序现在导致错误消息"在标题之前的脚本输出结束". 所有的应用程序和图书馆都在C中使用,使用Fastcgi.com的最新库进行了重新编译,它们在升级之前正常工作. 关于问题原因的任何线索将不胜感激. 服务器是Fedora 19 事实证明,问题是一个共享对象文件,该文件不是正确的版本.由于某些奇怪的原因,错误未显示在日志中. 所以,应该关闭问题. 解决方案 事实证明,问题是一个共享对象文件,该文件不是正确的版本.由于某些奇怪的原因,错误未显示在日志中.
0 2024-04-10
编程技术问答社区
FastCGI清理代码在windows下不工作
使用mod_fastcgi在Windows Server上使用Apache,C代码看起来像: void main() { init(); while (FCGI_Accept() >= 0) work(); cleanup(); } 当将服务取下(即:net stop apache2)时,该过程将终止而无需进入清理代码. 我在这里缺少什么? 解决方案 似乎是从阅读FCGI_Accept manpage和此常见问题在Apache关闭的情况下,FCGI_Accept实际上不会返回-1.尝试为Sigusr1和Sigterm设置信号处理程序.有一个示例(不是特定于Windows的示例,但值得一试)发布了一段时间在邮件列表中,此处. 其他解决方案 过早退出的唯一方法是在work()()(或fcgi_accept()...)中调用" exit()" 编辑: 如果您认为可能是fcgi_accept(),请尝试使用one
2 2024-04-09
编程技术问答社区
如何学习C语言调试和最佳实践
我已经在C中写了一个Apache模块.在某些条件下,我可以将其带到Segfault,但我不知道为什么.此时,这可能是我的代码,这可能是我正在编译程序的方式,也可能是OS库中的错误(Segfault发生在拨打Dlopen())中. 我尝试通过GDB和Valgrind跑步而没有成功. GDB向我带来了毫无意义的Dlopen()系统调用.在Valgrind中,该错误实际上似乎消失了或至少变得不可复制.另一方面,当涉及这些工具时,我是一名新手. 我对生产质量C编程有点陌生(我从很多年前开始使用C,但从未从事过专业工作.)对于我学习调试程序的绳索的最佳方法是什么?我还应该调查其他哪些工具?总而言之,您如何弄清楚如何应对新的错误挑战? 编辑: 只是为了澄清,我要感谢Sydius和DMCkee的意见.我看了看Apache的指南,对Dlopen(以及DLSYM和DLCLOSE)非常熟悉.我的模块在大多数情况下工作(大约是3K的代码行,只要我不激活这一部分,事情似乎就可以了.) )
4 2024-04-08
编程技术问答社区
AuthnProviderAlias ldap能否与Apache2.4.x一起工作?
这在apache2.2中完美地工作,但在2.4中效果不佳(并且i 需要现在使用2.4): AuthLDAPBindDN cn=Manager,dc=example,dc=com AuthLDAPBindPassword xxxx AuthLDAPURL ldap://localhost:9011/dc=example,dc=com?uid?sub?(objectClass=*) Listen 48443 Options +ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch AllowOverride All order allow,deny
0 2024-04-08
编程技术问答社区
C/C++中的高性能应用网络服务器
C ++? 我希望能够使用它,因为它使用填充的HTTP请求类/结构来调用我的应用程序中的方法/函数,然后我可以将填充的HTTP响应类/结构返回到它. 如果它不是开源的,我需要构建以支持长以长音连接,保持贴生等 - 否则,我认为我可以自己添加这些东西. 如果您不知道可用的任何此类服务器,您是否建议编写自己的Web服务器以适合任务?它不能基于文件,并且必须以高性能C/C ++写入. 编辑:如果有帮助的话,我正在考虑类似C的Ruby Mongrel. 解决方案 我对工作的要求非常相同,因此我评估了许多解决方案:Mongoose,libmicrohttpd,libevent.我还在考虑编写Nginx模块.这是我发现的摘要: nginx nginx项目页面 我喜欢这台服务器并非常使用它.它的性能和资源使用量比Apache要好得多,Apache我仍然使用,但计划迁移到Nginx. . 非常好的可调性能.丰富的功能.可移植性. 模块API没有记录,似
2 2024-04-07
编程技术问答社区
在Windows上启动一个精简型集群
我在计算机上有一个Ruby应用程序,我正在尝试使用批处理脚本部署.我已经完成了服务器处理的所有内容.这就是我正在使用的: cd to/path/of/app thin start -p 3001 这有效. cd to/path/of/app thin start --servers 3 按照 http://code.macournoyer.com/thin/usage/,不起作用.我遇到了一个错误" lib/thin/runner.rb:142:in'parse!':无效选项: - 服务器" 知道为什么这不起作用吗? 解决方案 在lib/thin/runner.rb中的第88行>上说# Daemonizing not supported on Windows :(
2 2024-04-05
编程技术问答社区
为Apache ANT启用javac调试功能
只是一个简单的问题.对于蚂蚁构建,如果我将debuglevel参数完全放在完全中,它将通过所有调试信息进行编译吗?还是最好在Javac任务中加入debuglevel="lines,vars,source"?我想实现最大的调试水平.这是一个片段: optimize="${javac.optimize}"> 解决方案 简短答案:是的,只要将debug属性设置为true,就可以将debuglevel属性留出. 来自 javac Ant task 文档
4 2024-04-05
编程技术问答社区
无法找到tools.jar的位置
可能的重复: 无法找到工具. 我正在尝试使用ANT使用此命令进行编译: ant compile 我不知道问题是来自我的Windows 64bit还是其他东西.因为我在64和32 PROG文件中安装了Java. 我下载了apache-ant-1.8.2-bin,然后将其放入C:\ Program Files \ Apache-ant-1.8.2 我试图将蚂蚁到处放置,我还切换了Java 64和32之间的ENV路径,但是每次收到此错误消息: 无法找到工具.希望在C中找到它:\ program 文件\ java \ jre6 \ lib \ tools.jar 我在Java 64和32中的Ant Lib文件夹中搜索了工具. 您怎么看? 解决方案 JRE没有工具.Jar,您需要JDK.设置您的java_home和路径变量,以便它们指向JDK,而不是JRE. 其他解决方案 我也有类似的问题,并通过以下内容解决了, 1)将java_ho
2 2024-04-04
编程技术问答社区
在Java程序中使用Apache Ant APIs,以编程方式构建源文件
我正在寻找可以有效地使用蚂蚁API的良好和实用的资源.项目网站仅提供API的文档,这根本没有用.很少有网站对此主题提供了非常简短的教程. 我是否有一些我错过的资源?如何将蚂蚁API用于简单任务,而不花费数小时浏览它们并查看源代码? 谢谢. (对先前被问到的问题的回答无济于事-gahref="https://stackoverflow.com/questions/4085002/how-can-i-i-is-i-i-i-i-i-is-i-i-i-i-is-apache-ant-programantel">如何使用apache ant编程) 事实证明, 解决方案 缺乏使用蚂蚁API的良好资源是已知和意图的. 的底部段 您可能在这一点上可能问自己的问题是:我怎么知道必须调用哪些类和方法才能设置虚拟项目和目标?答案是:您不.最终,您必须愿意弄湿并阅读源代码.上面的示例仅仅是为了激发您的食欲并使您入门.去吧! 所以这似乎是最佳使用API​​的唯一方法. 其他解
2 2024-04-04
编程技术问答社区
归档opentok音频/视频聊天时出现问题
我试图与Opentok API配置音频/视频聊天和归档音频/视频聊天.我已经成功配置了与Opentok的音频/视频聊天,但无法执行存档. 获取以下问题: 错误:任务执行失败 ':app:packagealldebugclassesformultidex'. java.util.zip.zipexception:重复条目: org/apache/commons/collections/arraystack.class 这是我的库:​​ 以下是我的依赖性: dependencies { //compile project(':androidConferenceWebRTC') compile project(':countryPicker') compile project(':customEmoji') compile project(':sugar') compile fileTree(dir: 'libs',
2 2024-04-04
编程技术问答社区
如何将Apache HTTP API (legacy)作为编译时的依赖项添加到Android M的build.grade中?
如前所述在这里将不支持Apache HTTP API.文档说: 改用httpurlconnection类. 或 要继续使用Apache HTTP API,您必须首先在build.gradle文件中声明以下编译时依赖关系: android {uselibrary'org.apache.http.legacy' } 我已经将项目的大部分用法转换为httpurlconnection,但是,我仍然需要需要在一些领域中使用httpclient.因此,我试图将'org.apache.http.legacy'声明为编译时依赖性,但在build.gradle中遇到错误: 找不到Gradle DSL方法:'UseLibrary()' 我的问题是:如何将'org.apache.http.legacy'声明为我项目的编译时间依赖性? 任何帮助都非常感谢.谢谢 解决方案 for API 23: 顶级build.gradle-/build.gradle
2 2024-04-04
编程技术问答社区
apache2构建在yocto中失败--"/usr/local/include "对交叉编译不安全 [-Wpoison-system-directories]
我试图在yocto上构建apache2. 但是我要低于错误. 错误:此autoconf日志指示错误,它在确定系统功能时查看主机包括和/或库路径. 修复此任务后,重新运行配置任务. 一些谷歌搜索导致我 所以我研究了conf.log并找出这些行: cc1: warning: include location "/usr/local/include" is unsafe for cross-compilation [-Wpoison-system-directories] arm-poky-linux-gnueabi/4.9.2/ld: warning: library search path "/usr/local/lib" is unsafe for cross-compilation 我再次谷歌搜索,但我还不理解3件事: 为什么将路径设置为本地路径? 为什么只有在构建apache2 [我可以构建ngnix,cryptsetup等时才会出现此错误.] 我
2 2024-04-04
编程技术问答社区
在Ubuntu上安装Mahout时Maven BUILD FAILURE
我正在尝试在Ubuntu 12.04中构建Mahout,但在Windows 7主机计算机上运行的虚拟机上. Maven似乎不喜欢这样,我真的不明白如何解决问题.这是长期构建测试的结果: 结果: 测试失败: SearchSanityTest.testRemoval:166->Assert.assertEquals:494->Assert.failNotEquals:743->Assert.fail:88 Previous second neighbor should be first expected: but was: Tests run: 834, Failures: 1, Errors: 0, Skipped: 0 [INFO] Reactor Summary: [INFO] [INFO] Apache Mahout ..................................... SUCCESS
2 2024-04-04
编程技术问答社区
无法找到tools.jar的位置
可能的重复: 无法找到工具. 我正在尝试使用ANT使用此命令进行编译: ant compile 我不知道问题是来自我的Windows 64bit还是其他东西.因为我在64和32 PROG文件中安装了Java. 我下载了apache-ant-1.8.2-bin,然后将其放入C:\ Program Files \ Apache-ant-1.8.2 我试图将蚂蚁到处放置,我还切换了Java 64和32之间的ENV路径,但是每次收到此错误消息: 无法找到工具.希望在C中找到它:\ program 文件\ java \ jre6 \ lib \ tools.jar 我在Java 64和32中的Ant Lib文件夹中搜索了工具. 您怎么看? 解决方案 JRE没有工具.Jar,您需要JDK.设置您的java_home和路径变量,以便它们指向JDK,而不是JRE. 其他解决方案 我也有类似的问题,并通过以下内容解决了, 1)将java_ho
2 2024-04-04
编程技术问答社区
在Apache HttpClient中设置套接字缓冲区大小
如何在Apache HTTPClient版本4.3.3中设置套接字缓冲区大小? 解决方案 HttpClient client = new DefaultHttpClient(); client.getParams().setParameter(CoreConnectionPNames.SOCKET_BUFFER_SIZE, 128 * 1024); HttpPost post = new HttpPost(url); String res = null; try { post.addHeader("Connection", "Keep-Alive"); post.addHeader("Content-Name", selectedFile.getName()); post.setEntity(new ByteArrayEntity(fileBytes)); HttpResponse
6 2024-04-04
编程技术问答社区
如何禁用apache2和mod_proxy_fcgi的缓冲功能?
我在Debian Jessie上使用mod_proxy_fcgi与我的C ++应用程序一起使用apache 2.4,该应用程序与libfcgipp一起使用ServerSentEvents. 我的问题是,Apache仍然缓冲我的响应数据.我确认Libfcgipp库没有使用Wireshark来缓冲它:通过spawn-fcgi启动FCGI应用程序后,数据将尽快发送到Apache Web服务器.但是在我的浏览器中(我用于测试,后来将有一个C ++客户端),它仅在"杀死"/关闭服务器应用程序中的发送请求后出现. 所以我假设我需要禁用Apache或Mod_proxy_fcgi(或两者)的缓冲.但是我找不到有关如何执行此操作的适当文档. 解决方案 作为 a随后在httpd-dev邮件列表上进行了讨论,将对flushpackets>和flushwait的支持添加到mod_proxy_fcgi in r1802040 和backport for apache 2.4.31 in r18
0 2024-04-04
编程技术问答社区