歡迎您光臨本站 註冊首頁

GCC4.1 + apache2+tomcat5 + mod_jk集成

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

GCC4.1 + apache2+tomcat5 + mod_jk集成


WEB安裝文檔
1.        GCC4.1.0安裝(可選)
下載地址: ftp://linuxforum.net/pub/gcc/releases/gcc-4.1.0/gcc-4.1.0.tar.bz2
# tar jxf gcc-4.1.0.tar.bz2
# mkdir gcc-build;cd gcc-build
# ../gcc-4.1.0/configure --prefix=/usr/local/gcc4.1 && make && make install
# cd /usr/bin; mv gcc _gcc
# ln -s /usr/local/gcc4.1/bin/gcc gcc
# gcc -v
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: ../gcc-4.1.0/configure --prefix=/usr/local/gcc4.1
Thread model: posix
gcc version 4.1.0
如果有以上的輸出,說明gcc編譯安裝成功.
2.        APACHE2.2編譯安裝
下載apache2.2源碼包        http://mirror.vmmatrix.net/apache/httpd/httpd-2.2.0.tar.bz2

2.1.        解壓縮
# tar jxvf httpd-2.2.0.tar.bz2
# cd httpd-2.2.0
2.2.        修改部分源代碼
# vi server/mpm/worker/worker.c
找到下面幾行,並改成如下的數值,其目的是在源碼中修改apache可支持的        最大線程數和最大客戶端數目。
# define DEFAULT_SERVER_LIMIT 256
# define MAX_SERVER_LIMIT 40000
# define DEFAULT_THREAD_LIMIT 256
# define MAX_THREAD_LIMIT 40000
2.3.        編譯配置
優化編譯選項及配置apache可載入的模塊
# CFLAGS="-O6 -mpentiumpro -fomit-frame-pointer" CXX=gcc CXXFLAGS="-O6 -mpentiumpro -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" \
> ./configure --prefix=/usr/local/apache2.2 --enable-mods-shared=all \
> --enable-so --with-mpm=worker --enable-deflate \
> --enable-cache --enable-disk-cache --enable-mem-cache --enable-file-cache \
> --enable-proxy --enable-suexec
2.4.        編譯及安裝
# gmake && make install
3.        優化apache配置選項
3.1.        修改MPM(多道處理器)參數
# cd /usr/local/apache2.2
# vi conf/extra/httpd-mpm.conf
找到如下選項,並改成對應的數值

<IfModule mpm_worker_module>
        ServerLimit        64
        ThreadLimit       128
        StartServers         8
        MaxClients        8192
        MinSpareThreads     50
        MaxSpareThreads     256
        ThreadsPerChild     128
        MaxRequestsPerChild  0
</IfModule>
3.2.        修改apache2.2子進程所有者
# vi /usr/local/apache2.2/conf/httpd.conf
把daemon改為nobody
User nobody
Group nobody
3.3.        語法檢查及建立軟鏈接
# vi /usr/local/apache2.2/conf/httpd.conf
在主配置文件httpd.conf添加如下一行,這樣做的目的是把apache的功能配置分成小文件,便於修改和移植
# Include conf/Includes/*.conf
運行語法檢查命令檢查語法,出現錯誤後繼續調整。
# ./bin/apachectl -t
沒有錯誤后在 /usr/local/ 目錄下建立軟鏈接
# ln -s apache2.2 apache2
4.        安裝tomcat和連接器JK
原先的JK2模塊已經不被官方支持,而且在性能上和現有的jk模塊也有差距,所以改用JK模塊。
4.1.        下載tomcat-5.5.16
http://apache.justdn.org/tomcat/tomcat-5/v5.5.16/bin/apache-tomcat-5.5.16.tar.gz

JDK自行安裝,安裝后要記得設置 JAVA_HOME系統變數。
# export JAVA_HOME=/usr/local/jdk1.5.0_06
# tar zxf apache-tomcat-5.5.16.tar.gz -C /usr/local/
# mv apache-tomcat-5.5.16 tomcat-5.5.16
# ln -s tomcat-5.5.16 tomcat1
# cd /usr/local/tomcat1/bin
# ./bin/startup.sh            //啟動tomcat
# ./bin/shutdown.sh                         //停止tomcat       
4.2.        下載連接器JK源碼

