linux Apache CGI 安装配置

kali中安装apache和CGI,kaliapachecgi

Apache 中的提交了一种拔取扩大应用程序实施动态网页的机制. 称为Common Gateway Interface (通用网关接口)简称CGI. 

安装apache 
先是到apache的主页下载最新版本的apache http server,地址为  
正文写于二〇〇六.4.29,apache版本为2.2.0 .假如您也想用这两个版本的话请点击: 
安装apache: 
切换来httpd-2.2.0.tar.gz所在目录,然后: 
# tar xvzf httpd-2.2.0.tar.gz 
此刻在该目录下有贰个文书夹 httpd-2.2.0,切换来该文件夹: 
# cd ./httpd-2.2.0 
本人不晓得您想把apache安装到哪个文件夹,我们假诺想安装到 /usr/local/apache2/ 下边,则 
输入下边的下令: 
# ./configure –prefix= /usr/local/apache2 (大概遇见 error: AP福特Explorer not
found. 请移步到化解error:AP卡宴 not found 小说)
# make 
# make install 
试行完那3条命令之后,apache就安装到你的 /usr/local/apache2目录下了. 
切换来该目录看看有啥样咚咚吧;) 
# cd ./usr/local/apache2 
# ls 
能够见见里边有 /bin ,/conf , /htdocs, /cgi-bin 等目录.此时apache还未有运维,大家经过/bin目录下的工具apachectl来运转,首先切换成/bin目录: 
# cd ./bin 
下一场运行: 
# ./apachectl start 
此时在地方栏输入  看看是或不是有成功的音信?(小编看到的是 “It works!”) 的信息, 当然不相同的版本会分化,依据你 /htdocs 下的index.html内容而定. 
把/usr/local/apache2/htdocs/index.html 替换到你的页面文件就足以了. 
到了此处,大家假若你的apache服务器已经设置成功.倘若还会有毛病请在网络搜索一下或然关联本身: 
lonestep AT gmail D。T com 
2, 配置apache使之实施cgi程序 
暗许下,cgi程序必须放在cgi-bin目录下,大家先来布局使得cgi-bin下的cgi程序能获取不错实行, 
前边将会介绍怎么让apache施行放在其他目录下的cgi程序. 
1),承上,大家曾经把apache安装到 /usr/local/apache2 目录下,切换来/usr/local/apache2/conf 目录,里面有多个 httpd.conf 文件, 编辑这几个文件: 
# cd /usr/local/apache2/conf 
# vi httpd.conf (假定你的文本编辑器是vi, 假诺你用其余编辑器如emacs, gedit, kedit 之类,把vi 替换到它们的指令即可) 
寻觅个中一行如: 
# ScriptAlias /cgi-bin/ “/usr/local/apache2/cgi-bin/” 
把这行前日前面包车型客车’#’去掉,然后重新启航apache : 
# cd ./bin (or cd /usr/local/apache2/bin) 
# ./apachectl restart 
ok, 若是你放了三个cgi程序’test.cgi’到cgi-bin的话,在地点栏 
输入  看看是还是不是能够推行>? 
若是无法,请发邮件给自己:) 
2),假诺你想改动推行cgi的目录(不用私下认可的cgi-bin目录),则该变刚才的 
ScriptAlias /cgi-bin/ “/usr/local/apache2/cgi-bin/” 为: 
ScriptAlias /SomeOtherDirectory/ “/usr/local/apache2/cgi-bin/” 
接下来再一次启航apache. 
                                                                                   假使安插不成事足以调换本人[email protected]

 

Apache
中的提交了一种接纳扩展应用程序施行动态网页的机制 . 称为
CommonGatewayInterface( 通用网关接口 ) 简称…

Apache
中的提交了一种选用扩张应用程序推行动态网页的机制. 称为Common Gateway
Interface (通用网关接口)简称CGI.

一、为了防止端口冲突,要求卸载linux系统中以RPM格局安装的httpd

  ~]
# rpm -qa | grep httpd

  ~] #
rpm -e httpd –nodeps
(此处nodeps为忽略注重关系)

Apache Httpd服务器之基础教程

