📜  compil cywin cgi - C 编程语言(1)

📅  最后修改于: 2023-12-03 15:14:13.569000             🧑  作者: Mango

在Cywin上编译和运行CGI程序

什么是CGI?

CGI是一种通用的协议,用于在Web服务器和应用程序服务器之间传递数据。它允许Web服务器调用并运行外部程序,这些程序会生成动态内容,并将其传回Web服务器,然后返回给客户端浏览器。

在Cywin上编译CGI程序

Cywin是在Windows操作系统上运行的一个开源技术,它提供了一个类Unix的环境,使在Windows系统上开发和部署Unix应用程序变得更加容易。

安装编译器

在编译CGI程序之前,我们需要安装C编译器。在Cywin中,有几个不同的C编译器可供选择,包括GCC、Clang和TDM-GCC。

由于GCC被广泛使用,我们将倾向于使用它。我们可以使用以下命令安装GCC编译器:

apt-cyg update
apt-cyg install gcc-core
编写CGI程序

我们现在可以编写一个简单的CGI程序,并将其存储在Web服务器的CGI目录中。下面是一个简单的CGI程序示例,它会向客户端发送"Hello World!"消息:

#include <stdio.h>

int main()
{
    printf("Content-type:text/html\n\n");
    printf("<html>\n");
    printf("<head>\n");
    printf("<title>Hello World!</title>\n");
    printf("</head>\n");
    printf("<body>\n");
    printf("<h1>Hello World!</h1>\n");
    printf("</body>\n");
    printf("</html>\n");
    return 0;
}
编译CGI程序

我们可以使用以下命令来编译包含CGI程序源代码的C文件:

gcc -o hello.cgi hello.c

此命令将生成一个名为“hello.cgi”的可执行文件,它可以将CGI请求返回给Web服务器和客户端。

运行CGI程序

要运行CGI程序,我们必须将它放置在Web服务器的CGI目录中,该目录通常在服务器的/var/www/cgi-bin/目录中。

下面是一些CGI程序主要的Web服务器(如Apache)配置:

ScriptAlias /cgi-bin/ "C:/cygwin64/apache2/cgi-bin/"
<Directory "C:/cygwin64/apache2/cgi-bin/">
   AllowOverride None
   Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
   Require all granted
</Directory>

我们需要将CGI程序移到上述位置:

cp hello.cgi /var/www/cgi-bin/

我们还需要为此文件设置执行权限:

chmod +x /var/www/cgi-bin/hello.cgi

现在我们可以通过浏览器访问CGI脚本/程序:

http://localhost/cgi-bin/hello.cgi

页面会显示一个标题为“Hello World”的网页。

结论

通过Cywin和C编译器,我们可以轻松编译和运行CGI程序,使Web服务器和客户端间的交互变得更加灵活和功能强大。