1.1 下载软件
1、Apr :(wget http://mirrors.hust.edu.cn/apache//apr/apr-1.5.1.tar.gz)
2、Apr-util :(wget http://mirrors.hust.edu.cn/apache//apr/apr-util-1.5.4.tar.gz)
3、Pcre :(wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.35.tar.bz2)
4、Openssl :(wget http://www.openssl.org/source/openssl-1.0.2.tar.gz)
5、Apache :(wget http://www.eu.apache.org/dist/httpd/httpd-2.4.12.tar.gz)
1.2 安装Apache
请按照下面的顺序安装:
1.2.1安装apr
[root@xt test]# tar -zxf apr-1.5.1.tar.gz
[root@xt test]# cd apr-1.5.1
[root@xt apr-1.5.1]# ./configure --prefix=/usr/local/apr
[root@xt apr-1.5.1]# make && make install
1.2.2安装apr-util
[root@xt test]# tar -zxf apr-util-1.5.4.tar.gz
[root@xt test]# cd apr-util-1.5.4
[root@xt apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util -with- apr=/usr/local/apr/bin/apr-1-config
[root@xt apr-util-1.5.4]# make && make install
1.2.3 安装pcre
[root@xt test]#tar -xjf pcre-8.35.tar.bz2
[root@xt test]#cd pcre-8.35
[root@xt pcre-8.35]#./configure --prefix=/usr/local/pcre
[root@xt pcre-8.35]#make && make install
1.2.4 安装openssl
[root@xt test]#tar -zxf openssl-1.0.2.tar.gz
[root@xt test]# cd openssl-1.0.2
[root@xt openssl-1.0.2]#./config --prefix=${destination_dir} -fPIC no-gost no-shared no-zlib
[root@xt openssl-1.0.2]#make depend ; make install
1.2.5 安装apache
[root@xt test]Tar -zcf httpd-2.4.12.tar.gz
[root@xt test]Cd httpd-2.4.12
[root@xt httpd-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@xt httpd-2.4.12]#make ; make install
1.3 配置Apache,让apache支持https和fcgi
1.3.1 对https的支持
原理:一般一个http请求默认是80端口,一个https请求默认是443端口,这就要对apache配置虚拟主机以支持同域名多端口。在apache安装目录的conf/extra文件中有一个httpd-ssl.conf文件,里面是这些内容。
Listen 443
<VirtualHost _default_:443>
DocumentRoot "/opt/wacos/tools/apache/htdocs"
ServerName www.example.com:443
ErrorLog "/opt/wacos/tools/apache/logs/error_log"
TransferLog "/opt/wacos/tools/apache/logs/access_log"
</VirtualHost >
https协议是http协议里面加了一层ssl加密过程。服务器端需要一个证书文件和一个密钥文件。下面是生成证书和密钥的过程:
1、openssl genrsa -out server.key 2048
运行openssl命令,生成2048位长的私钥server.key
2、openssl req -new -key server.key -out server.csr
输入命令以后,需要填写如下内容:
Country Name(国家:中国填写CN)
State or Province Name(区域或是省份:CHONGQING)
Locality Name(地区局部名字:CHONGQING)
Organization Name(机构名称:填写公司名)
Organizational Unit Name(组织单位名称:部门名称)
Common Name(网站域名)
Email Address(邮箱地址)
A challenge password(输入一个密码)
An optional company name(一个可选的公司名称)
输入完这些内容,就会在当前目录生成server.csr文件
3、openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
使用上面的密钥和CSR对证书进行签名
到此为止,就有了服务器私有密钥(server.key)和服务器证书(server.crt)。
接下来把密钥和证书路径添加到上面配置的虚拟主机里面:
SSLCertificateFile "/opt/wacos/tools/apache/conf/server.crt"
SSLCertificateKeyFile "/opt/wacos/tools/apache/conf/server.key"
把https的开关打开
SSLEngine on
这样就完成了对httpd-ssl.conf文件的配置。
在conf目录下有一个httpd.conf文件,打开,
找到#Include conf/extra/httpd-ssl.conf一行,把#去掉。
找到#LoadModule ssl_module modules/mod_ssl.so一行,把#去掉。
重启apache服务器,在浏览器上进行https测试。
1.3.2 对fcgi的支持
Fcgi是一个进程,需要在apache启动的时候同时加载进程。Apache要支持fcgi,需要加载mod_fcgid.so模块。
安装mod_fcgid.so模块:
[root@xt test](wget http://www.apache.org/dist/httpd/mod_fcgid/mod_fcgid-2.3.9.tar.gz)
[root@xt test]tar -zxf mod_fcgid-2.3.9.tar.gz
[root@xt test]cd mod_fcgid-2.3.9
[root@xt test]APXS=/opt/wacos/tools/apache/bin/apxs ./configure.apxs
[root@xt test]make && make install
安装成功后,会在module目录中生成mod_fcgid.so文件
打开httpd.conf文件,找到#LoadModule fcgid_module modules/mod_fcgid.so一行,去掉#号。添加以下代码:
<IfModule fcgid_module>
ScriptAlias /fcgi-bin/ "/opt/wacos/tools/apache/fcgi-bin/"
<Directory "/opt/wacos/tools/apache/fcgi-bin">
SetHandler fcgid-script
Options +ExecCGI
Order allow,deny
Allow from all
</Directory>
</IfModule>
至此,对fcgi支持的配置已经完成。
写一个cgi程序放在fcgi-bin目录中,重启apache测试。
原文地址:http://blog.csdn.net/nyist327/article/details/43707075