欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux+Tomcat建站笔记(JDK,Mysql,Vsftpd,Iptables等配置)  

程序员文章站 2022-05-07 10:32:17
...

作者:淘特网
出处:www.tot.name
注:转载请注明出处

1、安装Linux,偶安装的是Linux Enterprise As 4,不多说了,网上教程有很多.
注:偶在安装时防火墙级别选择“中”
安装后,需要设置下服务器使用的语言环境,这根据你的个人需要来调整。方法:
vi /etc/sysconfig/i18n
将 其中的zh_CN改为en_US
保存后 init 6重启
输入locale 查看系统当前语言,确认无误后再继续下面配置。

以下是偶修改过的例子:
#####################################################
LANG="en_US.UTF-8"
SUPPORTED="en_US.UTF-8:en_US:en"
SYSFONT="latarcyrheb-sun16"
####################################################
1、下面安装JDK

最新JDK版本为5.0可以从http://java.sun.com下载最新版本。

下载来的文件为:jdk-1_5_0_06-linux-i586-rpm.bin,放到/usr/locale/下

chmod a+x jdk-1_5_0_06-linux-i586-rpm.bin
./jdk-1_5_0_06-linux-i586-rpm.bin

敲几次空格就OK了。还有一个是否接受协议,输入YES就可以了。

得到jdk-1_5_0_06-linux-i586-rpm包
rpm -ivh jdk-1_5_0_06-linux-i586-rpm

安装JDK成功后,下面就要配置环境变量了。修改/etc/profile加入以下变量
export JAVA_HOME=/usr/local/java/jdk-1_5_0_06
export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:.
export PATH=$JAVA_HOME/bin:$PATH
保存后重启系统。
输入java -version查看
java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode, sharing)表示JDK已成功安装。

注:我在配置JAVA环境变量的时候,运行java -version得到的却是
java version "1.4.2"
gcj (GCC) 3.4.3 20041212 (Red Hat 3.4.3-9.EL4)
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
这说明系统中的gcj所带的JAVA的环境变量优先获得执行权。解决方法就是像上面的设置
export PATH=$JAVA_HOME/bin:$PATH,注意将$PATH放到最后。(如果放到最前,则会出现上述问题)
2、安装TOMCAT

下载jakarta-tomcat-5.0.28.tar.gz到/opt

tar -zxvf jakarta-tomcat-5.0.28.tar.gz

ln -s jakarta-tomcat-5.0.28 tomcat (创建一个软链接tomcat使之指向jakarta-tomcat-5.0.28目录,这样访问tomcat就达到了访问jakarta-tomcat-5.0.28目录的目的,使用起来比较方便)

vi /etc/profile

添加:export CATALINA_HOME=/opt/tomcat

重启机器后,/opt/tomcat/bin/startup.sh
提示:
Using CATALINA_BASE: /opt/tomcat
Using CATALINA_HOME: /opt/tomcat
Using CATALINA_TEMDIR: /opt/tomcat/temp
Using JAVA_HOME: /opt/jdk5.0

以下是偶在profile文件中最后添加的代码 
##########################################################
#set env varaible
JAVA_HOME=/usr/java/jdk1.5.0_06

CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar

PATH=$HOME/bin:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
set USERNAME
export CATALINA_HOME=/opt/tomcat
export BASEDIR=/opt/tomcat
export JAVA_HOME CLASSPATH PATH
/opt/tomcat/bin/startup.sh #开机自动启动tomcat
####################################################
启动成功后打开浏览器:http://localhost:8080
可是此时期望中的小猫并没有出现,后来发现是系统的防火墙的问题,偶将tomcat的端口改为80就没有问题了。
下面说说 tomcat中虚拟主机的配置,tomcat中主机配置文件在tomcat/conf/server.xml
以下是创建www.test.com的主机,因为我想test.com也指向到同一个地址,所以作了个别名,当然如果域名多的话,可以以此类推。
<Engine defaultHost="localhost" name="Catalina">
<Host appBase="webapps" name="www.abc.com">
</Host>
<!-- 创建虚拟主机 -->
<Host appBase="webapps" autoDeploy="false" liveDeploy="false" name="www.test.com">
<Alias>test.com</Alias>
<Logger className="org.apache.catalina.logger.FileLogger" prefix="test_log." suffix=".txt" timestamp="true"/>
</Host>
然后重启tomcat
cd /opt/tomcat/bin
./shutdown.sh
./statup.sh

