Ubuntu下配置Apache以及搭载CGI
在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的更多相关文章
- ubuntu下配置Apache
ubuntu下配置Apache Apache的默认文档根目录是在Ubuntu上的/var/www目录 配置文件是/ etc/apache2/apache2.conf配置存储在的子目录在/etc/apa ...
- Ubuntu下配置Apache的Worker模式
其实Apache本身的并发能力是足够强大的,但是Ubuntu默认安装的是Prefork模式下的Apache.所以导致很多人后面盲目的去 安装lighttpd或者nginx一类替代软件.但是这类软件有一 ...
- 在ubuntu下配置apache运行python脚本
2008-12-05 常用的简单命令 sudo apt-get remove --purge apache apache2 (彻底删除) sudo /etc/init.d/apache2 r ...
- Ubuntu下配置apache开启https
一.HTTPS简述随着网络的日常,信息安全越来越重要,传统的网站都是http协议明文传输,而HTTPS协议是由SSL+HTTP协议构建的可进行加密传输.身份认证的网络协议,比http协议安全. 那ht ...
- Ubuntu 下配置apache和APR
软件环境:ubuntu14.04 虚拟机Vmware 软件:http://httpd.apache.org/ httpd-2.2.29.tar.gz 不需要单独下载APR. 1.解压apach ...
- ubuntu下配置Apache+mod_wsgi+Django项目(个人测试)
经过了一个星期的摸索,查找资料以及实验,我搭建的环境基本能用(还有就是Django后台的静态文件加载的问题) 这里面只是介绍一下我的过程,因为对应Apache还不是很熟练,特别是配置文件.只能供大家参 ...
- 在Ubuntu下配置Apache多域名服务器
1. 目标: 在本机 实现访问不同域名 可以访问不同的目录. 即:访问a.com 进入 /var/www/a 目录下的程序,访问b.com 进入/var/www/b目录下的程序. 2.遇到的问题: / ...
- Ubuntu下配置Nginx HTTPS
HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版.即HTTP下加入S ...
- [Apache手册]Linux环境下配置Apache运行cgi
CGI动态页面 相关模块 相关指令 mod_alias mod_cgi AddHandler Options ScriptAlias CGI(公共网关接口)定义了web服务器与外部内容生成程序之间交互 ...
随机推荐
- 牛客多校第三场 G Removing Stones(分治+线段树)
牛客多校第三场 G Removing Stones(分治+线段树) 题意: 给你n个数,问你有多少个长度不小于2的连续子序列,使得其中最大元素不大于所有元素和的一半 题解: 分治+线段树 线段树维护最 ...
- Servlet 常用类
Servlet 是一套标准的接口规范,当用户通过web请求来访问服务器时,由web容器根据配置调用我们实现的对应的servlet对象来提供服务.同时为了方便开发,servlet标准中也提供了许多常用的 ...
- IDE、Cmake、makefile、make
makefile :就是一个类似脚本的文件,根据一系列规则用于决定哪些文件先编译,哪些文件重新编译等等.甚至于进行更复杂的功能操作,而且还可以执行操作系统的命令.makefile带来的好处就是——“自 ...
- 【软帝学院】女生不适合学习java?其实女生学java更有优势,更好就业!
女生适合学java吗?女生做IT怎么样 首先要表明我的观点,编程是不分男女,什么女生不适合学编程的说法,从客观上来说,我觉得这是一种偏见. 不少人潜意识里认为女生不适合从事IT开发岗位的工作,因为他们 ...
- [Vue源码]一起来学Vue模板编译原理(一)-Template生成AST
本文我们一起通过学习Vue模板编译原理(一)-Template生成AST来分析Vue源码.预计接下来会围绕Vue源码来整理一些文章,如下. 一起来学Vue双向绑定原理-数据劫持和发布订阅 一起来学Vu ...
- 如何基于TencentOS tiny,快速打造属于自己的IoT小应用?
导语 | 近日,云+社区技术沙龙“腾讯开源技术”圆满落幕.本次沙龙邀请了多位腾讯技术专家,围绕腾讯开源与众多开发者进行探讨,深度揭秘了腾讯开源项目TencentOS tiny.TubeMQ.Kona ...
- JavaScript 构造树形结构的一种高效算法
引言 我们经常会碰到树形数据结构,比如组织层级.省市县或者动植物分类等等数据.下面是一个树形结构的例子: 在实际应用中,比较常见的做法是将这些信息存储为下面的结构,特别是当存在1对多的父/子节点关系时 ...
- 洛谷$P4211\ [LNOI2014]\ LCA$ 树链剖分+线段树
正解:树剖+线段树 解题报告: 传送门$QwQ$ 看到$dep[lca]$啥的就想到之前托腮腮$CSP$模拟$D1T3$的那个套路,,, 然后试下这个想法,于是$dep[lca(x,y)]=\sum_ ...
- 洛谷$P$1402 酒店之王 网络流
正解:网络流 解题报告: 传送门! 一看就很网络流昂,,,于是现在的问题就变成怎么建图了$QwQ$ 首先如果只有一个要求,那就直接按要求建图然后跑个最大流就好. 现在变成,有两个要求,必须同时满足,考 ...
- 「Vijos 1284」「OIBH杯NOIP2006第二次模拟赛」佳佳的魔法阵
佳佳的魔法阵 背景 也许是为了捕捉猎物(捕捉MM?),也许是因为其它原因,总之,佳佳准备设计一个魔法阵.而设计魔法阵涉及到的最关键问题,似乎就是那些带有魔力的宝石的摆放-- 描述 魔法阵是一个\(n ...