apache安装详解
评论(0) 浏览量(4309)

转载文章: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/

没有登录不能评论