apache+https安裝

一、    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 foundAPR-util not foundpcre-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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章