Httpd服务器是Apache产品线下的一款web服务器,常与PHP或Python等CGI脚本一齐协作使用,为顾客提供动态Web服务。httpd,从名字就能够见到,它提供的严重性是基于http协议的Web服务。本篇为介绍Httpd服务器的首先篇,重要介绍下Httpd服务器的装置,运维情势,容器配置,以及CGI的计划,目标是使大家能由此翻阅此篇文章来从零确立起三个可运营的Web服务器。

Httpd从哪下载?请访谈
Release版比较好。近日的安定团结版本为2.4.10。

倘若大家的操作系统是Linux,下载好httpd-2.4.10.tar.gz后,大家就足以经过tar
zxvf
httpd-2.4.10.tar.gz命令释出全数的源代码。但此时不见得能够得逞的对源代码举办编写翻译安装,因为要安装httpd服务器,首先得设置大多少个其他的软件,他们各自是APXC90,APENCORE-Util,PCRE,ZLIB。请保管AP昂科拉,AP凯雷德-Util,PCRE以及ZLIB都在此之前卫的本子,尽量不要用yumCurry的版本,因为倘让你的操作系统不是风靡的本子,举个例子您的操作系统为CentOS
5,那么当你使用yum安装APCR-V时,就能安装到老版本的AP讴歌RDX,进而致使2.4.10的httpd服务器编译战败(当然依旧引入使用新本子的操作系统,不然也许会出别样难点,如C编写翻译器版本,autoconf版本难点等,会带动一些难为)。所感觉了不区分与平台,大家照旧麻烦下,通过合法发表的新颖版本的源代码来编写翻译安装这几个前置软件。AP普拉多及APEscort-Util的下载地址在
1.5.1及APLacrosse-Util
1.5.4。PCRE下载地址在
8.36。ZLIB下载地址在
2.4.10是100%匹配的。

在安装httpd从前,我们应先安装好apr,apr-util,pcre及zlib。下边就付给安装它们的有血有肉经过,值得注意的是apr应在apr-util此前安装好,因为apr-util正视于apr。上面借令你具有的文件都在/usr/local下。

apr安装进程:

    cd /usr/local/apr-1.5.1
        ./configure —prefix=/usr/local/apr
        make && make install

        apr-util安装进程:

    cd /usr/local/apr-util-1.5.4
        ./configure —prefix=/usr/local/apr-util —with-apr=/usr/local/apr

        pcre安装进度:

    cd /usr/local/pcre-8.36
        ./configure —prefix=/usr/local/pcre
        make && make install

    zlib安装进度:

        cd /usr/local/zlib-1.2.8
        ./configure —prefix=/usr/local/zlib
        make && make install

    安装完以上四个放置软件,就可以安装apache httpd服务器了。
    httpd安装进程:

        cd /usr/local/httpd-2.4.10
        ./configure —prefix=/usr/local/httpd \
        —with-apr=/usr/local/apr \
        —with-apr-util=/usr/local/apr-util \ 
        —with-pcre=/usr/local/pcre \ 
        —with-z=/usr/local/zlib —with-mpm=worker \
        —enable-modules=all —enable-so
        make && make install

    个中—with-mpm为多路管理模块的设置,如设置为worker,则系统将以多进程十二线程模型运维,这种装置适合于合营php-fpm管理php
cgi进度,但不吻合通过libphp.so模块举行php内容的剖析。—enable-modules代表运行httpd内有所模块.—enable-so代表运维动态库加载功用(这些是默许就张开的)。后边的—with-xxx是所供给的放置软件的设置路线。
   
那样,我们就到位了httpd的设置职业。在开发银行httpd前,大家应对httpd进行须要的布局。httpd的布局文件名叫httpd.conf,地点在/usr/local/httpd/conf/httpd.conf。上面就大致的介绍下我们的httpd配置文件。
   
httpd的布署文件分为全局和容器五个部分,在容器外的布局指令即为全局指令,在任何配置文件范围内均有效,而容器内的命令,则只在容器范围内卓有功能。那么怎么样是容器呢?轻便点说,超越半数以尖括号<xxx>初始,以</xxx>结尾的就是容器。举个例子<Directory></Directory>,又例如<Location></Location>等。首先谈谈下常用的全局指令,基础的常用的全局指令有ServerRoot,Listen,LoadModule,User,Group,ServerName,DocumentRoot等。因为此篇是基础,所以也就只简要介绍下相比基础的^_^。
   
