Ubuntu搭建Lighttpd服务器以及CGI配置

这里我的源码都放在/usr/local/src/下

一、安装pcre(正则表达式库,解决C语言中使用正则表达式的问题)

1、下载地址:

http://www.pcre.org/    里面选pcre、pcre2都可)

2、解压

tar -zxvf pcre2-10.30.tar.gz

3、配置安装

1)进入Pcre目录

cd  pcre2-10.32

2)配置

./configure

3)编译

make

4)安装

make install


二、安装bzip2

1、下载地址

http://www.bzip.org/

2、解压

tar -zxvf bzip2-1.0.6.tar.gz

3、配置安装

1)进入bzip2目录

cd bzip2-1.0.6

2)设置配置选项

make -f Makefile-libbz2_so

-f 标志使bzip根据另一个Makefile来编译(Makefile-libbz2_so),生成 libbz.so,然后把bzip2工具连接到这个库上

3)编译安装

make && make install


三、安装Lighttpd

1、下载地址

http://www.lighttpd.net/download/    (lighttpd-1.4.53 )

2、解压

tar -zxvf lighttpd-1.4.53.tar.gz

3、安装

1)创建目录

创建lighttpd(/usr/local/src/lighttpd)

mkdir /usr/local/src/lighttpd

2)进入源码目录

cd /usr/local/src/lighttpd-1.4.53

3)配置安装目录

./configure --prefix=/usr/local/src/lighttpd

4)编译安装

make && make install

4、配置服务器

1)创建相关文件

在/usr/local/src/lighttpd下创建相关文件

mkdir {cache,config,log,sockets,run,www,vhosts}

2)拷贝源文件doc/config目录下的lighttpd.conf、modules.conf、conf.d文件夹到安装目录的config下

cp /usr/local/src/lighttpd-1.4.53/doc/config/lighttpd.conf /usr/local/src/lighttpd/config

cp /usr/local/src/lighttpd-1.4.53/doc/config/modules.conf /usr/local/src/lighttpd/config

cp -r /usr/local/src/lighttpd-1.4.53/doc/config/conf.d /usr/local/src/lighttpd/config

3)修改lighttpd.conf

//var.xxx是建立一些变量,用来给server.xxx赋值

var.log_root    = "/usr/local/src/lighttpd/log"

//日志的目录,运行起来后会在该目录下生产access.log  error.log文件

var.server_root = "/usr/local/src/lighttpd/www"

var.state_dir   = "/usr/local/src/lighttpd/run"

//运行起来会在该目录下创建lighttpd.pid

var.home_dir    = "/usr/local/src/lighttpd"

var.conf_dir    = "/usr/local/src/lighttpd/config"

var.vhosts_dir  = home_dir + "/vhosts"

var.cache_dir   = home_dir+"/cache"

var.socket_dir  = home_dir + "/sockets"

server.port = 80

//服务器端口号,80是默认的,浏览器访问不用加端口号 如果已经被占用,可改   为8080,浏览器访问要加 :8080

server.use-ipv6 = "disable" //禁止使用IPV6

server.bind = "192.168.112.128"

//绑定ip地址,虚拟机的IP,主机如果要访问虚拟机要保证能ping通,不行的话   //在主机中打开VMnet8虚拟网卡

server.username  = "nobody"

//设置用户名和组名,nobody为任何人都可以等于系统

#server.groupname = "nobody"// 用户组这边没有nobody,直接注释掉这行

server.document-root = server_root + "/webpages"

//设置网站文件根目录,浏览器访问就是访问到这个目录下的文件

server.pid-file = state_dir + "/lighttpd.pid"

//指定pid文件运行起来自动创建

server.errorlog = log_root + "/error.log" //log_root下创建error.log

server.upload-dirs = (home_dir + "/upload")

注意如果服务器运行起来要创建文件的目录下不能创建文件,把那个文件夹权限改为777

4)测试服务器

  • cd /usr/local/src/lighttpd/sbin
  • 测试Lighttpd.conf文件语法是否正确

./lighttpd -t -f ../config/lighttpd.conf

返回 Syntax OK 表示正确

  • 启动lighttpd  ./lighttpd -f ../config/lighttpd.conf

停止服务器pkill lighttpd

  • 启动服务器后在document-root目录下创建index.html

内容写hello world!

  • 在浏览器输入http://192.168.112.128(填lighttpd中bind的ip)

