如何将c程序转换为cgi?

how to convert c program to cgi?

我尝试 运行 一个打印 hello world 的简单 cgi 程序。
HTML:

< a href="url/cgi-bin/hello.cgi">click< /a>

c:

int main(int argc, char *argv[])
{
    printf("Content-type: text/html\n\n");  
    printf("<html>");
    printf("<head>");
    printf("<title>Test</title>");
    printf("</head>");
    printf("<body>");
    printf("<p>Hello world!</p>");
    printf("</body>");
    printf("</html>\n");
    return 0;
}

我在终端创建cgi文件:gcc hello.c -o hello.cgi

但是当我将文件放入服务器时,出现 404 错误。

您收到 404 错误是因为您在 HTML.

中使用了相对路径(即使您尝试使用绝对路径)

你的HTML代码如下(根据评论中的link):

<a href="www.websiteamit.bugs3.com/cgi-bin/hello.cgi">click</a>

当你点击它时,浏览器认为你想去http://www.websiteamit.bugs3.com/www.websiteamit.bugs3.com/cgi-bin/hello.cgi。当然哪个不存在,所以你得到一个 404。如果你在你的 www 前面添加 http://,它将转到服务器上的正确路径。

但是,您的服务器未正确配置 运行 CGI 程序 - 而是将文件作为下载提供。您网站的配置严重损坏。您需要告诉网络服务器 运行 该程序作为 CGI 而不是下载它 - 通过创建 .htaccess 文件,我猜,但很难排除故障。检查 this page 如何编写一个对所有扩展名为 .cgi 的文件执行 CGI 的程序。该脚本还需要设置执行权限 - 尝试使用托管包提供的 Web SSH 控制台在脚本上设置这些权限。