首页 > 语言 > PHP > 正文

安装配置Apache支持https和fcgi

2024-05-05 00:02:32
字体:
来源:转载
供稿:网友

Apache安装及配置

1.1下载软件

1、Apr:(wgethttp://mirrors.hust.edu.cn/apache//apr/apr-1.5.1.tar.gz)

2、Apr-util:(wgethttp://mirrors.hust.edu.cn/apache//apr/apr-util-1.5.4.tar.gz)

3、Pcre:(wgetftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.35.tar.bz2)

4、Openssl:(wgethttp://www.openssl.org/source/openssl-1.0.2.tar.gz)

5、Apache:(wgethttp://www.eu.apache.org/dist/httpd/httpd-2.4.12.tar.gz)

1.2安装Apache

请按照下面的顺序安装:

1.2.1安装apr

[root@xttest]#tar-zxfapr-1.5.1.tar.gz

[root@xttest]#cdapr-1.5.1

[root@xtapr-1.5.1]#./configure--prefix=/usr/local/apr

[root@xtapr-1.5.1]#make&&makeinstall

1.2.2安装apr-util

[root@xttest]#tar-zxfapr-util-1.5.4.tar.gz

[root@xttest]#cdapr-util-1.5.4

[root@xtapr-util-1.5.4]#./configure--prefix=/usr/local/apr-util-with-apr=/usr/local/apr/bin/apr-1-config

[root@xtapr-util-1.5.4]#make&&makeinstall

1.2.3安装pcre

[root@xttest]#tar-xjfpcre-8.35.tar.bz2

[root@xttest]#cdpcre-8.35

[root@xtpcre-8.35]#./configure--prefix=/usr/local/pcre

[root@xtpcre-8.35]#make&&makeinstall

1.2.4安装openssl

[root@xttest]#tar-zxfopenssl-1.0.2.tar.gz

[root@xttest]#cdopenssl-1.0.2

[root@xtopenssl-1.0.2]#./config--prefix=${destination_dir}-fPICno-gostno-sharedno-zlib

[root@xtopenssl-1.0.2]#makedepend;makeinstall

1.2.5安装apache

[root@xttest]Tar-zcfhttpd-2.4.12.tar.gz

[root@xttest]Cdhttpd-2.4.12

[root@xthttpd-2.4.12]./configure--prefix=/opt/wacos/tools/apache--enable-so--enable-ssl--with-ssl=/usr/local/ssl--enable-mods-shared=all--with-apr=/usr/local/apr--with-apr-util=/usr/local/apr-util--with-pcre=/usr/local/pcre

[root@xthttpd-2.4.12]#make;makeinstall

1.3配置Apache,让apache支持https和fcgi

1.3.1对https的支持

原理:一般一个http请求默认是80端口,一个https请求默认是443端口,这就要对apache配置虚拟主机以支持同域名多端口。在apache安装目录的conf/extra文件中有一个httpd-ssl.conf文件,里面是这些内容。

Listen443

DocumentRoot"/opt/wacos/tools/apache/htdocs"

ServerNamewww.example.com:443

ErrorLog"/opt/wacos/tools/apache/logs/error_log"

TransferLog"/opt/wacos/tools/apache/logs/access_log"

 

https协议是http协议里面加了一层ssl加密过程。服务器端需要一个证书文件和一个密钥文件。下面是生成证书和密钥的过程:

1、opensslgenrsa-outserver.key2048

运行openssl命令,生成2048位长的私钥server.key

2、opensslreq-new-keyserver.key-outserver.csr

输入命令以后,需要填写如下内容:

CountryName(国家:中国填写CN)

StateorProvinceName(区域或是省份:CHONGQING)

LocalityName(地区局部名字:CHONGQING)

OrganizationName(机构名称:填写公司名)

OrganizationalUnitName(组织单位名称:部门名称)

CommonName(网站域名)

EmailAddress(邮箱地址)

Achallengepassword(输入一个密码)

Anoptionalcompanyname(一个可选的公司名称)

输入完这些内容,就会在当前目录生成server.csr文件

3、opensslx509-req-days365-inserver.csr-signkeyserver.key-outserver.crt

使用上面的密钥和CSR对证书进行签名

到此为止,就有了服务器私有密钥(server.key)和服务器证书(server.crt)。

接下来把密钥和证书路径添加到上面配置的虚拟主机里面:

SSLCertificateFile"/opt/wacos/tools/apache/conf/server.crt"

SSLCertificateKeyFile"/opt/wacos/tools/apache/conf/server.key"

把https的开关打开

SSLEngineon

这样就完成了对httpd-ssl.conf文件的配置。

在conf目录下有一个httpd.conf文件,打开,

找到#Includeconf/extra/httpd-ssl.conf一行,把#去掉。

找到#LoadModulessl_modulemodules/mod_ssl.so一行,把#去掉。

重启apache服务器,在浏览器上进行https测试。

1.3.2对fcgi的支持

Fcgi是一个进程,需要在apache启动的时候同时加载进程。Apache要支持fcgi,需要加载mod_fcgid.so模块。

安装mod_fcgid.so模块:

[root@xttest](wgethttp://www.apache.org/dist/httpd/mod_fcgid/mod_fcgid-2.3.9.tar.gz)

[root@xttest]tar-zxfmod_fcgid-2.3.9.tar.gz

[root@xttest]cdmod_fcgid-2.3.9

[root@xttest]APXS=/opt/wacos/tools/apache/bin/apxs./configure.apxs

[root@xttest]make&&makeinstall

安装成功后,会在module目录中生成mod_fcgid.so文件

打开httpd.conf文件,找到#LoadModulefcgid_modulemodules/mod_fcgid.so一行,去掉#号。添加以下代码:

ScriptAlias/fcgi-bin/"/opt/wacos/tools/apache/fcgi-bin/"

SetHandlerfcgid-script

Options+ExecCGI

Orderallow,deny

Allowfromall

 

 

至此,对fcgi支持的配置已经完成。

写一个cgi程序放在fcgi-bin目录中,重启apache测试。


注:相关教程知识阅读请移步到PHP教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选