apache+https安装

本文介绍Apache服务器的安装步骤,包括不同版本的编译命令及所需依赖库的安装方法。此外,还详细阐述了如何配置Apache以实现应用部署、模块加载、代理及重定向等功能,并针对HTTPS服务进行了特别说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、    apache安装

1.   apache安装

1)  httpd-2.2.23版本编译命令:

./configure --prefix=/usr/local/apache2 (安装目录参数后面可以不加任何参数,直接安装即可)

make

make install

2)  httpd-2.4.4版本编译命令:

./configure--prefix=/usr/local/apache2 --with-apr=/usr/local/apr--with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre (除了指定Apache的安装目录外,还要安装apr、apr-util、pcre,并指定参数)

make

make install

在编译Apache(在安装httpd-2.4.3时遇到的问题)时分别出现了aprnot found、APR-util not found、pcre-config for libpcre not found的问题,下面就httpd-2.4.3的这些问题解决来实际操作一把。安装遇到问题

2.   安装apache ssl

1.1的apache安装方法安装的apache 是不带任何扩展模块的,因此如需要重定向、代理等服务,而ssl服务模块却不能通过加载模块的形式进行加载因此,采用下面的方式进行安装。而在安装的时候发现部分apache源码安装包中自带的apr 和apr-util默认安装有问题以及在不同的linux系统中对应的openssl的版本不同而1.0e之前的openssl版本对https服务的tsl支持较差因此下面是对应指定apr apr-util openssl三个的apache全量model模块的安装

1)  安装APR

[root@web1 httpd-2.2.19]# cd srclib/apr

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

[root@web1 apr]# make

[root@web1 apr]# make install

 

2)  安装APR-util

[root@web1 httpd-2.2.19]# cd srclib/apr-util

[root@web1 httpd-2.2.19]# ./configure--prefix=/usr/local/apr-util --with-apr=/usr/local/apr

[root@web1 httpd-2.2.19]# make && makeinstall

 

3)  安装openssl

openssl编译:

./config --prefix=/usr/local/apache/openssl -fPIC no-gost no-shared no-zlib

 make depend

make install

4)  安装apache

Httpd-2.2.31版本的安装:

./configure --prefix=/apache/apache2--with-ssl=/apache/openssl --with-apr=/apache/apr --with-apr-util=/apache/apr-util--enable-ssl --enable-modules=all --enable-so --enable-mods-shared=all

make

make install

apache模块加载:

Httpd-2.4.4版本的安装:

2.4以上的版本安装需要pcre依赖库

所以安装的时候需要提前安装pcre

./configure --prefix=/apache/apache2441--with-ssl=/apache/openssl101t --with-apr=/apache/apr--with-apr-util=/apache/apr-util --with-pcre=/apache/pcre --enable-ssl--enable-modules=all --enable-so --enable-mods-shared=all

 

二、     apache部署应用

1.   apache启停

检测系统默认apache是否开启

ps –ef| grep httpd

 

然后可以到指定目录下停止原有服务

然后切到apache的bin目录下

启动命令:   /apache/apache2/bin/apachectlstart

停止命令:      /apache/apache2/bin/apachectlstop

重启命令:      /apache/apache2/bin/apachectlrestart

网站放在/apache/apache2/htdocs目录下

在IE中通过http://localhost:80,如果看到页面中显示“It works!”字样,则代表Apache验证通过。如果网站的index后缀是PHP格式的,则要修改httpd.conf配置文件(/apache/apache2/conf),在DirectoryIndex增加 index.php。

2.   apache模块加载

进入Apache源码包,添加所需的模块
# cd httpd-2.2.18/modules

# /apache/apache2/bin/apxs -c -i -a proxy/mod_proxy.c proxy/proxy_util.c
# /apache/apache2/bin/apxs -c -i -a proxy/mod_proxy_http.c
# /apache/apache2/bin/apxs -c -i -a proxy/mod_proxy_connect.c
# /apache/apache2/bin/apxs -c -i -a proxy/mod_proxy_ajp.c
# /apache/apache2/bin/apxs -c -i -a proxy/mod_proxy_balancer.c
# /apache/apache2/bin/apxs -c -i -a generators/mod_status.c

添加完成后,在httpd.conf中可以看到以下配置:

# Example:
# LoadModule foo_module modules/mod_foo.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule status_module modules/mod_status.so


然后在启动apache的时候可能会遇到模块不存在的问题(如:mod_proxy_ajp.so)用不到的模块 注释掉即可

3.   apache配置

1)  代理配置

进入apache安装目录的conf下 # cd /apache/apache2/conf/

创建 mod_proxy 主配置文件

vimextra/httpd-proxy.conf

ProxyRequestsOn

ProxyPreserveHostOn

