Ubuntu下配置Apache以及搭载CGI

在Windows下本身下载应用过Apache,在Linux下也用到了服务器,就选择了Apache。Apache的安装在Ubuntu下异常简单。html

1. 上网下载自动包安装web

sudo apt-get install apache2

2. 访问网址尝试安装是否成功apache

www.127.0.0.1 or http://localhost

成功的话将会出现Apache的欢迎页面vim

3. 启动Apache浏览器

/etc/init.d/apache2 start 

4. 重启Apache服务器

/etc/init.d/apache2 restart

5. 中止Apacheide

/etc/init.d/apache2 stop

好了,服务器搭好了接下来就能够跑程序了~测试

6. Web文档的根目录ui

在/etc/apache2/sites-available/000-default.conf有说明spa

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
/var/www

7. 配置CGI

在Web文档的根目录下新建cgi-bin目录,即/var/www/cgi-bin/。cgi代码均放置于该目录下。

固然该目录也能够本身定义,不得不说的是,CGI的配置参考了不少资料确实坑道了本身,因为如今Ubuntu的版本和Apache的版本,变化是有点的。

apache2.conf    conf-enabled  magic           mods-enabled  sites-available
conf-available  envvars       mods-available  ports.conf    sites-enabled

这是/etc/apache2目录下的全部文件和文件夹。其中较为关注的主要有available和enabled,其中咱们配置的CGI并无被包含在enabled内,并且enabled中的

文件均为avaliable中的连接。

1 ls -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/cgi.load
2 ls -s /etc/apache2/mods-available/cgid.load /etc/apache2/mods-enabled/cgid.load

打开这两个文件实际上是导入了

1 LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.so
2 LoadModule cgid_module /usr/lib/apache2/modules/mod_cgid.so

一样地,在/etc/apache2/sites-enabled中打开的连接也是available中的sites-available的000-defalut.conf。

主要的配置都在/etc/apache2/conf-enabled中,该目录以下所示。

charset.conf                other-vhosts-access-log.conf  serve-cgi-bin.conf
localized-error-pages.conf  security.conf

能够看到CGI的配置就在serve-cgi-bin.conf这个文件中。

打开该文件,即可以看到

 1 <IfModule mod_alias.c>
 2     <IfModule mod_cgi.c>
 3         Define ENABLE_USR_LIB_CGI_BIN
 4     </IfModule>
 5 
 6     <IfModule mod_cgid.c>
 7         Define ENABLE_USR_LIB_CGI_BIN
 8     </IfModule>
 9 
10     <IfDefine ENABLE_USR_LIB_CGI_BIN>
11         ScriptAlias /cgi-bin/ /var/www/cgi-bin/
12         <Directory "/var/www/cgi-bin">
13             AllowOverride None
14             Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
15             Require all granted
16             AddHandler cgi-script .cgi .pl 
17         </Directory>
18     </IfDefine>
19 </IfModule>
20 
21 # vim: syntax=apache ts=4 sw=4 sts=4 sr noet

其中/var/www/cgi-bin能够改成本身的cgi-bin路径名,其中Module mod_cgid.c和Module mod_cgi.c正是咱们以前导入cgi.load和cgid.load的缘由。

其实避免错误的话,能够将全部的available文件导入至enabled文件夹中~~~。

8. 配置这个完了,就该尝试一下了吧>.<

8.1 在/var/www/cgi-bin中新建文件HelloWorld.c

键入以下代码:

 1 /**
 2  * CGI测试程序
 3  */
 4 
 5 #include "stdio.h"
 6 
 7 int main(int argc, char* argv[])
 8 {
 9         printf("Context-Type:text/html\n\n"); //这个必须得有
10         printf("Hello,World!\n");
11         return 0;
12 }

8.2 编译源文件

1 sudo gcc -o HelloWorld.cgi HelloWorld.c

8.3 打开浏览器测试输出

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

终于出现了!!!

Hello,World!

结束了,写在博客上,防止之后忘记。

相关文章
相关标签/搜索