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

1. 上网下载自动包安装

sudo apt-get install apache2

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

www.127.0.0.1 or http://localhost

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

3. 启动Apache

/etc/init.d/apache2 start 

4. 重启Apache

/etc/init.d/apache2 restart

5. 停止Apache

/etc/init.d/apache2 stop

好了,服务器搭好了接下来就可以跑程序了~

6. Web文档的根目录

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

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中的链接。

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

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

 LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.so
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这个文件中。

打开该文件,便可以看到

 <IfModule mod_alias.c>
<IfModule mod_cgi.c>
Define ENABLE_USR_LIB_CGI_BIN
</IfModule> <IfModule mod_cgid.c>
Define ENABLE_USR_LIB_CGI_BIN
</IfModule> <IfDefine ENABLE_USR_LIB_CGI_BIN>
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
<Directory "/var/www/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Require all granted
AddHandler cgi-script .cgi .pl
</Directory>
</IfDefine>
</IfModule> # vim: syntax=apache ts= sw= sts= 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

键入如下代码:

 /**
* CGI测试程序
*/ #include "stdio.h" int main(int argc, char* argv[])
{
printf("Context-Type:text/html\n\n"); //这个必须得有
printf("Hello,World!\n");
return ;
}

8.2 编译源文件

 sudo gcc -o HelloWorld.cgi HelloWorld.c

8.3 打开浏览器测试输出

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

终于出现了!!!

Hello,World!

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

Ubuntu下配置Apache以及搭载CGI的更多相关文章

  1. ubuntu下配置Apache

    ubuntu下配置Apache Apache的默认文档根目录是在Ubuntu上的/var/www目录 配置文件是/ etc/apache2/apache2.conf配置存储在的子目录在/etc/apa ...

  2. Ubuntu下配置Apache的Worker模式

    其实Apache本身的并发能力是足够强大的,但是Ubuntu默认安装的是Prefork模式下的Apache.所以导致很多人后面盲目的去 安装lighttpd或者nginx一类替代软件.但是这类软件有一 ...

  3. 在ubuntu下配置apache运行python脚本

    2008-12-05    常用的简单命令 sudo apt-get remove --purge apache apache2 (彻底删除)   sudo /etc/init.d/apache2 r ...

  4. Ubuntu下配置apache开启https

    一.HTTPS简述随着网络的日常,信息安全越来越重要,传统的网站都是http协议明文传输,而HTTPS协议是由SSL+HTTP协议构建的可进行加密传输.身份认证的网络协议,比http协议安全. 那ht ...

  5. Ubuntu 下配置apache和APR

    软件环境:ubuntu14.04  虚拟机Vmware  软件:http://httpd.apache.org/  httpd-2.2.29.tar.gz  不需要单独下载APR. 1.解压apach ...

  6. ubuntu下配置Apache+mod_wsgi+Django项目(个人测试)

    经过了一个星期的摸索,查找资料以及实验,我搭建的环境基本能用(还有就是Django后台的静态文件加载的问题) 这里面只是介绍一下我的过程,因为对应Apache还不是很熟练,特别是配置文件.只能供大家参 ...

  7. 在Ubuntu下配置Apache多域名服务器

    1. 目标: 在本机 实现访问不同域名 可以访问不同的目录. 即:访问a.com 进入 /var/www/a 目录下的程序,访问b.com 进入/var/www/b目录下的程序. 2.遇到的问题: / ...

  8. Ubuntu下配置Nginx HTTPS

    HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版.即HTTP下加入S ...

  9. [Apache手册]Linux环境下配置Apache运行cgi

    CGI动态页面 相关模块 相关指令 mod_alias mod_cgi AddHandler Options ScriptAlias CGI(公共网关接口)定义了web服务器与外部内容生成程序之间交互 ...

随机推荐

  1. 【23.91%】【hdu 4694】Important Sisters("支NMLGB配树"后记)(支配树代码详解)

    Time Limit: 7000/7000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Total Submission( ...

  2. JWT之登录、登出、验证码接口

    6.2 验证码接口 验证码接口用于登录页面展示时,获取验证码图片地址及验证码标识 安装验证码功能组件(如果是官网下载的完整版框架,无需安装) composer require topthink/thi ...

  3. 关于MySQL中查询大数据量的情况下分页limit的性能优化

    https://blog.csdn.net/weixin_37848710/article/details/80772725

  4. [微信跳转浏览器]微信跳转外部浏览器下载APP源码,可以实现自动跳转外部浏览器打开链接

    基于微信后端开发了一款微信推广助手,使用了本程序生成的链接,用户在微信任意环境下点击链接或者扫描二维码,可以实现直接跳转手机默认浏览器并打开指定网页. 我们开发的此款跳转产品,应用范围广泛.除了下载A ...

  5. C++Review7_STL、容器、迭代器

    我之前的博文中有专门的5篇整理并介绍了STL的概念: STL1——整体介绍:https://www.cnblogs.com/grooovvve/p/10467794.html STL2——泛型编程(模 ...

  6. 使用windows api函数捕获SAP session的左下角消息句柄

    背景:SAP session的左下角消息非常有用,我们在做SAP的自动化脚本时可以设法读到这个消息的内容,作为程序后续动作的判断条件.如下图:        比如小爬之前给财务的同事制作了一个批量导出 ...

  7. jsp中获取页面的相对路径

    1.在jsp页面的上方加上这段java代码 <%//        request.getContextPath() 返回当前页面所在的应用的名字://        request.getSc ...

  8. 使用poi读写excel、向excel追加数据等,包括.xls和.xlsx文档

    1.使用maven引入jar包 <dependency> <groupId>org.apache.poi</groupId> <artifactId>p ...

  9. MyBatis原理-架构流程

    一 .MyBatis原理架构图 Mybatis的功能架构分为三层: API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库.接口层一接收到调用请求就会调用数据处理层来完成具体 ...

  10. 写代码 Log 也要认真点么?

    Log自然是需要的, 尤其是正式的产品; 但如果只是自己或内部用用的小工具, 也需要认真点吗? 实话说, 自己对 log 总是不上心, 总觉得调试好了, 能跑了, 足以. 所以, 被大妈怼了好几次 l ...