如果出来网页并显示hello world!说明服务器搭建成功

5、配置CGI

1)修改modules.conf

server.modules = (

"mod_access", //基础模块

#  "mod_cgi",

"mod_alias", //路径绑定 用来指定CGI路径

#  "mod_auth",

#  "mod_authn_file",

#  "mod_evasive",

#  "mod_redirect",

#  "mod_rewrite",

#  "mod_setenv",

#  "mod_usertrack",

)

##

## plain old CGI (mod_cgi)

##

include "conf.d/cgi.conf" //引入cgi.conf

注意上面server.modules 不用添加CGI模块,因为在conf.d/cgi.conf里面有server.modules += ( "mod_cgi" ),如果这里添加了,会报错:

Cannot load plugin mod_cgi more than once, please fix your config lighttpd may not accept such con

2)修改cgi.conf

CGI程序可以用C/C++语言等需要编译的语言写,也可以用python、perl、ruby等直接解释执行的语言写,这两种他们的执行方式是不同的:一个是程序直接可以被执行;一个是需要特定的语言解释器来执行。这样的话,web server配置时也会不同。

这里有两种方式

方式一:不重定向路径,cgi文件要放在document-root下,访问时加document-root下路径。

cgi.assign  = ( ".pl"  => "/usr/bin/perl",

# ".cgi" => "/usr/bin/perl",

".cgi" => "",  //设置.cgi文件不需要解释器(本来就是编译好的可执行文件)

".rb"  => "/usr/bin/ruby",

".erb" => "/usr/bin/eruby",

".py"  => "/usr/bin/python" )

访问:http://192.168.112.128/cgi-bin/h.cgi

(h.cgi放在/usr/local/src/lighttpd/www/webpages/cgi-bin/h.cig)

http://192.168.112.128/h.cgi

(h.cgi放在/usr/local/src/lighttpd/www/webpages/h.cig)

方式二:重定向路径,cgi文件要放在重定向的目录下,访问时加重定向的路径

cgi.assign  = ( ".pl"  => "/usr/bin/perl",

# ".cgi" => "/usr/bin/perl",

# ".cgi" => "", //设置.cgi文件不需要解释器(本来就是编译好的可执行文件)

".rb"  => "/usr/bin/ruby",

".erb" => "/usr/bin/eruby",

".py"  => "/usr/bin/python" )

alias.url += ( "/cgibin" => home_dir + "/cgibin" )

//使用alias之前server.modules要添加mod_alias做重定向

//重定向路径cgibin到/usr/local/src/Lighttpd/cgibin,重定向的路径可以不放在//document-root下

$HTTP["url"] =~ "^/cgibin" {

cgi.assign = ( "" => "" )

//所有cgibin目录下的程序,不需要语言解释器(cgi.assign = ( "" => "" )),直接被执行

}

访问 http://192.168.112.128/cgibin/h.cgi

//cgibin在/usr/local/src/Lighttpd/cgibin

方式二另一个重定向位置举例

alias.url += ( "/cgi-bin" => server_root + "/webpages/cgi-bin" )

//cgi-bin重定向到/usr/local/src/Lighttpd/www/webpages/cgi-bin

$HTTP["url"] =~ "^/cgi-bin" {

cgi.assign = ( "" => "" )

}

访问http://192.168.112.128/cgi-bin/h.cgi

//cgi-bin在/usr/local/src/Lighttpd/www/webpages/cgi-bin

除去以上两种方式外,其他的程序(既不以特性的后缀结尾,也不放到指定目录下),会被当成文件被下载。

3)测试cgi

在cgi-bin中创建hello_cgi.c

内容

#include "stdio.h"

int main()

{

printf("Content-type:text/plain\r\n\r\n");

printf("hello_cgi\n");

return 0;

}

编译 :gcc hello_cgi.c -o h.cgi

浏览器输入 http://192.168.112.128/cgi-bin/h.cgi

如果出现hello_cgi 表示成功