ServerRoot,为服务器所在根目录,一般为服务器的设置目录,配置文件里的相对路线一般以它当做参照。
   
Listen,服务器的监听端口,能够以IP:端口的款式设置,也足以只设置端口。假如设置了IP,则服务器只会监听此IP对应的互连网接口。
   
LoadModule,加载动态库,举个例子你要开启代理功用,那么相应选择LoadModule加载proxy.so模块。
        User,服务器运维时行使的客户名,此客户为Linux系统客户。
    Group,服务器运营时利用的顾客组,此客商组为Linux系统客户组。
   
ServerName,服务器名可用你申请的域名或IP表示,不安装那么些在运转时会有贰个警示,但也不会报错。设不安装无所谓啦。
   
DocumentRoot,服务器检索内容的根目录,举例客商在浏览器输入url为
   
这么些指令,一般暗中同意的配置文件已经帮你设置好了,除非你的80端口被某项进度所占,不然服务器应该能常常运转。能够通过linux命令netstat
-ant查看tcp端口的处境。倘诺在Local
Address这一列没来看80端口被挤占的话,恭喜你,运营服务器吧。不然,请改换Listen的值。
   
假如您无需创建设想主机,可能<Directory>容器会是您根本的设置点。Directory按字面意思正是设置目录,设置服务器检索内容的目录。借使您的DocumentRoot的值为/usr/local/httpd/htdocs。那么当顾客的uri为index.html时,服务器将要/usr/local/httpd/htdocs下搜索index.html文件,当uri为test/index.php时,服务器就要/usr/local/httpd/htdocs/test下搜寻index.php文件。那么一旦本人想在/usr/local/httpd/htdocs自定义一些安装,举例想呈现目录下的公文列表,就活该采用<Directory>容器。上面是一段目录设置代码:

    <Directory “/usr/local/httpd/htdocs”>
        Options Indexes
        AllowOverride None
                Require all granted
    </Directory>

   
这段代码异常的粗略,主要实现多个指标。一是允许展现目录列表,二是禁止.htaccess文件覆盖配置,三是同意具有客户访谈该目录,也正是说只要uri映射到此目录,则就足以将内容重临给顾客。Options是目录的有的装置选项,如允许呈现列表,允许目录内有软链接等。AllowOverride是是不是同意其余的铺排文件覆盖此布局。Require是授权。
   
    大家用/usr/local/httpd/bin/httpd -k
start命令来运维服务器。若无别的回显,则意味着服务器运维成功。进一步能够用ps
aux | grep httpd来鲜明以下,假若有为数非常的多/usr/local/httpd/bin/httpd -k
start进度,则证明服务器运营成功。利用浏览器访问下服务器,如服务器IP为192.168.1.6,则在浏览器内输入
works!”,则象克制务器一切OK。至此,服务器的设置到此停止,下面介绍以下服务器的运维方式。
   
Httpd服务器的运维格局首要分为prefork和worker,它们属于多路管理模块MPM,由—with-mpm参数在./configure时设置。prefork为非线程型,预派生的多路管理模块,而worker属于线程型的。也正是说prefork使用进程管理乞请,而worker能够使用线程管理诉求。它们各有利害,对于非线程安全的台本管理连串,适合与应用prefork模块,如php-cli。对于线程安全的脚本管理体系,借使您的机械是多核并且配备丰盛高,选取worker模块恐怕是更加好的挑三拣四。
   
prefork使用多少个独立的主宰进度负担发生子进程,那个子进度用于监听恳求并提交应答。Apache总是试图保持一些备用的子进度用于招待即以往到的央浼,那样客户端就不用在赢得服务前等待子进度的发生。配置mpm模块能够在配备文件的全局部分开展设置。当然,一般的话我们在安装mpm时会加上<IfModule></IfModule>先判定下该格局是不是正接纳在服务器中。如下是一段prefork的安插代码:
    <IfModule mpm_prefork_module>
#本条论断可以不加,除非您充裕显著本身运营了prefork的形式
        StartsServers    5    #服务器运转时创设的长河数
        MinSpareServers    5    #微小空闲进度数
        MaxSpareServers    10    #最大空闲进度数
        MaxRequestWorkers    250    #摩天并发量
        MaxConnectionsPerChild    0   
#单个进度能处理的连接数,如若设置为正整数值,则在超过此连接数后,
                                       