上面仅仅是将在服务器上配置了域名主机,如果将域名解析到服务器后,访问www.test.com其实是访问tomcat的默认主目录,这个原因是我们没有
为www.tes.com 这个主机配置默认主目录的原因,下面说明一下:
在tomcat/conf/Catalina/找到目录www.test.com(如果没有就新建个)
vi ROOT.xml
<?xml version=’1.0’ encoding=’utf-8’?>
<Context docBase="ROOT/test" path="" workDir="work/Catalina/www.test.com/_">
</Context>
:wq
这样在www.test.com目录下创建ROOT.xml文件,它是虚拟主机www.test.com的默认上下文配置文件。
当访问www.test.com时系统会自动访问tomcat/webapps/ROOT/test文件夹的内容了。
注:关于虚拟主机上下文件的设置,也可以在Server.xml中配置.这个可以根据个人习惯来定。
例:
<Host appBase="webapps" autoDeploy="false" liveDeploy="false" name="www.test.com">
<Alias>test.com</Alias>
<Context docBase="ROOT/test" path="" workDir="work/Catalina/www.test.com/_"></Context>
<Logger className="org.apache.catalina.logger.FileLogger" prefix="test_log." suffix=".txt" timestamp="true"/>
</Host>

4、由于系统中已经自带了Mysql,所以就不需要在安装了。默认用户是root 密码为空,下面我们将添加个新的管理用户,并为root设置密码。
添加新用户:
grant all privileges on *.* to abcd@localhost identified by ’123456’ with grant option;
flush privileges;

这样我们就成功添加了拥有所有权限用户名为:abcd密码为123456并且拥有创建新用户权力的用户了。
查看Mysql用户表:
use mysql
select * from user;
可以看到刚刚添加的abcd用户已经在数据库中了。

下面为root用户更改密码。方法有很多,下面使用一种比较简单的方法:
use mysql;
update user set Password =password(’1341234’) where User=’root’;

这样 root 的密码就已经更改了.
退出mysql重新登录试试:
mysql -u root -p
输入密码,OK!
现在我们只能在服务器*问mysql,如果是这样那就太不方便了,下面我们就配置允许外部用户访问的账号
grant select,insert,update on *.* to abcde@’%’ identified by ’123456’;
flush privileges;
现在从外部还是不能访问,因为此时Linux的防火墙是不允许Mysql的端口3306开放的。

修改防火墙配置文件:
vi /etc/sysconfig/iptables
增加下面一行:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
如果想开通21等端口,只需要将3306换成21等要开放的端口就可以了。
附:iptables
==============================================
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

================================================
配置后,重新启动iptable

service iptables restart

这时就可以从外网访问Mysql了。
mysql -h 你服务器的IP地址,-u root -p
输入密码,OK!
注:Mysql默认的最大连接数是100,这一般是不够的,所以需要调整下。
如果仅想在本次有效,可以:
mysql> set GLOBAL max_connections=200
如果想一直有效:
vi /etc/my.cnf
在socket=/var/lib/mysql/mysql.sock下:增加下面一行
set-variable=max_connections=200

下面在简单说一下vsftpd的配置,因为vsftpd使用系统的用户作为FTP用户,首先我们要添加系统用户。
useradd -d /opt/tomcat -s /sbin/nologin ftpuser1
passwd ftpuser1
Changing password for user beinan.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

vsftpd的配置文件在/etc/vsftpd/vsftpd.conf中以下是摘要说明:
anonymous_enable=NO #匿名不能登录
local_enable=YES #本地用户可以登录
write_enable=YES #开通写的权限
anon_upload_enable=NO #匿名不能上传
为了将用户锁定在它的主目录中,需要以下设置:
chroot_list_enable=YES #将用户锁定在它的主目录中
# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list #锁定用户名单的文件(即/etc/vsftpd.chroot_list中的用户将会被锁定在其主目录中)
vi /etc/vsftpd.chroot_list
testftp1
testftp2
:wq
重启vsftpd
service vsftpd restart

此时FTP已经可以连接了.

以上仅是关于服务器基本的设置,其中每一项(tomcat、iptables、vsftpd)配置都是复杂而漫长的过程,请查阅相关资料。