免费注册 查看新帖 |

Chinaunix

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

浅谈搭建web服务功能整合[原创] [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-16 19:04 |只看该作者 |倒序浏览
浅谈web服务功能整合,apache tomcat php mysql完整篇,公司需求以下仅当参考,文本部分是参考网络资料,写些实属总结,如有错误请回贴斧正!
功能实现:
web服务器实现apache与tomcat整合支持JSP,实现支持php,支持SSL,支持gzip加速,更多一些细节有待大家共同讨论探讨!
作者:linuxpf                   注:转载请保留出处
功能实现:
1.安装apache及一些图片库必备组件:
#yum install httpd httpd-devel zlib-devel gcc gcc-c++ perl-DBI mod_ssl libjpeg-devel libpng-devel libtiff ntp
#crontab -e
加入一行:
0,30 * * * * ntpdate stdtime.gov.hk
每三十分钟从香港天文台更新时间
#useradd username
#password username
#cd /etc/ssh
#vi sshd_config
Port 10443
Protocol 2
#PermitRootLogin yes  禁止ROOT直接登陆
PermitRootLogin yes
禁止ROOT直接登陆,采用新建username进行日常管理
2.安装JAVA环境
site:https://cds.sun.com/is-bin/INTER ... VariationTypeFilter
wget http://cds.sun.com/is-bin/INTERS ... -linux-i586-rpm.bin
#sh jdk-1_5_0_08-linux-i586-rpm.bin

3.安装tomcat
site:http://tomcat.apache.org/download-55.cgi#5.5.27
下载:apache-tomcat-5.5.27.tar.gz
wget http://dev.xiaonei.com/apache-mi ... omcat-5.5.27.tar.gz
#tar -zxvf  apache-tomcat-5.5.27.tar.gz
#mv apache-tomcat-5.5.27 /usr/local/tomcat5

4设置环境
#vi /etc/profile
JAVA_HOME=/usr/java/jdk1.5.0_08
TOMCAT_HOME=/usr/local/tomcat5
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export JAVA_HOME TOMCAT_HOME
export PATH
export CLASSPATH

测试:
#echo $JAVA_HOME
#java -version
#logout

5.下载mod_jk,此mod_jk适用于httpd 2.0.x
http://www.apache.org/dist/tomca ... nux/jk-1.2.26/i386/
#wget http://www.apache.org/dist/tomca ... .26-httpd-2.0.61.so
#cp mod_jk-1.2.26-httpd-2.0.61.so /etc/httpd/modules/mod_jk.so
#chmod 755 /etc/httpd/modules/mod_jk.so

6.mod_jk整合apache tomcat
修改:tomcat的server.xml
#vi /usr/local/tomcat5/conf/server.xml
查找<Engine name ="Catalina" default= "localhost">
其后加入:
<Listener className="org.apache.jk.config.ApacheConfig" modJk="/etc/httpd/modules/mod_jk.so"/>

修改tomcat5默认主目录与apache一致:
#vi /usr/local/tomcat5/conf/server.xml
查找在<Host name="localhost" appBase="webapps" unpachkWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespacheAware="false"
其后加入:
<Context path="" docBase="/var/www/html" debug="0"/>
对比分析:注意区分区分大小写
[root@web conf]# diff server.xml-dist server.xml
142c142
<
---
> <Listener className="org.apache.jk.config.ApacheConfig" modJk="/etc/httpd/modules/mod_jk.so"/>
219c219
<
---
> <Context path="" docBase="/var/www/html" debug="0"/>

7.创建mod_jk.conf
#vi /etc/httpd/conf.d/mod_jk.conf  在此配置文件最后添加以下语句,用以支持jsp程序:

  1. #mod_jk.conf
  2. #LoadModule jk_module modules/mod_jk.so
  3. <IfModule !mod_jk.c>
  4.           LoadModule jk_module "/etc/httpd/modules/mod_jk.so"
  5. </IfModule>
  6.   JkWorkersFile "/usr/local/tomcat5/conf/jk/workers.properties"
  7.   JkLogFile "/usr/local/tomcat5/logs/mod_jk.log"
  8.   JkShmFile /usr/local/tomcat5/logs/mod_jk.shm
  9.   JkLogLevel emerg
  10.   ServerName localhost
  11.   JkMount /*.jsp ajp13
  12.   JkMount /servlet/* ajp13   
  13.   JkMount /*.do ajp13
复制代码

8.创建apache 与tomcat连接工作区域配置文件/usr/local/tomcat5/conf/jk/workers.properties
#mkdir /usr/local/tomcat5/conf/jk
#cd /usr/local/tomcat5/conf/jk
#vi workers.properties加入以下内容:
  1. works.tomcat_home=/usr/local/tomcat5
  2. works.java_home=/usr/java/jdk1.5.0_08
  3. ps=/
  4. worker.list=ajp13
  5. worker.ajp13.port=8009
  6. worker.ajp13.host=127.0.0.1
  7. worker.ajp13.type=ajp13
  8. worker.ajp13.lbfactor=1
复制代码
9.启动tomacat
  #cd /usr/local/tomcat5/bin
  #./startup.sh
   检查是否运行正常
  # cd /usr/local/tomcat5/webapps
  # cp -R jsp-examples /var/www/html/
  
  客户端访问:http://192.168.123.85/jsp-examples
  如有问题,可能出现配置错误,请检查.配置文件请注意大小写问题,防止造成不必要的麻烦,
  cat /usr/local/tomcat5/logs/catalina.out

10.编译安装一些库软件包
GD2   site:ftp://xmlsoft.org/libxml2/
       # cd /home/download
       # wget http://www.libgd.org/releases/oldreleases/gd-2.0.34.tar.gz
       # tar xzvf gd-2.0.34.tar.gz
       # cd gd-2.0.34
       # ./configure --prefix=/usr/local/gd2
       # make
       # make install


LibXML2 site:ftp://xmlsoft.org/libxml2/
       # cd /home/download
       # wget ftp://xmlsoft.org/libxml2/old/libxml2-2.6.29.tar.gz
       # tar xzvf libxml2-2.6.29.tar.gz
       # cd libxml2-2.6.29
       # ./configure --prefix=/usr/local/libxml2
       # make
       # make install


LibMcrypt
       # cd /home/download
       # wget http://jaist.dl.sourceforge.net/ ... crypt-2.5.8.tar.bz2
       # tar xjvf libmcrypt-2.5.8.tar.bz2
       # cd libmcrypt-2.5.8
       # ./configure --prefix=/usr/local/libmcrypt
       # make
       # make install

11.安装MySQL
site:http://dev.mysql.com/downloads/mysql/5.0.html
可以采用RPM,Red Hat Enterprise Linux 4 RPM (x86) downloads
#wget http://mir2.ovh.net/ftp.mysql.co ... 67-0.rhel4.i386.rpm
#wget http://mysql.easynet.be/Download ... 67-0.rhel4.i386.rpm
#wget http://mysql.easynet.be/Download ... 67-0.rhel4.i386.rpm
#wget http://mysql.easynet.be/Download ... 67-0.rhel4.i386.rpm
#rpm -ivh MySQL*
#mysqladmin -u root password "yourpassword"
#mysql -u root -p
Enter password:
mysql> show database;

12. 编译安装PHP
    # cd /home/download
    # tar xjvf php-5.2.3.tar.bz2
    # cd php-5.2.3
    #./configure --prefix=/usr/local/php  --with-config-file-path=/usr/local/php/etc --with-apxs2=/usr/sbin/apxs --with-mcrypt=/usr/local/libmcrypt --with-libxml-dir=/usr/local/libxml2  --with-gd=/usr/local/gd2 --enable-mbstring --with-png-dir --with-jpeg-dir --with-mysql=/usr/bin/mysql
     #make
     #make test &&make install

    # mkdir /usr/local/php/etc
    # cp php.ini-dist /usr/local/php/etc/php.ini

13.安装ZendOptimizer-3.3.3
    # wget http://www.phpchina.com/download ... glibc23-i386.tar.gz
    # tar -zxvf ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz
    # cd ZendOptimizer-3.3.3-linux-glibc23-i386
    #./install-tty


14.
整合Apache与PHP
    #vi /etc/httpd/conf/httpd.conf
    查找:AddType application/x-gzip .gz .tgz
    其下一行加上:
    AddType application/x-httpd-php .php
    查找:DirectoryIndex index.html
    改为:
    DirectoryIndex index.html index.html.var index.php
    并确保以下语句存在,正常加载libphp5.so模块:
    LoadModule php5_module        /usr/lib/httpd/modules/libphp5.so

测试php
#vi /var/www/html/phpinfo.php
<?php
phpinfo();
?>

   #service httpd restart

   https//192.168.123.85/phpinfo.php
   出现如图则表示正常运行


##################################
15.启用静态页面输出压缩
      #cd /etc/httpd/conf.d
     #vi gzip.conf
#LoadModule headers_module modules/mod_headers.so
#LoadModule deflate_module modules/mod_deflate.so
    <Location "/">
        SetOutputFilter DEFLATE
        BrowserMatch ^Mozilla/4 gzip-only-text/html
        BrowserMatch ^Mozilla/4\.0[678] no-gzip
        BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
        SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|bmp|swf|)$ no-gzip dont-vary
        Header append Vary User-Agent env=!dont-vary
   </Location>

注脚:apache2.X默认已经安装deflate模块
         设置压缩频率,取值范围在 1(最低压缩率) 到 9(最高压缩率)之间,高的压缩率,但是占用更多的CPU资源
         插入过滤器
         一些浏览器存在一些解压问题,排除相应为非压缩
         不压缩图片,没有实质意义
         参考资料:http://httpd.apache.org/docs/2.0/mod/mod_deflate.html
   1)针对Apache2.0之前的版本,可以通过添加第三方的gzip模块来启用
   2)针对Apache2.0及之后的版本,Apache提供支持, 不过不叫gzip,而叫mod_deflate
  tomcat启用压缩加速:
    文章出于:http://www.linuxpf.com.cn
    参考资料: http://www.blogjava.net/site120/archive/2007/02/16/100073.html

16.防火墙及selinux
   #iptables -I INPUT -p tcp --dport 80 -j ACCEPT
   #iptables -I INPUT -P tcp --dport 443 -j ACCEPT
   # cd /etc/selinux
   # vi config
SELINUX=disabled
否则可能会出现selinux策略问题,造成httpd 无法启动
Starting httpd: /usr/sbin/httpd: error while loading shared libraries: libldap-2.2.so.7: cannot open shared object file: Permission denied
Oct 16 07:10:28 web kernel: audit(1224112228.152:47): avc:  denied  { getattr } for  pid=3756 comm="httpd" name="php.ini" dev=dm-0 ino=180728 scontext=root:system_r:httpd_t tcontext=system_u:object_r:file_t tclass=lnk_file
Oct 16 07:10:28 web kernel: audit(1224112228.154:48): avc:  denied  { ioctl } for  pid=3756 comm="httpd" name="php.ini" dev=dm-0 ino=180334 sc
ontext=root:system_r:httpd_t tcontext=system_u:object_r:file_t tclass=file

文章出于:http://www.linuxpf.com.cn

17:安装phpMysqladmin
http://www.phpmyadmin.net/home_page/index.php
   # wget http://nchc.dl.sourceforge.net/s ... ll-languages.tar.gz
   # mv phpMyAdmin-3.0.0-all-languages /var/www/html/phpMyadmin
   # cd /var/www/html/phpMydmin
   # mkdir config                       
   # cp config.sample.inc.php  config.inc.php               
   # cp config.inc.php config/
   # chmod o+rw config
  Next, open scripts/setup.php in your browser
  For example:
https://192.168.123.85/phpMyadmin/scripts/setup.php
  More about at http://www.phpmyadmin.net/documentation/
这里我采用https://192.168.123.85/phpMyadmin/scripts/setup.php

phpMyamin并不适合特别安全需要的Mysql服务器上,但仍然是个优秀MySQL管理工具
phpMyAdmin does not apply any special security methods to the MySQL database server. It is still the system administrator's job to grant permissions on the MySQL databases properly. phpMyAdmin's "Privileges" page can be used for this.
    注:强制采用https访问,启用cookie访问认证

    #mv config/config.inc.php .        # 移走配置文件到上级目录
    #chmod o-rw config.inc.php          #收回读写权限,防止他人配置
    #chmod 755 config.inc.php
   
以下配置:less config.inc.php
   #less config.inc.php
<?php
/*
* Generated configuration file
* Generated by: phpMyAdmin 3.0.0 setup script by Michal ÄihaÅ <michal@cihar.com>
* Version: $Id: setup.php 11423 2008-07-24 17:26:05Z lem9 $
* Date: Thu, 16 Oct 2008 16:40:44 GMT
*/

/* Servers configuration */
$i = 0;

/* Server The  web server (cookie) [1] */
$i++;
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['controluser'] = 'root';
$cfg['Servers'][$i]['controlpass'] = '****';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['verbose'] = 'web server';
$cfg['Servers'][$i]['LogoutURL'] = 'http://192.168.123.85';

/* End of servers configuration */

$cfg['blowfish_secret'] = '48f76cea05df27.56659415';
$cfg['LeftFrameLight'] = true;
$cfg['LeftFrameDBTree'] = true;
$cfg['LeftFrameDBSeparator'] = '_';
$cfg['LeftFrameTableSeparator'] = '__';
$cfg['LeftFrameTableLevel'] = 1;
$cfg['LeftDisplayLogo'] = true;
$cfg['LeftDisplayServers'] = true;
$cfg['DisplayServersList'] = true;
$cfg['DisplayDatabasesList'] = 'auto';
$cfg['LeftPointerEnable'] = true;
$cfg['DefaultTabServer'] = 'main.php';
$cfg['DefaultTabDatabase'] = 'db_structure.php';
$cfg['DefaultTabTable'] = 'sql.php';
$cfg['LightTabs'] = false;
$cfg['UploadDir'] = '/home/upload_data/sqlfile';
$cfg['SaveDir'] = '/home/upload_data/saved';
$cfg['ForceSSL'] = true;
$cfg['ShowPhpInfo'] = true;
$cfg['ShowChgPassword'] = true;
$cfg['AllowArbitraryServer'] = false;
$cfg['LoginCookieRecall'] = 'something';
$cfg['LoginCookieValidity'] = 1800;
?>


18:开机启动tomcat apache
   #vi /etc/rc.d/init.d/tomcat

  1. #!/bin/bash
  2. # Tomcat5 startup script

  3. RUN_AS_USER=root
  4. CATALINA_HOME=/usr/local/tomcat5

  5. start() {
  6.         echo "Strting tomcat5.5: "
  7.         if [ "x$USER" != "x$RUN_AS_USER" ]; then
  8.           su - $RUN_AS_USER -c "$CATALINA_HOME/bin/startup.sh"
  9.         else
  10.           $CATALINA_HOME/bin/startup.sh
  11.         fi
  12.         echo "done."
  13. }
  14. stop() {
  15.         echo "Shutting down tomcat5.5: "
  16.         if [ "x$USER" != "x$RUN_AS_USER" ]; then
  17.           su - $RUN_AS_USER -c "$CATALINA_HOME/bin/shutdown.sh"
  18.         else
  19.           $CATALINA_HOME/bin/shutdown.sh
  20.         fi
  21.         echo "done."
  22. }

  23. case "$1" in
  24.   start)
  25.         start
  26.         ;;
  27.   stop)
  28.         stop
  29.         ;;
  30.   restart)
  31.         stop
  32.         sleep 10
  33.         #echo "Hard killing any remaining threads.."
  34.         #kill -9 `cat $CATALINA_HOME/work/catalina.pid`
  35.         start
  36.         ;;
  37.   *)
  38.         echo "Usage: $0 {start|stop|restart}"
  39. esac

  40. exit 0