ubuntu搭建lighttpd以及cgi配置相关推荐

  1. Ubuntu搭建全分布式Hadoop

    Ubuntu搭建全分布式Hadoop 配置ssh免密登录 配置Java.hadoop环境 配置hadoop文件 配置hadoop-env.sh 配置yarm-env.sh 配置core-site.xm ...

  2. linux lighttpd php,Ubuntu下搭建Lighttpd+PHP+MySQL环境

    简单的几个命令在Ubuntu下搭建Lighttpd+PHP+MySQL环境,Lighttpd是众多OpenSource轻量级的web server中较为优秀的一个.支持FastCGI, CGI, Au ...

  3. ubuntu vscode 配置字体_第五章 Ubuntu搭建ESP32开发环境(vscode)

    Vscode安装 ubuntu软件中自带vscode的安装包,一键完成,不废话,没有的想办法解决. 编译链操作 下载 官方最新地址 有系统区别,下载对应的压缩到到电脑 · for 64-bit Lin ...

  4. OpenStack(M)+ ubuntu 搭建学习二:基础环境配置

    目录 一.配置网络接口 二.配置域名解析 三 .配置国内的软件源 四. 启用OpenStack库 五.安装OpenStack客户端 六.同步系统时钟与时钟服务器(NTP) 具体步骤可参考官方文档:Op ...

  5. 阿里平头哥ubuntu环境搭建到开发(从ubuntu安装到Linux环境配置)

    ** 阿里平头哥ubuntu环境搭建到开发(从ubuntu安装到Linux环境配置) ** VMware Workstation12安装 这一块没什么难度随便百度一下VMware Workstatio ...

  6. nginx+PHP+PHP-FPM(FastCGI)在Ubuntu上的安装和配置

    nginx+PHP+PHP-FPM(FastCGI)在Ubuntu上的安装和配置 0 之前知识回顾:  1) 目前各种服务器HTTP Server对PHP的支持一共有三种: a.通过HTTPServe ...

  7. Lighttpd 的安装配置(web服务器软件)

    Lighttpd 的安装配置 2006-07-16 01:06 lighttpd(http://lighttpd.net/)和apache一样是开源的,与apache相比,虽然功能不及apache完善 ...

  8. ftp linux包,图文详解Ubuntu搭建Ftp服务器的方法(包成功)

    一.今天下午由于课程的要求不得已做了Ubuntu搭建Ftp服务器的实验,但是实验指导书还是N年前的技术,网上搜了一大把,都是模模糊糊的! 在百般困难中终于试验成功,特把经验分给大家 希望大家少走弯路! ...

  9. linux pip3使用清华源_Linux实战016:Ubuntu搭建python开发环境

    我们在安装Ubuntu系统的时候会自带安装python2.7和python3.6版本的Python解释器,直接执行"ptyhon"默认运行的是python2.7,只有执行" ...

最新文章

  1. Java学习之生成随机数
  2. android设置程序开机自启动
  3. LOJ#6044. 「雅礼集训 2017 Day8」共(Prufer序列)
  4. 6、ShardingSphere 之 读写分离
  5. 【uniapp】swiper 自定义轮播图指示点
  6. 大数开方(C++版)
  7. 微软 改变 开源【几个站点】
  8. [react] 展示组件和容器组件有什么区别?
  9. java 四舍五入_Java常用类
  10. TP5 急速上手 语法规则
  11. html单击出现下拉菜单,*OnClick实现点击主菜单时出现下拉菜单,已实现但是有问题,求助!*...
  12. java通过银行账号获取银行名称
  13. 使用httpclient下载网络上的图片
  14. 大数据开发:数据仓库分层设计
  15. Win10 + vs2017 编译并配置tesseract-5.0.0-alpha 遇到的问题
  16. vue实现大转盘抽奖
  17. 服务器主板支持专用条,AMD专用条又要火了?在H110平台上竟然可以完美使用
  18. 人工智能在金融行业的应用
  19. 图像工作回顾之三:极线匹配
  20. 10个免费的PHP编辑器/开发工具推荐

热门文章

  1. python计算三角形面积代码_python计算三角形面积详细代码演示
  2. html box标签,HTML div不包装i标签
  3. 解决学习tensorflow的LSTM模型中遇到一个版本不兼容问题
  4. C语言创建MaxSize头文件,我不知道怎样定义头文件#includeseqlist.h
  5. java门店_Java门店管理系统 客户资料档案管理 库存管理 进销存 SSM项目源码
  6. 北师大高起专计算机作业,北师大网络教育2016年秋季高起专0055《教育统计学》在线作业答案...
  7. 349. 两个数组的交集(集合 / 双指针实现)
  8. c++demo基础入门教学第一课(写标准框架)
  9. jquery-easyui icon图标集合
  10. 每年考研竟然这么多人划水?努力的人没你想的那么多!