© ���� �������, 2005.
������ ����� ����� ��������������, �������������� �/��� ������� ��������� � ��������� �������� � ������������ � ��������� GNU Free Documentation License, ������� 1.1 ��� ����� ����� ������� �������, �������������� Free Software Foundation;
������ �������� �� �������� ������������ ��������; ������ �������� �������� ��������� �����, ���������� �� ������ �������� �������: "��������� � ���������������� Tomcat 5.5 �� ALT Linux Master 2.4", ������ �������� �� �������� ������, ����������� �� ��������� �������� �������. ����� ��������� �������� �������� � ������ ��� ��������� "GNU Free Documentation License".
��������� ����� jakarta-tomcat-5.5.9.tar.gz � ����� ������������ http://jakarta.apache.org/tomcat
# cd /usr/local # mkdir tomcat # cd tomcat # tar -xzf /path/to/archives/jakarta-tomcat-5.5.9.tar.gz # ln -s jakarta-tomcat-5.5.9 5.5
����� ���������� ������ ������� ���������� ������ ������� �������� � ����������, ��� ��������� ������ ������ �������, �������� ��������� ����� � �������� �������. ��� �������� �� ����� ������ ����� ����� ������ ������������� ��� ������ �� ������ �����.
Tomcat ������ 5.5 ������������ ��� ������ � jdk 1.5.
��������� jdk-1_5_0_02-linux-i586-rpm.bin � http://java.sun.com
# ./jdk-1_5_0_02-linux-i586-rpm.bin [ ��������� �������� � �������� rpm ����� ] # rpm -ihv jdk-1_5_0_02-linux-i586-rpm jdk #######################################################
������ ����� ��� ��� ��������� tomcat �� 80 ����� ����� �������� ��������� �� ������ ������������ ����� �������. ���� ������, ��� ����� ��������� ��������� apache �� 80 �����, � tomcat �������� �� ����� 8080. � ���� ������, tomcat ������������ � apache � ������� mod_jk. ��� ������� � web ������� ��������� apache � �������������� �� �� tomcat. ����� ������������ ������� ������� ������������ ����� ���� web ���������� ���������� � php � jsp/servlet. � ������, ����� ������������ ������ java ������ apache �������� ������ � ��������������� ��������, ����� ����� ����������� ���������������� web �������.
��� ����, ����� ������������, � ����� ���� ������ � ���������� ������� �������� � ���������� ���� ������ ����� � ���, ��� ��������� tomcat � ������� ������� jsvc ��������� � ����� ������ ������������. � �� � ���� ������ �� ��������� �� ������������ ����� �������, � ����� ��� ������ ������������ ������� ������������� ����� ����. � �������� ��������������� �������� ����� �������� tomcat �� ����� 8080 � ���������� ��� � apache � ������� mod_jk ��� ������� ��������������� ������ � ������� iptables.
��� ������ �� ������ � ������� ��������:
community@altlinux.ru - http://lists.altlinux.ru/pipermail/community/2005-March/thread.html ����: "tomcat5 -- 80 port"
tomcat-user@jakarta.apache.org - http://mail-archives.eu.apache.org/mod_mbox/jakarta-tomcat-user/200503.mbox/threads.html ����: "Tomcat -- port 80 for Linux"
���������� ���� ���� �� ������ www.javable.com:
http://www.javable.com/forum/thread.jspa?threadID=11553
http://www.javable.com/forum/thread.jspa?threadID=11586
����� � �������� �������� 1024 �������� ������������������, ������� ����� ��������� Tomcat �� ����� 80 ����� ������� ��������� jsvc ������� ��������� tomcat � �������� ������. ������� jsvc ��������� ��� ��������: ������ ����������� � ������� root � ��������� 80 ����, ������ ����������� � ������� $TOMCAT_USER �� ����������� ���������������� ������� � �������.
������ �� ���� ����:
http://www.klawitter.de/tomcat80.html
http://jakarta.apache.org/tomcat/tomcat-5.5-doc/setup.html
# cd /usr/local/tomcat/5.5/bin # tar -xzf jsvc.tar.gz # cd jsvc-src # autoconf # chmod +x configure # ./configure --with-java=/usr/java/jdk1.5.0_02 # make # cp jsvc ..
� ������������ ����� ������������ ����� �������� tomcat.
# useradd -d /dev/null -s /dev/null -c 'Tomcat5 user' tomcat5
��������� ������� ������� ���� � �������� jsvc-src/native
# cd /usr/local/tomcat/5.5/bin/jsvc-src/native # cp Tomcat5.sh ../.. # vim /usr/local/tomcat/5.5/bin/Tomcat5.sh # cat /usr/local/tomcat/5.5/bin/Tomcat5.sh #!/bin/sh # # tomcat Start/Stop the Jakarta Tomcat # # chkconfig: 345 81 14 # description: Tomcat is the servlet container that is used \ # in the official Reference Implementation for the Java Servlet \ # and JavaServer Pages technologies. The Java Servlet and JavaServer Pages \ # specifications are developed by Sun under the Java Community Process. # # processname: jsvc # pidfile: /var/run/jsvc.pid # config: /usr/local/tomcat/5.5/conf/server.xml # ############################################################################## # # Copyright 2004 The Apache Software Foundation. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ############################################################################## # # Small shell script to show how to start/stop Tomcat using jsvc # If you want to have Tomcat running on port 80 please modify the server.xml # file: # # <!-- Define a non-SSL HTTP/1.1 Connector on port 80 --> # <Connector className="org.apache.catalina.connector.http.HttpConnector" # port="80" minProcessors="5" maxProcessors="75" # enableLookups="true" redirectPort="8443" # acceptCount="10" debug="0" connectionTimeout="60000"/> # # That is for Tomcat-5.0.x (Apache Tomcat/5.0) # # Adapt the following lines to your configuration JAVA_HOME=/usr/java/jdk1.5.0_02 CATALINA_HOME=/usr/local/tomcat/5.5 DAEMON_HOME=/usr/local/tomcat/5.5/bin TOMCAT_USER=tomcat5 TMP_DIR=/var/tmp CATALINA_OPTS= CLASSPATH=\ $JAVA_HOME/lib/tools.jar:\ $CATALINA_HOME/bin/commons-daemon.jar:\ $CATALINA_HOME/bin/bootstrap.jar case "$1" in start) # # Start Tomcat # echo -n "Tomcat starting ... " chown -R tomcat5:tomcat5 /usr/local/tomcat/5.5/* $DAEMON_HOME/jsvc \ -user $TOMCAT_USER \ -home $JAVA_HOME \ -Dcatalina.home=$CATALINA_HOME \ -Djava.io.tmpdir=$TMP_DIR \ -outfile $CATALINA_HOME/logs/catalina.out \ -errfile '&1' \ $CATALINA_OPTS \ -cp $CLASSPATH \ org.apache.catalina.startup.Bootstrap # # To get a verbose JVM #-verbose \ # To get a debug of jsvc. #-debug \ ;; stop) # # Stop Tomcat # echo -n "Tomcat shutting ... " PID=`cat /var/run/jsvc.pid` kill $PID ;; status) echo "Tomcat processes: " ps aux --cols 1024 | grep org.apache.catalina.startup.Bootstrap | grep -v grep ;; restart|reload) $0 stop $0 start exit 0 ;; *) echo "Usage: $0 {start|stop|status|restart|reload}" exit 1 ;; esac echo " [ DONE ]" exit 0
# cd /etc/rc.d/init.d # ln -s /usr/local/tomcat/5.5/bin/Tomcat5.sh tomcat
# vim /usr/local/tomcat/5.5/conf/server.xml
# cat /usr/local/tomcat/5.5/conf/server.xml
. . .
<Connector port="80"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
. . .
���� �� ���������� ������� apache �� ���������� ��������� ��� �� ������ ����, �������� 8080 � �������������.
# vim /etc/httpd/conf/httpd.conf
# cat /etc/httpd/conf/httpd.conf
. . .
Listen 8080
. . .
# service httpd restart
Stopping httpd service: [ DONE ]
Checking configuration sanity for httpd: [ DONE ]
Starting httpd service: [ DONE ]
# chkconfig --add tomcat # chkconfig --list | grep tomcat tomcat 0:off 1:off 2:off 3:on 4:on 5:on 6:off # service tomcat start Tomcat starting ... [ DONE ]
����� ��������� � ���, ��� tomcat ���������� ����� ������������ ������� ��������� ������������.
# reboot
� ���� ��� ����������� ���������.
���� ������ ����� ����������� ��������� ������� � �� ������ ������ ����� ���� web ����������, �� ����� ��������� ����������� �����.
��������� xml ����� Host � ���� Engine ��� ������� ����� ������� ����� �������������� � URL.
# vim /usr/local/tomcat/5.5/conf/server.xml
# cat /usr/local/tomcat/5.5/conf/server.xml
. . .
<Host name="www.mydomain1.org" appBase="webapps">
<Context
path=""
docBase="app1"
reloadable="true"
/>
</Host>
<Host name="mydomain1.org" appBase="webapps">
<Context
path=""
docBase="app1"
reloadable="true"
/>
</Host>
<Host name="www.mydomain2.org" appBase="webapps">
<Context
path=""
docBase="app2"
reloadable="true"
/>
</Host>
<Host name="mydomain2.org" appBase="webapps">
<Context
path=""
docBase="app2"
reloadable="true"
/>
</Host>
</Engine>
. . .
�����:
Host name="www.mydomain1.org" - ��� web ����������;
Context path="/webapp" - ����������� ����� ������� (www.mydomain1.org/webapp);
Context docBase="app1" - ���������� ������ webapps � ������� ��������� web ����������.
# service tomcat restart Tomcat shutting ... [ DONE ] Tomcat starting ... [ DONE ]
�� ��������� tomcat �� ����� access ����, �� ��� ������� ����� ��������.
���� ��� ����� ����� ���� �������� ��� ������� ������������ ������, �� ������� ������������� � /var/log/tomcat ��������������� ������ ����� �������.
# cd /var/log # mkdir -p tomcat/mydomain1 # mkdir -p tomcat/mydomain2 # chown -R tomcat5:tomcat5 tomcat # cd /usr/local/tomcat/5.5/logs # ln -s /var/log/tomcat access
����� ������ ���� �� Valve ������:
Valve className="org.apache.catalina.valves.AccessLogValve"
Valve className="org.apache.catalina.valves.FastCommonAccessLogValve"
Valve className="org.apache.catalina.valves.ByteBufferAccessLogValve"
����� ���� ����� ������ ������ ����� Context, Host, ��� Engine ������� ��� ����� ������� �� ������� ����� ������� ������ �����.
������ �� ���� ����:
http://localhost/tomcat-docs/config/valve.html
������ �� localhost ��� ��� ������ ��� ��������, � � ��� �������� ������ ������������.
� ��������� ������� � ������� ����� ������� access ���� ��� ������������ ����� www.mydomain1.org.
# vim /usr/local/tomcat/5.5/conf/server.xml
# cat /usr/local/tomcat/5.5/conf/server.xml
. . .
<Host name="www.mydomain1.org" appBase="webapps">
. . .
<Valve className="org.apache.catalina.valves.FastCommonAccessLogValve"
directory="logs/access/mydomain1" prefix="access" suffix=".log"
pattern="combined" resolveHosts="true"/>
</Host>
. . .
# service tomcat restart Tomcat shutting ... [ DONE ] Tomcat starting ... [ DONE ]
��� ������� ���������� ��������� web ���������� � ������� ������� access.log ��������� Webalizer.
# apt-get install webalizer . . .
# cd /etc/webalizer # cp apache.conf mydomain1.conf # cp apache.conf mydomain2.conf
� ������������� � ������� ��������� ������:
# cat mydomain1.conf | grep ^[^#] LogFile /var/log/tomcat/mydomain1/access_log LogType clf OutputDir /var/www/html/webalizer/mydomain1 HistoryName /var/lib/webalizer/mydomain1/webalizer.hist Incremental yes IncrementalName /var/lib/webalizer/mydomain1/webalizer.current ReportTitle Usage Statistics for HostName www.mydomain1.ru . . . PageType jsp DNSCache /var/lib/webalizer/mydomain1/dns_cache.db . . .
��� ������ ���������� � ��������� www ���������� apache, ������� � ���� ������� �� ����� 8080. ���� apache �� ���������� ����� ��������� ����� webalizer � ���������� /usr/local/tomcat/5.5/webapps/mydomain1. ��� ������ ������ web ���������� ��� tomcat ����� �������� ���������� WEB-INF/web.xml ����.
# cd /var/lib/webalizer # mkdir mydomain1 # mkdir mydomain2 # chown webalizer:webalizer mydomain1 # chown webalizer:webalizer mydomain2 # cd /var/www/html # mkdir -p webalizer/mydomain1 # mkdir -p webalizer/mydomain2 # chgrp -R webalizer webalizer/ # chmod -R 775 webalizer/
��������� tomcat ����� ���� � ������� accessYYYY-MM-DD.log �� ��� ����, ����� webalizer ���� ����������� �������� � ����� ������ ����� ������ ������� �������������� ���������� ���� � ���� � ���������� ������.
# vim /usr/local/sbin/tomcat_logs_mover # cat /usr/local/sbin/tomcat_logs_mover #!/bin/bash # # # Logs Mover for Tomcat Server # # To correct use this command need specify # path to logs files in the first parameter. # if [ -n "$1" ] then cd $1 LOGFN=log_file_name if [ -s $LOGFN ] then LOGFILE=`cat $LOGFN` if [ -s $LOGFILE ] then cat $LOGFILE >> access_log rm -f $LOGFILE fi echo -n 'access'`date +%Y"-"%m"-"%d`'.log' > $LOGFN exit 0 else echo Error: File $LOGFN not found exit 1 fi else echo Error: Not specified path to logs exit 1 fi
���� ������ ���������� ��������� � ���������� ������� ������ ���� �� ���������� � ������� ��������� ���� tomcat.
# cd /var/log/tomcat # echo -n 'access'`date +%Y"-"%m"-"%d`'.log' > mydomain1/log_file_name # echo -n 'access'`date +%Y"-"%m"-"%d`'.log' > mydomain2/log_file_name
# crontab -e # crontab -l # DO NOT EDIT THIS FILE - edit the master and reinstall. # (/tmp/crontab.T2FfUJ installed on Fri Apr 1 14:29:42 2005) # (Cron version V5.0 -- vixie-cron-4.0.b1.20040604-alt2) #minute (0-59), #| hour (0-23), #| | day of the month (1-31), #| | | month of the year (1-12), #| | | | day of the week (0-6 with 0=Sunday). #| | | | | commands #| | | | | | 1 0 * * * /usr/local/sbin/tomcat_logs_mover /var/log/tomcat/mydomain1 1 0 * * * /usr/local/sbin/tomcat_logs_mover /var/log/tomcat/mydomain2 3 0 * * * /usr/bin/webalizer -c /etc/webalizer/mydomain1.conf >/dev/null 2>/dev/null 3 0 * * * /usr/bin/webalizer -c /etc/webalizer/mydomain2.conf >/dev/null 2>/dev/null
����� �������, � 0:01 ����������� ������ ��������������� ������ � access_log, � � 0:03 ����������� webalizer ������� ������������ ���� ���.
����� ���� ��� webalizer ������������ ���������� �� ����� ���������� �� ��������� URL:
http://www.mydomain1.ru:8080/webilizer/mydomain1
http://www.mydomain1.ru:8080/webilizer/mydomain2
��� ����, ����� �� ���������� ������� ������������ ����� ��� ������ ����������� logrotate.
# cd /etc/logrotate.d # echo '/var/log/tomcat/mydomain1/access_log { missingok notifempty } /var/log/tomcat/mydomain1/access_log { missingok notifempty }' > tomcat
�� ���������, logrotate ����������� ��� � ������ ����� ������� ����� ���� � �����������. � ����� ������, ����� ������ ��, ����� webalizer ��������� ��� �� ���� ��� ��� ������������ logrotate. � ���� webalizer ����������� � 0:03, � logrotate � 4:02.
���������� ��������� logrotate ������������� � ���������������� ����� /etc/logrotate.conf.
����� GFDL �� ���������� ����� �� ������ ��������� ����� http://www.gnu.org/copyleft/fdl.html
����� �������� �� ������� ���� �������� GNU �� ��������� ������������ �� ������ ��������� ����� http://www.infolex.narod.ru/gpl_gnu/gfdlrus.html
|
���� �������, 16.05.2005
|