http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.15/jakarta-tomcat-connectors-1.2.15-src.tar.gz
4.3.        編譯安裝
# tar zxvf jakarta-tomcat-connectors-1.2.15-src.tar.gz
# cd jakarta-tomcat-connectors-1.2.15-src
# cd jk/native/
# ./configure --with-apxs=/usr/local/apache2.2/bin/apxs \
> --with-java-home=/usr/local/jdk15 --with-java-platform=2
# make
# cp apache-2.0/mod_jk.so /usr/local/apache2.2/modules/
4.4.        配置
# cd /usr/local/apache2.2/conf/Includes
# vi mod_jk.conf
在文本中添加如下配置
# Load mod_jk module
LoadModule jk_module            modules/mod_jk.so
# Where to find workers.properties
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
JkLogLevel              error
# 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"
JkShmFile     /usr/local/apache2/logs/mod_jk.shm
# Send jsp,servlet for context * to worker named worker1
JkMount  /status/* worker1
JkMount  /*.jsp worker1
JkMount  /*.jsps worker1
JkMount  /*.do worker1
JkMount  /*Servlet worker1
JkMount  /manager/* worker1
JkMount  /ScanIM worker1
JkMount  /SendIMMsg worker1
JkMount  /CheckMsgServlet worker1
JkMount  /TestIM worker1

# vi ../workers.properties
在配置文件中添加如下配置
# Define 1 real worker using ajp13
worker.list=worker1
# Set properties for worker1 (ajp13)
worker.worker1.type=ajp13
worker.worker1.host=127.0.0.1
worker.worker1.port=8009
worker.worker1.lbfactor=1
worker.worker1.cachesize=10
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1
worker.worker1.reclycle_timeout=300
4.5.        測試
如果在80埠能訪問.jsp,.do等文件說明配置連接器成功。
5.        配置靜態頁面壓縮輸出模塊deflate
這個擴展模塊在安裝apache的時候已經動態的編譯到apache里去了。現在進行配置。
# cd /usr/local/apache2.2/conf/Includes
上面添加的是apache擴展配置文件的目錄
# vi mod_deflate.conf
在配置文件里添加如下語句

DeflateMemLevel 9
SetOutputFilter DEFLATE
DeflateFilterNote ratio
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary

6.        配置mod_cache模塊
# cd /usr/local/apache2.2/conf/Includes
# vi mod_cache.conf
在配置文件里添加如下語句


<IfModule mod_cache.c>
#LoadModule disk_cache_module modules/mod_disk_cache.so
<IfModule mod_disk_cache.c>
CacheRoot /
CacheSize 256
CacheEnable disk /
CacheDirLevels 5
CacheDirLength 3
</IfModule>

LoadModule mem_cache_module modules/mod_mem_cache.so
<IfModule mod_mem_cache.c>
CacheEnable mem /
MCacheSize 4096
MCacheMaxObjectCount 100
MCacheMinObjectSize 1
MCacheMaxObjectSize 2048
</IfModule>
</IfModule>
7.        檢查apache運行狀態
檢查apache2.2所有配置文件是否有錯誤
# /usr/local/apache2.2/bin/apachectl -t
有錯繼續修改調整,沒有就啟動apache2.2
# /usr/local/apache2.2/bin/apachectl start
查看80埠是否在監聽
# netstat -apn|grep '\<80\>'

查看apache進程是否運行
# ps aux|grep httpd

建立測試頁面測試.

8.        安裝apache日誌切割工具cronolog
# tar zxf cronolog-1.6.2.tar.gz
# cd cronolog-1.6.2
# ./configure --prefix=/usr/local/cronolog && make && make install

9.        apache基本虛擬主機配置
比如某一機器 域名 www.test.com IP: 59.42.25.35
在apache安裝目錄下
# vi conf/httpd.conf
在最後一行添加全局虛擬主機配置
NameVirtualHost 59.42.25.35

# vi conf/Includes/www.test.com.conf
建立www.test.com 虛擬主機 配置文件
<Directory "/www/www.test.com /www/htdocs">
    order allow,deny
    allow from all
</Directory>
<Directory "/www/www.test.com /www/htdocs/WEB-INF">
    order deny,allow
    deny from all
    allow from 127.0.0.1 10.10.10.86 59.34.215.86 61.144.207.69
</Directory>


<VirtualHost 59.42.25.35>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /www/www.test.com /www/htdocs
ServerName /www.test.com
ErrorDocument 404 /error/404.html
ErrorDocument 500 /error/500.html
#LoadModule deflate_module modules/mod_deflate.so
#DeflateFilterNote ratio
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
ErrorLog "|/usr/local/cronolog/sbin/cronolog /www//www.test.com /www/logs/%Y/%m/%d/error.log"

#SetEnvIf Request_URI "^\.jsp|\.do|\.html|.jsps" please_log
SetEnvIf Request_URI "\.jsp" please_log
SetEnvIf Request_URI "\.jsps" please_log
SetEnvIf Request_URI "\.do" please_log
SetEnvIf Request_URI "\.html" please_log
CustomLog "|/usr/local/cronolog/sbin/cronolog /www/www.test.com /www/logs/%Y/%m/%d/%p/access.log" combined env=please_log
</VirtualHost>

10.        tomcat基本虛擬主機配置
在tomcat安裝目錄下
# vi conf/server.xml
在文件的標籤 </Engine>添加
<Host name="www.test.com" debug="0" appBase="/www/www.test.com/www/htdocs" unpackWARs="true"
                autoDeploy="true"    xmlValidation="false" xmlNamespaceAware="false">
          <Logger className="org.apache.catalina.logger.FileLogger" directory="logs"  prefix="test."
               suffix=".log"    timestamp="true"/>
          <Context path="/manager" docBase="${catalina.home}/server/webapps/manager"
                  debug="0" privileged="true">
            <ResourceLink name="users" global="UserDatabase"                                                                 type="org.apache.catalina.UserDatabase"/>
          </Context>
          <Context docBase="/www/www.test.com/www/htdocs" path=""                                         reloadable="true">
          </Context>
          <alias>mail.test.com</alias>
          <alias>forum.test.com</alias>
          <alias>group.test.com</alias>
          <alias>favorites.test.com</alias>
          <alias>classifieds.test.com</alias>
</Host>




[ 本帖最後由 mageguoshi 於 2006-4-18 11:45 編輯 ]
《解決方案》

這樣裝的tomcat 是以root 運行的吧

[ 本帖最後由 anthonyfeng 於 2006-4-18 13:31 編輯 ]
《解決方案》

說實話,這是篇好帖

看過很多整合文章,就這個比較新了,結合了apache 2.2的特點
《解決方案》

心懷感激地學習好貼!
《解決方案》

支持一哈
《解決方案》

版主,給個保留什麼的吧。
都是我的經驗總結啊!
《解決方案》

太感謝了,正在找這個文檔,明天趕快裝一下
《解決方案》

我的gcc4.1報錯,請大家看看!

collect2: ld returned 1 exit status
make: *** 錯誤 1
make: Leaving directory `/root/gcc-build/i686-pc-linux-gnu/libstdc++-v3/src'
make: *** 錯誤 1
make: Leaving directory `/root/gcc-build/i686-pc-linux-gnu/libstdc++-v3'
make: *** 錯誤 2
make: Leaving directory `/root/gcc-build/i686-pc-linux-gnu/libstdc++-v3'
make: *** 錯誤 2
make: Leaving directory `/root/gcc-build'
make: *** 錯誤 2
《解決方案》

樓上的,你有新建立一個新的文件夾來編譯么
《解決方案》

我跟樓上的結果一樣

[火星人 ] GCC4.1 + apache2+tomcat5 + mod_jk集成已經有580次圍觀

http://coctec.com/docs/service/show-post-22897.html