ProxyPassMatch /*.gif$ ! #过滤gif

ProxyPassMatch /*.jpg$ ! #过滤jpg

ProxyPassMatch /*.png$ ! #过滤png

ProxyPassMatch /*.css$ ! #过滤css

ProxyPassMatch /*.js$ ! #过滤js

ProxyPassMatch /*.htm$ ! #过滤htm

ProxyPassMatch /*.html$ ! #过滤html

ProxyPassMatch /*.json$ ! #过滤 json

ProxyPassMatch /*.exe$ ! #过滤 exe

ProxyPassMatch /*.cab$ ! #过滤cab

ProxyPass /appa http://100.100.12.117:6001/appa 
ProxyPass /appb http://100.100.12.117:6005/appb
SetEnv force-proxy-request-1.0.1
SetEnv proxy-nokeepalive 1

vimhttpd.conf修改Apache主配置文件,使其关联mod_proxy主配置文件

Includeconf/extra/httpd-proxy.conf

重新启动Apache

/apache/apache2/bin/apachectl restart

2)  重定向配置

进入apache安装目录的conf下在主配置文件 http.conf中引用重定向模块

LoadModule rewrite_modulemodules/mod_rewrite.so

然后在代理配置文件httpd-proxy.conf加上

RewriteEngineOn #打开重定向开关

RewriteRule^/corporbank$ /corporbank/login.html [R=301,L]  #设定重定向规则

3)  虚机配置

进入apache安装目录的conf下在主配置文件 http.conf中引用虚机模块

LoadModulerewrite_module modules/…

简单虚机配置

<VirtualHost*:80>

    DocumentRoot"/phpstudy/www/qdjxWebSite"    #网站根目录

    ServerName www.qdjxbank.com                             #网站访问域名

    ServerAlias qdjx.net qdjx.cn         #网站访问别名 可以设置多个 空格分割

  <Directory"/phpstudy/www/qdjxWebSite">

      Options FollowSymLinks ExecCGI

      AllowOverride All

      Order allow,deny                #禁止访问

      Allow from all                      #允许访问

      Require all granted

  </Directory>

</VirtualHost>

4)  https配置

https的配置是基于虚机的,进入apache安装目录的conf下在主配置文件 http.conf中引用ssl模块

LoadModulerewrite_module modules/…

https服务的搭建需要提前准备https的站点证书,然后进行下面的配置

NameVirtualHost*:6008                      #监听端口  默认是443

NameVirtualHost*:443                       

<VirtualHost*:6008>

DocumentRoot"/apache/apache2/htdocs"

ServerName*

ErrorLog"/apache/apache2/logs/error_log"

TransferLog"/apache/apache2/logs/access_log"

 <Directory"/apache/apache2/htdocs">

 #   Options None                       

 #   Options Indexes FollowSymLinks

     Options FollowSymLinks

     AllowOverride All

     Order allow,deny

     Allow from all

</Directory>

<Location/>

  Order Allow,Deny

  Deny from all

</Location>

SSLEngineon

SSLProtocolall -SSLv2 TLSv1

SSLCipherSuiteHIGH:MEDIUM:!aNULL:!MD5

SSLCertificateFile"/apache/apache2/conf/deny/deny.crt"

SSLCertificateKeyFile"/apache/apache2/conf/deny/deny.key"

SSLCertificateChainFile"/apache/apache2/conf/deny/ca.crt"

</VirtualHost>

代理配置和重定向的配置是可以放到虚机的配置中  如下:

<VirtualHost*:6008>

        DocumentRoot"/apache/apache2/htdocs"

        serverName a.bank1.top

        ErrorLog "/apache/apache2/logs/error_log"

        TransferLog"/apache/apache2/logs/access_log"

        SSLEngine on

        SSLProtocol all -SSLv2 TLSv1

        SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5

        SSLCertificateFile"/apache/apache2/conf/huxian/server.crt"

        SSLCertificateKeyFile"/apache/apache2/conf/huxian/server.key"

        SSLCertificateChainFile"/apache/apache2/conf/huxian/cfca.crt"

              ProxyRequestsOff

              ProxyPreserveHost On

        RewriteEngine On    

              ProxyPassMatch ^/$ !

              ProxyPassMatch ^(/.*\.gif)$ !

              ProxyPassMatch ^(/.*\.jpg)$ !   

              ProxyPassMatch ^(/.*\.png)$ !   

              ProxyPassMatch ^(/.*\.css)$ !

              ProxyPassMatch ^(/.*\.ico)$ !

              ProxyPassMatch ^(/.*\.js)$ !   

              ProxyPassMatch ^(/.*\.htm)$ !   

              ProxyPassMatch ^(/.*\.html)$ !   

              ProxyPassMatch ^(/.*\.json)$!   

              ProxyPassMatch ^(/.*\.exe)$ !   

              ProxyPassMatch ^(/.*\.cab)$ !

              RewriteRule ^/perbank$/perbank/index.html [R=301,L]

              ProxyPass /perbankhttp://100.100.12.117:8124/perbank

        ProxyPassReverse /perbank http://100.100.12.117:8124/perbank

        RewriteRule ^/corporbank$/corporbank/login.html [R=301,L]

        ProxyPass /corporbankhttp://100.100.12.117:8124/corporbank

        ProxyPassReverse /corporbankhttp://100.100.12.117:8124/corporbank

              SetEnv force-proxy-request-1.0.1

              SetEnv proxy-nokeepalive 1                

</VirtualHost>

三、     安装遇到问题

1.   解决apr not found问题

 [root@localhost bin]# tar -zxfapr-1.4.5.tar.gz

 [root@localhost apr-1.4.5]# ./configure--prefix=/usr/local/apr

 [root@localhost apr-1.4.5]# make

 [root@localhost apr-1.4.5]# make install

2.   解决APR-util not found问题

 [root@localhost bin]# tar -zxfapr-util-1.3.12.tar.gz

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

 [root@localhost apr-util-1.3.12]# make

 [root@localhost apr-util-1.3.12]# make install

3.   解决pcre-config for libpcre not found问题

 [root@localhost ~]# unzip pcre-8.31.zip

 [root@localhost ~]# cd pcre-8.31

 [root@localhost pcre-8.31]# ./configure--prefix=/usr/local/pcre

 [root@localhost pcre-8.31]#make[root@localhost pcre-8.31]# make install

在make  pcre的时候如果出现libtool: line 990:g++: command not found错误,则说明没有安装gcc+,装上gcc+就可以编译过去

安装命令:yum install gcc gcc-c++

4.   解决https启动时报错算法命令问题

启动时需要打开模块:

LoadModulessl_module modules/mod_ssl.so

LoadModulesocache_shmcb_module modules/mod_socache_shmcb.so

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值