CGI动态网站技术
2020-03-13 14:00:28
安装Apache
```
$ sudo apt install -y apache2
$ sudo service apache2 start
$ curl http://127.0.0.1/
$ sudo service apache2 stop
```
用浏览器访问 http://127.0.0.1/ 可以看到apache的欢迎页面,在这个页面可以得到很多有用的信息
首先告诉我们,当前看到的这个页面,文件在 `/var/www/html/index.html`
然后告诉我们,Ubuntu的Apache2默认配置与默认配置不同,分为多个文件
> apache2.conf 主配置文件
> *-available 一些可用的配置文件片段
如果需要启用什么功能,就创建一个软链接
启用Apache的cgi支持
```
$ cd /etc/apache2/mods-enabled/
$ ls
# 创建软链接 (注意不要使用相对路径)
$ sudo ln -s /etc/apache2/mods-available/cgid.conf /etc/apache2/mods-enabled/
$ sudo ln -s /etc/apache2/mods-available/cgid.load /etc/apache2/mods-enabled/
```
```
$ sudo vi /etc/apache2/sites-enabled/000-default.conf
# 启用cgi配置,将下面这行配置前的#号删除
Include conf-available/serve-cgi-bin.conf
$ sudo vi /etc/apache2/conf-available/serve-cgi-bin.conf
# 可以看到 cgi程序默认目录在 /usr/lib/cgi-bin/
$ cd /usr/lib/cgi-bin/
$ sudo vi hello.c
```
hello.c内容如下
```c
#include <stdio.h>
int main(){
printf("Content-Type: text/html\n\n");
printf("Hello World!");
return 0;
}
```
```shell
# 编译
$ sudo gcc hello.c -o hello.cgi
# 重启Apache
$ sudo service apache2 restart
```
浏览器访问
http://127.0.0.1/cgi-bin/hello.cgi