一、 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