1.Apache與Tomcat比較聯繫
apache支持靜態頁,tomcat支持動態的,比如servlet等。
一般使用apache+tomcat的話,apache只是作爲一個轉發,對jsp的處理是由tomcat來處理的。
apache可以支持php\cgi\perl,但是要使用java的話,你需要tomcat在apache後臺支撐,將java請求由apache轉發給tomcat處理。
apache是web服務器,Tomcat是應用(java)服務器,它只是一個servlet(jsp也翻譯成servlet)容器,可以認爲是apache的擴展,但是可以獨立於apache運行。
2.整合的好處是:
如果客戶端請求的是靜態頁面,則只需要Apache服務器響應請求
如果客戶端請求動態頁面,則是Tomcat服務器響應請求
因爲jsp是服務器端解釋代碼的,這樣整合就可以減少Tomcat的服務開銷
先安裝LAMP環境·······略
3./usr/local/tomcat/bin/各種腳本的作用
實現環境:
Linux:Centos6.5
Apache:httpd-2.2.16.tar.gz
Cmake:cmake-2.8.10.2.tar.gz
Mylsq:mysql-5.6.10.tar.gz
Php:php-5.3.28.tar.gz
所用到的軟件:
Tomcat:apache-tomcat-7.0.64.tar.gz
Tomcat連接器:tomcat-connectors-1.2.32-src.tar.gz
JDK:jdk-7u67-linux-x64.tar.gz
Tomcat連接數據庫:mysql-connector-java 5.1.17
1.安裝JDK
·解壓並移動JDK
tar zxvf jdk-8u31-linux-i586.tar.gz mv jdk1.8.0_31 /usr/local/jdk
·修改環境變量
vim /etc/profile.d/java.sh
JAVA_HOME=/usr/local/jdk JAVA_BIN=/usr/local/jdk/bin JRE_HOME=/usr/local/jdk/jre PATH=$PATH:/usr/local/jdk/bin:/usr/local/jdk/jre/bin CLASSPATH=/usr/local/jdk/jre/lib:/usr/local/jdk/lib:/usr/local/jdk/jre/lib/charsets.jar
·初始化
. /etc/profile.d/java.sh
·測試是否配置成功
java -version
2.安裝Tomcat
·解壓並移動
tar zxvf apache-tomcat-7.0.57.tar.gz mv apache-tomcat-7.0.57 /usr/local/tomcat
·啓動Tomcat
cd /usr/local/tomcat/bin ./shutdown.sh #停止tomcat ./startup.sh #啓動tomcat
·測試tomcat
網站輸入ip:8080 出現tomcat默認頁面
3.整合tomcat和Apache #需要藉助apache-tomcat的連接器
·解壓tomcat連接器
tar zxvf tomcat-connectors-1.2.32-src.tar.gz
·指定Apache的apxs路徑
cd tomcat-connectors-1.2.32-src/native ./configure --with-apxs=/usr/local/apache2/bin/apxs make
·添加mod_jk模塊
tar zxvf jakarta-tomcat-connectors-1.2.15-src.tar.gz cd jakarta-tomcat-connectors-1.2.15-src/jk/native ./configure --with-apxs=/usr/local/apache2/bin/apxs make cp ./apache-2.0/mod_jk.so /usr/local/apache2/modules/
·Apache整合tomcat
vim /usr/local/apache2/conf/httpd.conf 在DirectoryIndex上添加nindex.jsp <IfModule dir_module> DirectoryIndex index.jsp index.php index.html </IfModule>
·增加關於加載mod_jk的語句
·在/usr/local/apache2/conf下建立配置文件mod_jk.conf
指出mod_jk模塊工作所需要的工作文件workers.properties的位置, jk日誌放在哪裏, jk日誌級別, 選擇日誌格式, JkOptions送SSL關鍵尺寸顯示, JkRequestLogFormat設置要求的格式 , 將所有servlet 和jsp請求通過ajp13的協議送給Tomcat,讓Tomcat來處理
vim /usr/local/apache2/conf/mod_jk.conf JkWorkersFile /usr/local/apache2/conf/workers.properties ###### Where to put jk logs JkLogFile /usr/local/apache2/logs/mod_jk.log ###### Set the jk log level [debug/error/info] JkLogLevel info ###### Select the log format JkLogStampFormat "[%a %b %d %H:%M:%S %Y]" ###### JkOptions indicate to send SSL KEY SIZE, JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories ###### JkRequestLogFormat set the request format JkRequestLogFormat "%w %V %T" ###### 將所有servlet 和jsp請求通過ajp13的協議送給Tomcat,讓Tomcat來處理 JkMount /servlet/* worker1 JkMount /*.jsp worker1 JkMount /*.do worker1
·在/usr/local/apache2/conf下建立配置文件workers.properties
定義一個工人叫worker1 ajp13和類型
vim /usr/local/apache2/conf/workers.properties worker.list=worker1 worker.worker1.type=ajp13 worker.worker1.host=localhost worker.worker1.prot=8009 worker.worker1.lbfactor=50 worker.worker1.cachesize=10 worker.worker1.cache_timeout=600 worker.worker1.socket_keepalive=1 worker.worker1.socket_timeout=300
·找到tomcat配置文件路徑,編輯server.xml
vim /usr/local/tomcat/conf/server.xml
·在<host>段加入
<Context path="" docBase="/usr/local/apache2/htdocs" debug="0" reloadable="ture" crossContext="ture"/>
·編輯一個index.jsp的網頁
vim /usr/local/apache2/htdocs/index.jsp <% out.println("hello tomcat "); %>
·重啓tomcat和apache
/usr/local/apache2/bin/apachectl restart cd /usr/local/tomcat/bin ./shutdown.sh ./startup.sh
·整合完成,測試
輸入ip地址,出現hello tomcat
4.連接數據庫
jsp使用mysql-connector-java 5.1.17連接mysql
·解壓zip包
unzip mysql-connector-java 5.1.17.zip
·把mysql-connector-java 5.1.17-bin.jar 放到tomcat目錄下的lib目錄
cp mysql-connector-java-5.1.17-bin.jar /usr/local/tomcat/lib/
·編寫一個測試頁面 test_mysql.jsp,如果頁面顯示OK就標明可以連接到數據庫
vim /usr/local/apache2/htdocs/test_mysql.jsp <%@ page language="java" %> <%@ page import="com.mysql.jdbc.Driver" %> <%@ page import="java.sql.*" %> <% String driverName="com.mysql.jdbc.Driver"; String userName="root"; String userPasswd="123"; String dbName="test"; String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd; Class.forName("com.mysql.jdbc.Driver").newInstance(); try { Connection connection=DriverManager.getConnection(url); out.println(" O K !"); connection.close(); } catch( Exception e ) { out.println( "connent mysql error:" + e ); } %>
·重啓tomact和Apache,屬於ip/test_mysql.jsp 出現OK 則連接成功