2014-11-13 52 views
-1

我对CGI很新,想给他们一个尝试。这是我的情况: 我的网站托管在Linux服务器上,我已联系托管公司,他们说,只要我使用cgi-bin文件夹,就没有问题。所以我写了一个很短的C++程序,只是输出一些文字:在linux服务器上的C++ cgi

#include <iostream> 

using namespace std; 

int main() 
{ 
cout << "Hello from c++ cgi"; 

return 0; 
} 

自Linux服务器(和我运行Windows),我想我需要编译的Linux源这样一个安装在虚拟机运行Ubuntu Linux系统。然后我编译源码(在Ubuntu中测试它)并将二进制文件放入cgi-bin文件夹中。然后我用一个简单的HTML锚链接到它:

<a href="cgi-bin/cgiTest">T</a> 

但是当我点击我的页面上的链接我得到的“500内部服务器错误”的消息。我也尝试将二进制文件重命名为“cgiTest.cgi”并更新链接,但仍然是同样的问题。

任何人有任何想法,我的问题在哪里?

回答

0

感谢您的帮助,结果发现我不得不改变权限和托管服务器是32位,而我在64位Ubuntu的编译。我现在编译了32位Ubuntu和瞧!它的运行。感谢所有人在解决这个问题上的帮助!

1

你忘了输出任何HTTP标题(错误日志条目会给你一个提示)。

#include <iostream> 

using namespace std; 

int main() 
{ 
cout << "Content-Type: text/plain" << endl << endl; 
cout << "Hello from c++ cgi"; 

return 0; 
} 
+0

谢谢,我已经添加了标题,但仍然遇到同样的问题。错误日志报告“文件不存在”,但确实如此,并且我已经加倍检查了路径,所有这些看起来都不错。我也再次寄给托管公司,说明我的问题。 – Avalan

+0

您是否更改了文件的权限? CGI脚本需要是可执行的,而不是世界可写的。 –