复制代码
#chmod +x /etc/rc.d/init.d/tomcat
   #ln -s /etc/rc.d/init.d/tomcat /etc/rc.d/rc3.d/S94tomcat
   #ln -s /etc/rc.d/init.d/tomcat /etc/rc.d/rc3.d/K94tomcat
   #chkconfig --add httpd:time:

[ 本帖最后由 linuxpf 于 2009-1-7 14:03 编辑 ]

评分

参与人数 1可用积分 +15 收起 理由
kenduest + 15 精品文章

查看全部评分

论坛徽章:
0
2 [报告]
发表于 2008-10-16 19:13 |只看该作者
:em11: :em11: 自己顶一下,哈哈!

论坛徽章:
0
3 [报告]
发表于 2008-10-16 20:49 |只看该作者
支持原创

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
4 [报告]
发表于 2008-10-16 20:57 |只看该作者
支持下,楼主辛苦了。。。。

论坛徽章:
4
白银圣斗士
日期:2015-11-24 10:40:40技术图书徽章
日期:2015-11-26 13:47:47平安夜徽章
日期:2015-12-26 00:06:30技术图书徽章
日期:2016-07-19 13:54:03
5 [报告]
发表于 2008-10-16 22:07 |只看该作者
好文章,楼主刚毕业就有这种水平,赞一个:wink:

论坛徽章:
0
6 [报告]
发表于 2008-10-16 22:35 |只看该作者
顶一个!!:em12: :em12:

论坛徽章:
0
7 [报告]
发表于 2008-10-17 09:12 |只看该作者
顶````补字啊啊啊

论坛徽章:
0
8 [报告]
发表于 2008-10-17 09:29 |只看该作者
原帖由 tony_wangzt 于 2008-10-17 09:12 发表
顶````补字啊啊啊

部分文字说明省去,不然篇幅太长

http://www.cnprint.org/bbs/blogs/1/blog66.html
也可以参考,也得不错
注:文中由于证书是自己签署,所以IE7不信任!

[ 本帖最后由 linuxpf 于 2008-10-17 11:53 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2008-10-19 12:07 |只看该作者
一些细节很重要,有时间修改

论坛徽章:
0
10 [报告]
发表于 2008-10-21 16:36 |只看该作者
如果有需要的话,可以安装MRTG,AWSTATS

MRTG安装:http://bbs.linuxpf.com.cn/viewthread.php?tid=421

[ 本帖最后由 linuxpf 于 2008-10-29 12:54 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP