免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4639 | 回复: 13
打印 上一主题 下一主题

[Web] GCC4.1 + apache2+tomcat5 + mod_jk集成 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-04-18 11:32 |只看该作者 |倒序浏览

  1. WEB安装文档
  2. 1.        GCC4.1.0安装(可选)
  3. 下载地址: ftp://linuxforum.net/pub/gcc/releases/gcc-4.1.0/gcc-4.1.0.tar.bz2
  4. # tar jxf gcc-4.1.0.tar.bz2
  5. # mkdir gcc-build;cd gcc-build
  6. # ../gcc-4.1.0/configure --prefix=/usr/local/gcc4.1 && make && make install
  7. # cd /usr/bin; mv gcc _gcc
  8. # ln -s /usr/local/gcc4.1/bin/gcc gcc
  9. # gcc -v
  10. Using built-in specs.
  11. Target: i686-pc-linux-gnu
  12. Configured with: ../gcc-4.1.0/configure --prefix=/usr/local/gcc4.1
  13. Thread model: posix
  14. gcc version 4.1.0
  15. 如果有以上的输出,说明gcc编译安装成功.
  16. 2.        APACHE2.2编译安装
  17. 下载apache2.2源码包        http://mirror.vmmatrix.net/apache/httpd/httpd-2.2.0.tar.bz2

  18. 2.1.        解压缩
  19. # tar jxvf httpd-2.2.0.tar.bz2
  20. # cd httpd-2.2.0
  21. 2.2.        修改部分源代码
  22. # vi server/mpm/worker/worker.c
  23. 找到下面几行,并改成如下的数值,其目的是在源码中修改apache可支持的        最大线程数和最大客户端数目。
  24. # define DEFAULT_SERVER_LIMIT 256
  25. # define MAX_SERVER_LIMIT 40000
  26. # define DEFAULT_THREAD_LIMIT 256
  27. # define MAX_THREAD_LIMIT 40000
  28. 2.3.        编译配置
  29. 优化编译选项及配置apache可加载的模块
  30. # CFLAGS="-O6 -mpentiumpro -fomit-frame-pointer" CXX=gcc CXXFLAGS="-O6 -mpentiumpro -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" \
  31. > ./configure --prefix=/usr/local/apache2.2 --enable-mods-shared=all \
  32. > --enable-so --with-mpm=worker --enable-deflate \
  33. > --enable-cache --enable-disk-cache --enable-mem-cache --enable-file-cache \
  34. > --enable-proxy --enable-suexec
  35. 2.4.        编译及安装
  36. # gmake && make install
  37. 3.        优化apache配置选项
  38. 3.1.        修改MPM(多道处理器)参数
  39. # cd /usr/local/apache2.2
  40. # vi conf/extra/httpd-mpm.conf
  41. 找到如下选项,并改成对应的数值

  42. <IfModule mpm_worker_module>
  43.         ServerLimit        64
  44.         ThreadLimit       128
  45.         StartServers         8
  46.         MaxClients        8192
  47.         MinSpareThreads     50
  48.         MaxSpareThreads     256
  49.         ThreadsPerChild     128
  50.         MaxRequestsPerChild  0
  51. </IfModule>
  52. 3.2.        修改apache2.2子进程所有者
  53. # vi /usr/local/apache2.2/conf/httpd.conf
  54. 把daemon改为nobody
  55. User nobody
  56. Group nobody
  57. 3.3.        语法检查及建立软链接
  58. # vi /usr/local/apache2.2/conf/httpd.conf
  59. 在主配置文件httpd.conf添加如下一行,这样做的目的是把apache的功能配置分成小文件,便于修改和移植
  60. # Include conf/Includes/*.conf
  61. 运行语法检查命令检查语法,出现错误后继续调整。
  62. # ./bin/apachectl -t
  63. 没有错误后在 /usr/local/ 目录下建立软链接
  64. # ln -s apache2.2 apache2
  65. 4.        安装tomcat和连接器JK
  66. 原先的JK2模块已经不被官方支持,而且在性能上和现有的jk模块也有差距,所以改用JK模块。
  67. 4.1.        下载tomcat-5.5.16
  68. http://apache.justdn.org/tomcat/tomcat-5/v5.5.16/bin/apache-tomcat-5.5.16.tar.gz

  69. JDK自行安装,安装后要记得设置 JAVA_HOME系统变量。
  70. # export JAVA_HOME=/usr/local/jdk1.5.0_06
  71. # tar zxf apache-tomcat-5.5.16.tar.gz -C /usr/local/
  72. # mv apache-tomcat-5.5.16 tomcat-5.5.16
  73. # ln -s tomcat-5.5.16 tomcat1
  74. # cd /usr/local/tomcat1/bin
  75. # ./bin/startup.sh            //启动tomcat
  76. # ./bin/shutdown.sh                         //停止tomcat       
  77. 4.2.        下载连接器JK源码

  78. http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.15/jakarta-tomcat-connectors-1.2.15-src.tar.gz
  79. 4.3.        编译安装
  80. # tar zxvf jakarta-tomcat-connectors-1.2.15-src.tar.gz
  81. # cd jakarta-tomcat-connectors-1.2.15-src
  82. # cd jk/native/
  83. # ./configure --with-apxs=/usr/local/apache2.2/bin/apxs \
  84. > --with-java-home=/usr/local/jdk15 --with-java-platform=2
  85. # make
  86. # cp apache-2.0/mod_jk.so /usr/local/apache2.2/modules/
  87. 4.4.        配置
  88. # cd /usr/local/apache2.2/conf/Includes
  89. # vi mod_jk.conf
  90. 在文本中添加如下配置
  91. # Load mod_jk module
  92. LoadModule jk_module            modules/mod_jk.so
  93. # Where to find workers.properties
  94. JkWorkersFile           /usr/local/apache2/conf/workers.properties
  95. # Where to put jk logs
  96. JkLogFile               /usr/local/apache2/logs/mod_jk.log
  97. # Set the jk log level [debug/error/info]
  98. JkLogLevel              error
  99. # Select the log format
  100. JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
  101. # JkOptions indicate to send SSL KEY SIZE,
  102. JkOptions     +ForwardKeySize +ForwardURICompat -ForwardDirectories
  103. # JkRequestLogFormat set the request format
  104. JkRequestLogFormat     "%w %V %T"
  105. JkShmFile     /usr/local/apache2/logs/mod_jk.shm
  106. # Send jsp,servlet for context * to worker named worker1
  107. JkMount  /status/* worker1
  108. JkMount  /*.jsp worker1
  109. JkMount  /*.jsps worker1
  110. JkMount  /*.do worker1
  111. JkMount  /*Servlet worker1
  112. JkMount  /manager/* worker1
  113. JkMount  /ScanIM worker1
  114. JkMount  /SendIMMsg worker1
  115. JkMount  /CheckMsgServlet worker1
  116. JkMount  /TestIM worker1

  117. # vi ../workers.properties
  118. 在配置文件中添加如下配置
  119. # Define 1 real worker using ajp13
  120. worker.list=worker1
  121. # Set properties for worker1 (ajp13)
  122. worker.worker1.type=ajp13
  123. worker.worker1.host=127.0.0.1
  124. worker.worker1.port=8009
  125. worker.worker1.lbfactor=1
  126. worker.worker1.cachesize=10
  127. worker.worker1.cache_timeout=600
  128. worker.worker1.socket_keepalive=1
  129. worker.worker1.reclycle_timeout=300
  130. 4.5.        测试
  131. 如果在80端口能访问.jsp,.do等文件说明配置连接器成功。
  132. 5.        配置静态页面压缩输出模块deflate
  133. 这个扩展模块在安装apache的时候已经动态的编译到apache里去了。现在进行配置。
  134. # cd /usr/local/apache2.2/conf/Includes
  135. 上面添加的是apache扩展配置文件的目录
  136. # vi mod_deflate.conf
  137. 在配置文件里添加如下语句

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

  144. 6.        配置mod_cache模块
  145. # cd /usr/local/apache2.2/conf/Includes
  146. # vi mod_cache.conf
  147. 在配置文件里添加如下语句


  148. <IfModule mod_cache.c>
  149. #LoadModule disk_cache_module modules/mod_disk_cache.so
  150. <IfModule mod_disk_cache.c>
  151. CacheRoot /
  152. CacheSize 256
  153. CacheEnable disk /
  154. CacheDirLevels 5
  155. CacheDirLength 3
  156. </IfModule>

  157. LoadModule mem_cache_module modules/mod_mem_cache.so
  158. <IfModule mod_mem_cache.c>
  159. CacheEnable mem /
  160. MCacheSize 4096
  161. MCacheMaxObjectCount 100
  162. MCacheMinObjectSize 1
  163. MCacheMaxObjectSize 2048
  164. </IfModule>
  165. </IfModule>
  166. 7.        检查apache运行状态
  167. 检查apache2.2所有配置文件是否有错误
  168. # /usr/local/apache2.2/bin/apachectl -t
  169. 有错继续修改调整,没有就启动apache2.2
  170. # /usr/local/apache2.2/bin/apachectl start
  171. 查看80端口是否在监听
  172. # netstat -apn|grep '\<80\>'

  173. 查看apache进程是否运行
  174. # ps aux|grep httpd

  175. 建立测试页面测试.

  176. 8.        安装apache日志切割工具cronolog
  177. # tar zxf cronolog-1.6.2.tar.gz
  178. # cd cronolog-1.6.2
  179. # ./configure --prefix=/usr/local/cronolog && make && make install

  180. 9.        apache基本虚拟主机配置
  181. 比如某一机器 域名 www.test.com IP: 59.42.25.35
  182. 在apache安装目录下
  183. # vi conf/httpd.conf
  184. 在最后一行添加全局虚拟主机配置
  185. NameVirtualHost 59.42.25.35

  186. # vi conf/Includes/www.test.com.conf
  187. 建立www.test.com 虚拟主机 配置文件
  188. <Directory "/www/www.test.com /www/htdocs">
  189.     order allow,deny
  190.     allow from all
  191. </Directory>
  192. <Directory "/www/www.test.com /www/htdocs/WEB-INF">
  193.     order deny,allow
  194.     deny from all
  195.     allow from 127.0.0.1 10.10.10.86 59.34.215.86 61.144.207.69
  196. </Directory>


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

  210. #SetEnvIf Request_URI "^[/im/checkIM]\.jsp|\.do|\.html|.jsps" please_log
  211. SetEnvIf Request_URI "\.jsp" please_log
  212. SetEnvIf Request_URI "\.jsps" please_log
  213. SetEnvIf Request_URI "\.do" please_log
  214. SetEnvIf Request_URI "\.html" please_log
  215. CustomLog "|/usr/local/cronolog/sbin/cronolog /www/www.test.com /www/logs/%Y/%m/%d/%p/access.log" combined env=please_log
  216. </VirtualHost>

  217. 10.        tomcat基本虚拟主机配置
  218. 在tomcat安装目录下
  219. # vi conf/server.xml
  220. 在文件的标签 </Engine>添加
  221. <Host name="www.test.com" debug="0" appBase="/www/www.test.com/www/htdocs" unpackWARs="true"
  222.                 autoDeploy="true"    xmlValidation="false" xmlNamespaceAware="false">
  223.           <Logger className="org.apache.catalina.logger.FileLogger" directory="logs"  prefix="test."
  224.                suffix=".log"    timestamp="true"/>
  225.           <Context path="/manager" docBase="${catalina.home}/server/webapps/manager"
  226.                   debug="0" privileged="true">
  227.             <ResourceLink name="users" global="UserDatabase"                                                                 type="org.apache.catalina.UserDatabase"/>
  228.           </Context>
  229.           <Context docBase="/www/www.test.com/www/htdocs" path=""                                         reloadable="true">
  230.           </Context>
  231.           <alias>mail.test.com</alias>
  232.           <alias>forum.test.com</alias>
  233.           <alias>group.test.com</alias>
  234.           <alias>favorites.test.com</alias>
  235.           <alias>classifieds.test.com</alias>
  236. </Host>


复制代码

[ 本帖最后由 mageguoshi 于 2006-4-18 11:45 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-04-18 11:54 |只看该作者
这样装的tomcat 是以root 运行的吧

[ 本帖最后由 anthonyfeng 于 2006-4-18 13:31 编辑 ]

论坛徽章:
1
巳蛇
日期:2014-12-29 11:22:41
3 [报告]
发表于 2006-04-18 18:15 |只看该作者
说实话,这是篇好帖

看过很多整合文章,就这个比较新了,结合了apache 2.2的特点

论坛徽章:
0
4 [报告]
发表于 2006-04-18 18:36 |只看该作者
心怀感激地学习好贴!

论坛徽章:
0
5 [报告]
发表于 2006-04-18 18:48 |只看该作者
支持一哈

论坛徽章:
0
6 [报告]
发表于 2006-04-19 10:46 |只看该作者
版主,给个保留什么的吧。
都是我的经验总结啊!

论坛徽章:
0
7 [报告]
发表于 2006-04-19 23:03 |只看该作者
太感谢了,正在找这个文档,明天赶快装一下

论坛徽章:
0
8 [报告]
发表于 2006-05-16 17:15 |只看该作者
我的gcc4.1报错,请大家看看!

collect2: ld returned 1 exit status
make[4]: *** [libstdc++.la] 错误 1
make[4]: Leaving directory `/root/gcc-build/i686-pc-linux-gnu/libstdc++-v3/src'
make[3]: *** [all-recursive] 错误 1
make[3]: Leaving directory `/root/gcc-build/i686-pc-linux-gnu/libstdc++-v3'
make[2]: *** [all] 错误 2
make[2]: Leaving directory `/root/gcc-build/i686-pc-linux-gnu/libstdc++-v3'
make[1]: *** [all-target-libstdc++-v3] 错误 2
make[1]: Leaving directory `/root/gcc-build'
make: *** [all] 错误 2

论坛徽章:
0
9 [报告]
发表于 2006-05-17 13:45 |只看该作者
楼上的,你有新建立一个新的文件夹来编译么

论坛徽章:
0
10 [报告]
发表于 2006-05-17 17:53 |只看该作者
我跟楼上的结果一样
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP