Ubuntu cung cấp các gói tomcat, cập nhật thông tin các gói có thể cài đặt :
$ sudo apt-get update
Lệnh sau cho biết Ubuntu có những gói tomcat nào
$ sudo apt-cache search tomcat
Chẳng hạn ta chọn tomcat7, cài đặt nó với lệnh sau :
$ sudo apt-get install tomcat7
Sau khi cài đặt, các tập tin cấu hình của Tomcat nằm trong thư mục /etc/tomcat7
Mặc định, Tomcat dùng cổng 8080 cho kết nối HTTP, thông tin này được định trong tập tin /etc/tomcat7/server.xml , chẳng hạn:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> ... <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
Nếu cổng 8080, đã có dịch vụ khác dùng rồi thì phải thay đổi cổng HTTP này cho tomcat với lệnh sau chẳng hạn :
$ sudo vi /etc/tomcat7/server.xml
Mặc định, Tomcat sẽ tìm JVM OpenJDK, rồi đến JVM Sun rồi mới tới các JVM khác. Ta có thể buộc Tomcat dùng một JVM nhất định bằng cách định nghĩa JAVA_HOME trong tập tin /etc/default/tomcat7 chẳng hạn mở tập tin này:
$ sudo vi /etc/default/tomcat7
Rồi định nghĩa JAVA_HOME
JAVA_HOME=/usr/lib/jvm/java-7-oracle
Các user và role (nhóm) được định nghĩa trong tập tin /etc/tomcat7/tomcat-users.xml chẳng hạn :
<role rolename="admin"/> <user username="tomcat" password="tomcat7" roles="admin"/>
Khi cài đặt gói tomcat7 như trên thì một user và nhóm tomcat7 cũng được thêm vào trong Ubuntu, ta có thể thấy cụ thể điều này như sau :
Danh sách các group nằm trong tập tin /etc/group ta xem nó với lệnh sau chẳng hạn :
$ cat /etc/groupXem danh sách các user :
$ cat /etc/passwd
Vì lý do an toàn, mặc định user tomcat7 không có quyền viết trong thư mục /etc/tomcat7 . Một số chức năng quản trị ứng dụng web cần có quyền viết trong thư mục này, ta cần phải trao quyền cần thiết này cho các user của nhóm tomcat7 :
$ sudo chgrp -R tomcat7 /etc/tomcat7 $ sudo chmod -R g+w /etc/tomcat7
* Để kiểm tra xem tomcat sau khi cài đặt có hoạt động không có lỗi hay không, ta có thể cài một gói ví dụ sau để kiểm tra :
$ sudo apt-get install tomcat7-examples
Sau đó kiểm tra có thể xem ứng dụng này tại địa chỉ :
http://localhost:8080/examples
Trong trường hợp bị lỗi, xem thêm thông tin lỗi với lệnh :
$ sudo service tomcat7 status
Hoặc xem chi tiết log :
$ sudo cat /var/log/tomcat7/catalina.out
Kiểm tra xem port 8080 đã có dịch vụ nào dùng chưa :
$ netstat -lntu | grep 8080
Nếu có dịch vụ khác xài rồi thì phải đổi port này.
* Các lệnh khởi động và dừng tomcat :
$ sudo service tomcat7 stop $ sudo service tomcat7 start
Các tập tin/thư mục liên quan đến tomcat :
/etc/init.d/tomcat7 /usr/share/tomcat7 /var/lib/tomcat7/ /var/log/tomcat7/ /var/cache/tomcat7/
* Đổi người dùng cho tomcat
Khi cài đặt gói tomcat7 trong Ubuntu, người dùng và nhóm mặc định của tomcat được cấu hình là tomcat7:tomcat7. Chẳng hạn ta muốn chọn người dùng 'toan' cho Tomcat, trước hết dừng Tomcat.
$ sudo service tomcat7 stop
Ta có thể đổi người dùng bằng cách cấu hình lại quyền cho các thư mục sau như dưới đây :
$ sudo chgrp -R toan /etc/tomcat7 $ sudo chown -R toan:toan /var/lib/tomcat7 $ sudo chown -R toan:toan /var/cache/tomcat7 $ sudo chown -R toan:toan /var/log/tomcat7
Định nghĩa lại người dùng trong tập tin cấu hình của tomcat :
$ sudo vi /etc/default/tomcat7Cập nhật thông tin như sau :
TOMCAT7_USER=toan TOMCAT7_GROUP=toan
Sau đó khởi động lại Tomcat :
$ sudo service tomcat7 start
* Đôi lúc khi khởi động, tomcat không tìm thấy một số thư mục, ta có thể tạo đường dẫn liên kết đến chúng theo cú pháp :
$ ln -s source link_symb
Ví dụ tạo đường trong /usr/share/tomcat7 đường dẫn conf đến thư mục /etc/tomcat7 và nối logs đến /var/log/tomcat7:
$ cd /usr/share/tomcat7 $ sudo ln -s /etc/tomcat7 conf $ sudo ln -s /var/log/tomcat7 logs
Có thể xóa đường dẫn liên kết này bằng lện unlink :
$ sudo unlink conf
* Ta có thể thay đổi host name trong /etc/tomcat7/server.xml:
$ sudo vi /etc/tomcat7/server.xmlRồi thay đổi defaultHost và name như ý muốn :
<Engine name="Catalina" defaultHost="172.0.0.1"> <Host name="172.0.0.1" appBase="webapps" unpackWARs="true" autoDeploy="true">
* Khởi động Tomcat bằng script
Ta có thể khởi động Tomcat bằng startup.sh và ngừng nó bằng shutdown.sh như sau :
$ sudo /usr/share/tomcat7/bin/startup.sh $ sudo /usr/share/tomcat7/bin/shutdown.sh
Hai script này gọi đến script catalina.sh, ta nên kiểm tra các biến environment CATALINA_HOME và CATALINA_BASE, để khi khởi động không bị lỗi như sau :
$ /usr/share/tomcat7/bin/catalina.sh version
Cách khác để kiểm tra hai biến này có được định nghĩa đúng không :
$ ps aux | grep catalina
Mặc định thì CATALINA_BASE (configurations) và CATALINA_HOME (binaries) trỏ đến cùng một thư mục. Nhưng khi cài đặt gói tomcat7 trong Ubuntu nó sẽ cài ở hai thư mục để cho phép chạy nhiều instance của Tomcat mà không cần phải copy lại phần binaires. Ta phải định nghĩa lại hai biến này : CATALINA_HOME trỏ đến /usr/share/tomcat7, và CATALINA_BASE trỏ đến /var/lib/tomcat7.
Để làm điều này ta tạo tập tin setenv.sh định nghĩa hai biến này trong /usr/share/tomcat7/bin/
$ cd /usr/share/tomcat7/bin
Tạo tập tin setenv.sh và đổi quyền để có thể thực thi nó :
$ sudo touch setenv.sh $ sudo chmod 755 setenv.sh
Nội dung của tập tin setenv.sh :
#! /bin/sh # Directory where the Tomcat binary distribution resides CATALINA_HOME=/usr/share/tomcat7 # Directory for per-instance configuration files and webapps CATALINA_BASE=/var/lib/tomcat7
Sau đó khởi động lại Tomcat ta sẽ thấy hai biến này đã được cập nhật
$ sudo /usr/share/tomcat7/bin/startup.sh