歡迎您光臨本站 註冊首頁

RHEL3U6下MAP TOMCAT JDK MYSQL連接池配置

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

  前言:

  好象在CU發PDF寫得多好都加不了精華,原創的提示也不見了,我是個挺虛榮的人,一看什麼都沒了,那得趕緊寫個東西加精華吧,哈哈,最近發現CU討論apache2.2.0的帖子日益加溫,正好幾天前給客戶做了一套系統,把心得告訴大家,省得大家多走冤枉路.這裡主要變化的就是配置tomcat不用連接模塊了,關於這個tomcat,我印象最深的是有一次在公司鬱悶了,就去中國移動面試,那的技術主管問:你用過tomcat和apache整合嗎?我說接觸過沒研究,只用resin,然後他問我那tomcat開的埠有哪些,都是做什麼的呢?我說這個我得查資料,其實主要就是8005、8009、8080這三個埠.呵呵,結果可想而知——我由於不知道tomcat的啟動埠而被PASS了.其實想想也挺可笑的,我說的都是實話,技術人員嗎,不可能什麼都在腦子裡,咱們中國人常說:好腦子不如爛筆頭.我有記錄的習慣,什麼都習慣寫下來,腦子只要記住該記的就行了,呵呵,不過我勸諸位想找個好歸宿的還是要有好腦子,最好過目不忘,要不找工作的時候也很危險呦!!還有你覺不覺得找工作看英語過幾級,到底有多少人在工作里非要和英語親密接觸呢?我就是,哈哈,但我有dr.eye,呵呵,無奈了……

  廢話少說,讓咱們開始以配置這個曾經把我PASS的環境吧 :)

  第一章:MAP安裝、測試、優化、安全

  1、Mysql安裝我的版本選擇是mysql-4.0.25.tar.gz,選擇這個OLD版本是我其他機器的資料庫也是這個版本,這樣相互導來導去方便點.按我如下傻瓜方式安裝吧.

  # tar xzvf mysql-4.0.25.tar.gz # cd mysql-4.0.25 # useradd mysql -s /sbin/nologin # CFLAGS="-O3 -mpentiumpro" CXX=gcc CXXFLAGS="-O3 -mpentiumpro -felide-constructors -fno-exceptions -fno-rtti" ./configure ——prefix=/usr/local/mysql ——enable-assembler ——with-mysqld-ldflags=-all-static ——with——charset=gbk ——with-extra-charsets=all;make;make install睡會兒吧!大概5分鐘.——我的1850差不多是這樣.為什麼用這些參數,請參考./configure ——help # cp support-files/my-huge.cnf /etc/my.cnf # cd /usr/local/mysql # bin/mysql_install_db ——user=mysql # chown -R root . # chown -R mysql var # chgrp -R mysql . # bin/mysqld_safe ——user=mysql & # /usr/local/mysql/bin/mysqladmin -u root password 'hahaha' # mysql -p Enter password:Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 2 to server version: 4.0.25-log Type 'help;' or 'h' for help. Type 'c' to clear the buffer. mysql>use mysql Database changed mysql> delete from user where Password='';Query OK, 3 rows affected (0.01 sec)

  mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)

  mysql> exit Bye # cp /usr/local/mysql/share/mysql/mysql.server /etc/rc.d/init.d # chmod 500 /etc/rc.d/init.d/mysql.server # cd /etc/rc.d/rc3.d # ln -s ……/init.d/mysql.server S99mysql # ln -s ……/init.d/mysql.server K99mysql Mysql安裝完了,那我們開始裝apache2.2.0

  2、安裝apache-2.2.0到這我們就要說說APR了,這個東西是Apache可移植運行庫,源自為了伺服器代碼的多平台性, 嘗試將不同的操作系統特定位元組與操作系統無關代碼隔離.結果就提供了一個基礎API的介面.具體作用大家可參考http://fanqiang.chinaunix.net/app/web/2006-02-21/4012.shtml文章.apache-2.2.0提供了apr以及apr-util的源代碼要使用發行源代碼中自帶的apr/apr-util源代碼進行安裝,你必須手動完成:我們先編譯和安裝 apr 1.2 # tar xzvf httpd -2.2.0.tar.gz # cd httpd-2.2.0 # cd srclib/apr # ./configure ——prefix=/usr/local/apr # make # make install現在編譯和安裝 apr-util 1.2 # cd ……/apr-util # ./configure ——prefix=/usr/local/apr-util ——with-apr=/usr/local/apr/ # make # make install開始安裝配置 apache,在這裡我們需要一個mod_proxy_ajp模塊,這個是為整合tomcat用的,用2.2.0就是美,哈哈.

  cd ……/……/ # ./configure ——prefix=/usr/local/httpd220 ——enable-so ——enable-rewrite=share ——enable-proxy=share ——enable-proxy-ajp=share ——enable-dav=share ——with-apr=/usr/local/apr/ ——with-apr-util=/usr/local/apr-util/ # make # make install現在讓我們查看編譯進apache的模塊:# cd /usr/local/httpd220/bin # ./httpd -l我們要的mod_proxy_ajp.c也在其中就可以了.

  現在不用配置apache的conf文件,我們直接安裝php,我用的是4.4.2版本# cd /usr/local/httpd220/bin # cp apachectl /etc/init.d/httpd # cd /etc/rc3.d # ln -s ……/init.d/httpd S85httpd # ln -s ……/init.d/httpd K85httpd

  3、安裝php # tar xzvf php-4.4.2.tar.gz # cd php-4.4.2 # ./configure ——prefix=/usr/local/php442 ——with-apxs2=/usr/local/httpd220/bin/apxs ——with-config-file-path=/usr/local/php442 ——with-mysql=/usr/local/mysql ——with-mail ——sysconfdir=/usr/local/php442/etc ——with-gd ——with-zlib ——with-png ——with-jpeg ——with-freetype ——enable-sockets # make;make install cp php.ini-dist /usr/local/php442/php.ini

   4、安裝modsecurity(mod_security 可以加強apache的安全性,特別是在防sql 注入上有很好的效果.)

  下載站點:http://www.modsecurity.org/download/ # tar zxvf modsecurity-apache-1.9.2.tar.gz # cd modsecurity-apache-1.9/apache2/ # /usr/local/httpd220/bin/apxs -cia mod_security.c打開httpd.conf查看是否有如下文字加入LoadModule security_module modules/mod_security.so如沒有則加上去在httpd.conf中添加下列一段mod_security的配置文件

  SecFilterEngine On SecFilterCheckURLEncoding On SecFilterDefaultAction "deny,log,status:500" #SecFilterForceByteRange 32 126 #SecFilterScanPOST On SecAuditLog logs/audit_log ### SecFilter "../" ##### SecFilter /etc/*passwd SecFilter /bin/*sh

  #for css attack SecFilter "<( | )*script" SecFilter "<(.| ) >" #for sql attack SecFilter "delete[ ] from" SecFilter "insert[ ] into" SecFilter "select. from" SecFilter "union[ ] from" SecFilter "drop[ ]"

  5、apache2 安裝 mod_evasive 防DDOS攻擊mod_evasive 的前身就是mod_dosevasive下載站點:[url]http://www.nuclearelephant.com/projects/mod_evasive[/url] # tar zxvf mod_evasive_1.10.1.tar.gz # cd mod_evasive # /usr/local/httpd220/bin/apxs -cia mod_evasive20.c打開httpd.conf查看是否有如下文字加入LoadModule evasive20_module modules/mod_evasive20.so如沒有則加上去在httpd.conf中添加下列一段mod_security的配置文件

  DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10

  6、配置httpd.conf注意2.2.0里默認是如下的用戶和組,而不是原來的nobody User daemon Group daemon ServerAdmin [email]xu1701@hotmail.com[/email] 這個地方配置成你自己的信箱ServerName YourDomainName:80 這個地方把#號打開,紅色的地方你自己編輯DocumentRoot "/usr/local/httpd220/htdocs" 這個地方你換成自己的WEB路徑Options Indexes FollowSymLinks 這個地方你把Indexes 去掉,除非你想把你的文件顯示出來DirectoryIndex index.html index.jsp index.php index.htm 這個地方加三個主頁文件名搜索AddType application,找到后在AddType application/x-compress .Z AddType application/x-gzip .gz .tgz下加一行,我們用了PHP了嗎!哈哈.

  AddType application/x-httpd-php .php

  7、啟動apache,看看我們的結果進入你自己的DocumentRoot,建立一個文件test.php,內容是

  # /usr/local/httpd220/bin/apachectl start訪問[url]http://Your[/url] ip/test.php如果看到php信息界面,那麼恭喜你,你的MAP初步配置好了.還有什麼,優化啊!

  8、php速度優化我們先要安裝Zend Optimizer,此程序可以從Zend Technologies的網站([url]http://www.zend.com/[/url])免費得到.它的原理很簡單,通過檢測Zend引擎產生的中間代碼,並且優化它來得到更高的執行速度.我認為優化代碼是一項頗煩瑣的工作,優化后的代碼可能變得難以理解,因此我建議你在PHP的源代碼較為複雜的時候,用Zend Optimizer來做這個優化的工作,好處是它不會令你的代碼變得複雜難懂.

  安裝Zend Optimizer是非常簡單的.我們需要先下載ZendOptimizer-2.6.0-linux-glibc21-i386.tar.gz # tar xzvf ZendOptimizer-2.6.0-linux-glibc21-i386.tar.gz # cd ZendOptimizer-2.6.0 # ./install這樣就可以安裝了,不過如果你不用vnc這樣的遠程桌面顯示,可能安裝起來很費勁,我建議你用VNC來安裝.安裝後會自動在你的php.ini加入如下六行,根據路徑不同,你的可能和我的路徑不完全一致:

  zend_optimizer.optimization_level=15 zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-2_6_0 zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-2_6_0 zend_optimizer.version=2.6.0 zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so

  我們修改一下zend_optimizer.optimization_level的參數(實際只有這個參數用我們修改),這個參數是表示優化程度的,這裡定義啟動多少個優化過程,默認值是 15 ,表示同時開啟 10 個優化過程中的 1-4 ,我們可以將這個值改為 1023 ,表示開啟全部10個優化過程.

  zend_optimizer.optimization_level=1023重新啟動apache,如果執行test.php時看到Zend Technologies with Zend Optimizer v2.6.0,那麼就說明以已經應用了.

  優化完了,我們還需要加速代碼執行過程.由於turck-mmcache的作者已經被zend招安了,turck-mmcache很久沒有更新了.我們這次介紹另一個不錯的開源優化php代碼軟體eAccelerator.安裝很簡單,跟我一步一步來先到http://eaccelerator.net/wiki/下載最新版本,目前是eaccelerator-0.9.4 # unzip eaccelerator-0.9.4.zip # export PHP_PREFIX="/usr/local/php442" # cd eaccelerator-0.9.4 # $PHP_PREFIX/bin/phpize # ./configure ——enable-eaccelerator=shared ——with-php-config=$PHP_PREFIX/bin/php-config # make # make install安裝完成後你會看到下面這麼一句,注意你的路徑可能和我是不相同的.

  /usr/local/php442/lib/php/extensions/no-debug-non-zts-20020429/然後我們要配置php.ini,根據您系統的情況,一般有兩種安裝方式,一種按照Zend的擴展,一種是PHP擴展.如果是前者,請在您的 php.ini 中加入以下代碼:zend_extension="/usr/local/php442/lib/php/extensions/no-debug-non-zts-20020429/eaccelerator.so" eaccelerator.shm_size="16" eaccelerator.cache_dir="/tmp/eaccelerator" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.check_mtime="1" eaccelerator.debug="0" eaccelerator.filter="" eaccelerator.shm_max="0" eaccelerator.shm_ttl="0" eaccelerator.shm_prune_period="0" eaccelerator.shm_only="0" eaccelerator.compress="1" eaccelerator.compress_level="9"如果您的系統打開了安全模式,必須使用, "zend_extension_ts" 取代 "zend_extension". PHP擴展安裝模式,請在您的 php.ini 中加入extension="/usr/local/php442/lib/php/extensions/no-debug-non-zts-20020429/eaccelerator.so" eaccelerator.shm_size="16" eaccelerator.cache_dir="/tmp/eaccelerator" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.check_mtime="1" eaccelerator.debug="0" eaccelerator.filter="" eaccelerator.shm_max="0" eaccelerator.shm_ttl="0" eaccelerator.shm_prune_period="0" eaccelerator.shm_only="0" eaccelerator.compress="1" eaccelerator.compress_level="9"

  修改後保存,開始創建cache文件夾# mkdir /tmp/eaccelerator # chmod 0777 /tmp/eaccelerator重新啟動apache,如果訪問test.php你看到eAccelerator v0.9.4, Copyright (c) 2004-2004 eAccelerator, by eAccelerator with Zend Extension那就成功了.

  第二章:Jdk Tomcat安裝及配置

  1、Jdk安裝Jdk 是Java開發工具包 (Java Development Kit ) 的縮寫.它是一種用於構建在 Java 平台上發布的應用程序、applet 和組件的開發環境.

  Jdk是一切java應用程序的基礎,所有的java應用程序是構建在這個之上的.它是一組API,也可以說是一些java Class.下載站點:[url]http://java.sun.com/j2se/1.5.0/download.jsp[/url]最新版本:JDK 5.0 Update 6下面開始安裝# rpm -qa | grep libgcj libgcj-3.2.3-53 libgcj-ssa-devel-3.5ssa-0.20030801.48 libgcj-ssa-3.5ssa-0.20030801.48 libgcj-devel-3.2.3-53 # rpm -e gcc-java-3.2.3-53 # rpm -e libgcj-devel # rpm -e redhat-lsb # rpm -e gettext-0.11.4-7 # rpm -e libgcj # chmod x jdk-1_5_0_06-linux-i586-rpm.bin # ./jdk-1_5_0_06-linux-i586-rpm.bin # vi ~/.bash_profile把其改成如下:JAVA_HOME=/usr/java/jdk1.5.0_06 CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$JAVA_HOME/jre/bin BASH_ENV=$HOME/.bashrc TOMCAT_HOME=/usr/local/tomcat USERNAME="root"

  export USERNAME BASH_ENV PATH JAVA_HOME CLASSPATH TOMCAT_HOME使環境變數起作用# source ~/.bash_profile # java # javac如果java 和javac運行了,說明java環境變數配置成功.

  2、Tomcat安裝下載站點:http://apache.linuxforum.net/dist/jakarta/tomcat-5/最新版本5.5.16 # tar zxvf apache-tomcat-5.5.16.tar.gz # mv apache-tomcat-5.5.16 /usr/local/tomcat tomcat這個東西幾乎是解壓以後就能跑了

  3、配置tomcat及apache整合# vi /usr/local/tomcat/conf/web.xml

  javaEncoding GB18030

  把上面的文字加到3上方為了配置文件的可讀性,我們再次修改apache配置文件,把如下開關打開vi /usr/local/httpd220/conf/httpd.conf # Virtual hosts Include conf/extra/httpd-vhosts.conf # vi /usr/local/httpd220/conf/extra/httpd-vhosts.conf NameVirtualHost YourIp:80

  DirectoryIndex index.jsp

  ProxyPass / ajp://localhost:8009/ ProxyPassReverse / ajp://localhost:8009/ ServerAdmin Yourname@DOMAIN ServerName YourIp ServerAlias www ErrorLog logs/YourIp-error_log CustomLog logs/YourIp-access_log common

  4、啟動tomcat和apache # /usr/local/tomcat/bin/startup.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/java/jdk1.5.0_06 # /usr/local/httpd220/bin/apachectl restart

   5、訪問測試我們訪問[url]http://YourIp/[/url],看到什麼?

  如果你能看到tomcat默認頁面,那麼恭喜你,tomcat和apache整合成功了.

  第三章:Mysql連接池的加入及測試下載最新的mysql-connector-java-3.1.12.tar.gz # tar xzvf mysql-connector-java-3.1.12.tar.gz # cd mysql-connector-java-3.1.12 # cp mysql-connector-java-3.1.12-bin.jar /usr/local/tomcat/common/lib # vi ~/.bash_profile修改CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar 為CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:/usr/local/tomcat/common/lib/mysql-connector-java-3.1.12-bin.jar更新bash # . ~/.bash_profile我們一會用剛才那個虛擬主機測試一下# mkdir /usr/local/httpd220/htdocs/test # cd /usr/local/httpd220/htdocs/test # vi index.jsp 內容如下:

  您的第一個欄位內容為:您的第二個欄位內容為:

  # vi /usr/local/tomcat/conf/server.xml appBase="/usr/local/httpd220/htdocs/test" name="test"> crossContext="true" docBase="." path="" reloadable="true">

  # vi /usr/local/httpd220/conf/extra/httpd-vhosts.conf修改這個虛擬主機的配置為如下:

  DirectoryIndex index.jsp

  ProxyPass / ajp://localhost:8009/ ProxyPassReverse / ajp://localhost:8009/ ServerAdmin [email]xu1701@hotmail.com[/email] ServerName 211.100.30.238 ServerAlias www ErrorLog logs/211.100.30.238-error_log CustomLog logs/211.100.30.238-access_log common

  重新啟動tomcat和apache,訪問[url]http://Your[/url] Ip/如果出現個錯誤頁面,提示Host 'Your host name' is not allowed to connect to this MySQL server那麼你只要在mysql下執行mysql> grant all on *.* to root@ Your host name identified by "hahaha";Query OK, 0 rows affected (0.00 sec)

  mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)

  如果看到您的第一個欄位內容為: 您的第二個欄位內容為:localhost root Your host name root Tomcat JDK mySQL完整測試,恭喜你,資料庫操作成功!

  那麼恭喜你,一切OK,可以開始你的頁面設計和製作了.

 


[火星人 ] RHEL3U6下MAP TOMCAT JDK MYSQL連接池配置已經有630次圍觀

http://coctec.com/docs/linux/show-post-56313.html