转载文章:http://www.zzidc.com/main/help/showHelpContent/id_457.html
opensll地址:http://www.openssl.org/
apache http server地址:http://httpd.apache.org/download.cgi
mod_ssl地址:http://www.modssl.org/source/
生成证书
步骤1:生成密钥
命令:openssl genrsa 1024 > server.key
说明:这是用128位rsa算法生成密钥,得到server.key文件
步骤2: 生成证书请求
命令:openssl req -new -key server.key > server.csr
说明:这是用步骤1的密钥生成证书请求文件server.csr, 这一步提很多问题,一一输入
步骤2: 生成证书请求
命令:openssl req -x509 -days 365 -key server.key -in server.csr > server.crt
说明:这是用步骤1,2的的密钥和证书请求生成证书server.crt,-days参数指明证书有效期,单位为天
编译说明
./configure //配置源代码树
--prefix=/usr/local/apache2 //体系无关文件的顶级安装目录PREFIX ,也就Apache的安装目录。
--enable-module=so //打开 so 模块,so 模块是用来提 DSO 支持的 apache 核心模块
--enable-mods-shared=all //编译全部的模板,对于不需要我们可以在httpd.conf去掉。
--enable-cache //支持缓存
--enable-file-cache //支持文件缓存
--enable-mem-cache //支持记忆缓存
--enable-disk-cache //支持磁盘缓存
--enable-static-support //支持静态连接(默认为动态连接)
--enable-static-htpasswd //使用静态连接编译 htpasswd - 管理用于基本认证的用户文件
--enable-static-htdigest //使用静态连接编译 htdigest - 管理用于摘要认证的用户文件
--enable-static-rotatelogs //使用静态连接编译 rotatelogs - 滚动 Apache 日志的管道日志程序
--enable-static-logresolve //使用静态连接编译 logresolve - 解析 Apache 日志中的IP地址为主机名
--enable-static-htdbm //使用静态连接编译 htdbm - 操作 DBM 密码数据库
--enable-static-ab //使用静态连接编译 ab - Apache HTTP 服务器性能测试工具
--enable-static-checkgid //使用静态连接编译 checkgid
--disable-cgid //禁止用一个外部 CGI 守护进程执行CGI脚本
--disable-cgi //禁止编译 CGI 版本的 PHP
--enable-ssl // 编译 ssl模块。
解决编译Apache出现的问题:configure: error: APR not found . Please read the documentation
今日编译apache时出错:
#./configure --prefix……检查编辑环境时出现:
checking for APR... no
configure: error: APR not found . Please read the documentation
解决办法:
1.下载所需软件包:
wget http://archive.apache.org/dist/apr/apr-1.4.5.tar.gz
wget http://archive.apache.org/dist/apr/apr-util-1.3.12.tar.gz
wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.10/pcre-8.10.zip
2.编译安装:
yum remove apr-util-devel apr apr-util-mysql apr-docs apr-devel apr-util apr-util-docs
具体步骤如下:
a:解决apr not found问题>>>>>>
[root@xt test]# tar -zxf apr-1.4.5.tar.gz
[root@xt test]# cd apr-1.4.5
[root@xt apr-1.4.5]# ./configure --prefix=/usr/local/apr
[root@xt apr-1.4.5]# make && make install
b:解决APR-util not found问题>>>>
[root@xt test]# tar -zxf apr-util-1.3.12.tar.gz
[root@xt test]# cd apr-util-1.3.12
[root@xt apr-util-1.3.12]# ./configure --prefix=/usr/local/apr-util -with-apr=/usr/local/apr/bin/apr-1-config
[root@xt apr-util-1.3.12]# make && make install
c:解决pcre问题>>>>>>>>>
[root@xt test]#unzip -o pcre-8.10.zip
[root@xt test]#cd pcre-8.10
[root@xt pcre-8.10]#./configure --prefix=/usr/local/pcre
[root@xt pcre-8.10]#make && make install
4.最后编译Apache时加上:
--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre
成功编译完成~
编译命令:
./configure --prefix=/usr/local/apache --enable-module=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
问题:由于apr和apr-util编译和加载版本不一致问题,卸载低版本
rpm -e --allmatches --nodeps apr-1.2.7
编译httpd 2.2.29:configure: error: Size of "void *" is less than size of "long"
方法如下:
1、移除--with-pcre=/xxx/xxx/pcre选项,
2、增加 ap_cv_void_ptr_lt_long=no 。
启动Apache的时候报错:Invalid command 'ProxyPass', perhaps misspelled or defined by a module ...
看看配置文件httpd,问题出在 ProxyPass 这个环节:
ProxyPass /service http://localhost:8080/service
也就是要为 /service 这个请求路径匹配一个实际可用的路径,既然提示ProxyPass命令无效,那么肯定是某个地方的设置问题。
解决的方法就在httpd这个配置文件里,找到以下两条:
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
前面有# 号,说明被注释掉了,不起作用,把#号去掉,就可以了。
缺少Proxy模块问题,添加模块
#cd /root/httpd-2.***/modules/proxy
编译,这样需要一个一个模块进行编译
#/usr/local/apache/bin/apxs -c mod_proxy.c
#gcc -shared -o mod_proxy.so mod_proxy.o -lgdbm
#/usr/local/apache/bin/apxs -i -A -n mod_proxy mod_proxy.so
更简单的方法
#apachepath/bin/apxs -c -i -a mod_proxy.c proxy_util.c
#apachepath/bin/apxs -c -i -a mod_proxy_http.c proxy_util.c
#apachepath/bin/apxs -c -i -a mod_proxy_ajp.c ajp*.c
#apachepath/bin/apxs -c -i -a mod_proxy_balancer.c mod_proxy_connect.c mod_proxy_http.c
参考链接:http://blog.163.com/herod_xiao/blog/static/87188399201061252952280/