- 论坛徽章:
- 0
|
浅谈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程序:
- #mod_jk.conf
- #LoadModule jk_module modules/mod_jk.so
- <IfModule !mod_jk.c>
- LoadModule jk_module "/etc/httpd/modules/mod_jk.so"
- </IfModule>
- JkWorkersFile "/usr/local/tomcat5/conf/jk/workers.properties"
- JkLogFile "/usr/local/tomcat5/logs/mod_jk.log"
- JkShmFile /usr/local/tomcat5/logs/mod_jk.shm
- JkLogLevel emerg
- ServerName localhost
- JkMount /*.jsp ajp13
- JkMount /servlet/* ajp13
- 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加入以下内容:
- works.tomcat_home=/usr/local/tomcat5
- works.java_home=/usr/java/jdk1.5.0_08
- ps=/
- worker.list=ajp13
- worker.ajp13.port=8009
- worker.ajp13.host=127.0.0.1
- worker.ajp13.type=ajp13
- 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
- #!/bin/bash
- # Tomcat5 startup script
- RUN_AS_USER=root
- CATALINA_HOME=/usr/local/tomcat5
- start() {
- echo "Strting tomcat5.5: "
- if [ "x$USER" != "x$RUN_AS_USER" ]; then
- su - $RUN_AS_USER -c "$CATALINA_HOME/bin/startup.sh"
- else
- $CATALINA_HOME/bin/startup.sh
- fi
- echo "done."
- }
- stop() {
- echo "Shutting down tomcat5.5: "
- if [ "x$USER" != "x$RUN_AS_USER" ]; then
- su - $RUN_AS_USER -c "$CATALINA_HOME/bin/shutdown.sh"
- else
- $CATALINA_HOME/bin/shutdown.sh
- fi
- echo "done."
- }
- case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- restart)
- stop
- sleep 10
- #echo "Hard killing any remaining threads.."
- #kill -9 `cat $CATALINA_HOME/work/catalina.pid`
- start
- ;;
- *)
- echo "Usage: $0 {start|stop|restart}"
- esac
- 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 编辑 ] |
评分
-
查看全部评分
|