该子进度会被Kill掉。当设置为0时,表示无比制                           
 
    </IfModule>

   
worker为八线程多进程的服务器,能够管理海量乞请,前提是你的服务器能抗的住。如下是一段worker的布局代码:

    <IfModule mpm_worker_module>
        StartServers    3               
#同prefork下的StartServers指令
        MinSpareThreads    75            #细微空闲线程数
        MaxSpareThreads    250            #最大空闲线程数
        ThreadsPerChild    25            #各个子进度的线程数
        MaxRequestWorkers    400       
#同prefork下的MaxRequestWorkers指令
        MaxConnectionsPerChild    0   
#同prefork下的MaxConnectionsPerChild指令
    </IfModule>

   
   
末了,大家来探寻下httpd怎么样与CGI脚本实行互动,完结动态内容。以平凡的bash脚本为例。大家成立二个bash脚本如下:
   

    #!/bin/bash
    echo Content-type: text/html
    echo Hello, World.

    脚本文件命名字为hello.cgi。
   
   
大家将此脚本放到/usr/local/httpd/cgi-bin目录中,指标是使客户在浏览器上采访,
World.”。那么该怎么设置呢?张开httpd.conf文件,参谋如下配置代码:

    <IfModule alias_module>
        ScriptAlias /cgi-bin/ “/usr/local/httpd/cgi-bin/”
    </IfModule>
    <IfModule mime_module>
        AddHandler cgi-script .cgi
    </IfModule>
    <Directory “/usr/local/httpd/cgi-bin”>
        Options ExecCGI
        Require all granted
    </Directory>

   
上面依次解释下以上命令的含义。我们能够看到命令分别包蕴在alias和mime的模块推断中,所以先在LoadModule中找到alias和mime多少个模块并收回注释,同一时候认同你的/usr/local/httpd/modules中真有那四个模块(应该都有,那属于httpd的着力模块)。ScriptAlias的意思是将uri为/cgi-bin/的门路映射到大意目录/usr/local/httpd/cgi-bin中,相当于您放cgi脚本的十三分目录。AddHandler命令表示增多一个cgi的脚本处理器,使httpd能管理cgi脚本,那个cgi脚本管理器名称为cgi-script,它管理以.cgi后缀结尾的文件。Options下的ExecCGI选项表示,该目录下得以实行CGI脚本。配置完后重启服务器,然后就能够愉悦的展开动态内容的拜候了。
   
此篇小说仅仅介绍了httpd服务器的9牛之1毛,使我们对httpd服务器有个基础的认知。当然httpd服务器还可能有众多意义,如日志、重写、认证、授权、与php模块进行重组使用、与php-fpm管理器实行理并了结合使用。它是web服务架构中相当重要的一环,为web服务基础设备进献了非常的多技术。

CentOS 6.5编写翻译安装httpd-2.4.7

httpd中职业模型的相比 

源码编写翻译安装httpd2.4及虚构主机

编译安装新型版httpd-2.4

httpd2.4基本功效的落实…

正文恒久更新链接地址:

Httpd服务器之基础教程
Httpd服务器是Apache产品线下的一款web服务器,常与PHP或Python等CGI脚本一齐合营使用,为顾客提供动态Web服务。…

正文假定已设置好linux(本文的linux版本为Fedora
Core3), 并具有root权限.
1,安装apache服务 
先是到apache的主页下载最新版本的apache http server,地址为

正文写于二零零六.4.29,apache版本为2.2.0
.假设你也想用那八个版本的话请点击:
安装apache:
切换成httpd-2.2.0.tar.gz所在目录,然后:
# tar xvzf httpd-2.2.0.tar.gz
那会儿在该目录下有四个文件夹 httpd-2.2.0,切换来该公文夹:
# cd ./httpd-2.2.0
想把apache安装到哪个文件夹,假定想安装到 /usr/local/apache2/ 上面,则
输入下边包车型地铁授命:
# ./configure –prefix= /usr/local/apache2
# make
# make install
施行完那3条命令之后,apache就安装到你的 /usr/local/apache2目录下了.
切换成该目录看看有哪些咚咚吧;)
# cd ./usr/local/apache2
# ls
能够观望里面有 /bin ,/conf , /htdocs, /cgi-bin
等目录.此时apache还尚未运行,大家通过/bin目录下的工具apachectl来运行,首先切换来/bin目录:
# cd ./bin
接下来运行:
# ./apachectl start
那会儿在地点栏输入
看看是还是不是有成功的新闻?(作者来看的是 “It works!”) 的消息,
当然区别的版本会分化,依照你 /htdocs 下的index.html内容而定.
把/usr/local/apache2/htdocs/index.html 替换到你的页面文件就能够了.
到了此地,大家只要你的apache服务器已经安装成功.如果还可能有标题请在网络检索一下也许关联自个儿:
lonestep AT gmail D。T com
2, 配置apache使之实行cgi程序
暗中认可下,cgi程序必得放在cgi-bin目录下,大家先来陈设使得cgi-bin下的cgi程序能获得不错实行,
末尾将会介绍怎么让apache实施放在其余目录下的cgi程序.
1),承上,大家已经把apache安装到 /usr/local/apache2
目录下,切换来/usr/local/apache2/conf 目录,里面有三个 httpd.conf 文件,
编辑那么些文件:
# cd /usr/local/apache2/conf
# vi httpd.conf (假定你的文书编辑器是vi, 固然你用别的编辑器如emacs,
gedit, kedit 之类,把vi 替换到它们的指令就能够)
寻找在那之中一行如:
# ScriptAlias /cgi-bin/ “/usr/local/apache2/cgi-bin/”
把那行后边前边的’#’去掉,然后重新启航apache :
# cd ./bin (or cd /usr/local/apache2/bin)
# ./apachectl restart
ok, 假设你放了二个cgi程序’test.cgi’到cgi-bin的话,在地址栏
输入 看看是或不是能够施行>?
若果不可能,请发邮件给自家:) www.jbxue.com
2),假使您想改动执行cgi的目录(不用暗中认可的cgi-bin目录),则该变刚才的
ScriptAlias /cgi-bin/ “/usr/local/apache2/cgi-bin/” 为:
ScriptAlias /SomeOtherDirectory/ “/usr/local/apache2/cgi-bin/”
接下来再一次启航apache.
如上的进度都以比较简单的,假令你遭受了本文未曾涉及的主题材料,恐怕与本文假若不一致的条件,
请先到Internet上追寻化解办法,就算还百般(once and once
again)能够发邮件给自己:)
一. CGI 的配备进程

二、将下载获得的httpd源码包解压后放走到 /usr/src/ 目录下

  ~] #
tar zxvf httpd-2.2.17.tar.gz -C
/usr/src

  ~] #
cd /usr/src/httpd-2.2.17

澳门新萄京8522,1.CGI施行目录设置. 一般在 /usr/local/apache/cgi-bin/文件夹中.
在httpd.conf配置文件中能找到相关音信. 比如笔者把的CGI 程序是test.pl
那么地应的HTTP请法地址就是:

三、配置:定制编写翻译选项

  ~]
# ./configure
–prefix=/usr/local/httpd (指虞升卿装路径)

                    
        
–enable-so
(运维动态加载模块支持:成效模块启用时不需关闭服务器就可以完毕)

                                  
–enable-rewrite
(启用网页地址重写成效:上传网页不须要关闭服务)

                                  
–enable-charset-lite
(启用字符集匡助)

                                   –enable-cgi
(启用cgi脚本程序辅助)

2.CGI 的进行目录出于全安思量一般只给读权限.对应的httpd.conf
中的配置可实行CGI的地点如下:

四、编写翻译及安装

  ~]
# make && make
install (个中&&符号释义为:make成功后才会继续实践上边包车型大巴make
install命令;make命令必要有gcc和gcc++编写翻译情状的支撑,可用yum工具安装,大概linux装机时精选“开拓工具”选项。)

<Directory /usr/local/apache/htdocs/somedir>
Options +ExecCGI
</Directory>

五、确认安装结果

  ~]
# ls
/usr/local/httpd

  简要列举/usr/local/httpd文件夹下的主要内容:

  /bin :
存放httpd服务的可推行程序文件、命令等、

  /conf :
配置文件httpd.conf的目录

  /htdocs
: 网页文件的暗中同意寄放路线

  /logs :
日志文件目录

  /modules
: 寄存httpd服务的模块文件夹

  /cgi-bin
: 寄放各类cgi程序文件

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图