分类: 系统运维
2011-05-04 13:24:07
确定了Linux的安装策略,那么下面我就在VMware上操刀实践一个基于Ubuntu Server的基础Java服务器实验环境,本人喜欢叫做LAMT架构:Linux + Apache + MySQL + Tomcat。
说
句题外话,前几天听到一个某国企的同志把大名鼎鼎的F-14
Tomcat说成是玩具,好像我现在准备搭建的就是个过家家的平台。我也曾有幸参与过某leading
AppServer的开发,抛开商业的和political因素,我实在是更喜欢猫,躲猫猫对平头老百姓可不是闹着玩的。
首先,在
VMware中最小化安装Ubuntu Server(以9.04为例),过程很简单,只是安装过程中不要选择安装任何额外的软件包括X
Window,在安装完毕之后根据需要再用apt-get安装需要的软件。(VMware
Server和Workstation中的过程基本上差不多的)
虚拟机内存一般分配512M,磁盘分配10G就绰绰有余了。其实这些东西
基本都是可以以后作调整的。VMware Workstation还有个不错的功能叫Shared
Folders,可以让虚拟操作系统直接访问宿主操作系统的硬盘,这样即使虚拟操作系统会产生大量的数据或者需要很多其他数据一般也不用担心硬盘不够用,
不过要特别注意的Shared Folders中的内容不能被分别位于两个操作系统的程序同时访问,否则数据可能会被破坏。您也可以参考这里更详细指南 。(当然了,也可以考虑用Samba之类的来支持Windows和Linux的共享,不过有点麻烦啊)
安装VMware Tools
和
直接在电脑上安装不同的是,在虚拟机上完成操作系统安装之后,首先应该在虚拟操作系统里面安装VMware
Tools(VirtualBox也有类似的需求)。这个工具可以提高操作系统在虚拟机中的运行性能,而且能提供很多额外功能,比如以上所述的
Shared Folders。
首先安装必要的packages:
sudo apt-get install build-essential linux-headers-`uname -r` psmisc
然后运行VMware的菜单 > VM > Install VMware tools,接下来将VMware自动mount到光驱的内容复制到用户目录,在执行解压和安装:
sudo mkdir /media/cdrom
sudo mount /dev/cdrom /media/cdrom
sudo cp /media/cdrom/VMwareTools*.tar.gz ~
tar xvf VMwareTools*.tar.gz
cd ~/vmware-tools-distrib
sudo ./vmware-install.pl
然后就开始安装过程,对安装程序询问的所有问题都回答yes即可。
如果您稍后想卸载VMware Tools,执行sudo /usr/bin/vmware-uninstall-tools.pl即可。
安装SSH Server
虽
然Ubuntu
Server是安装在本地虚拟机中,但是VMware的界面中的字符控制台似乎比较有限:复制、粘贴或者设置屏幕缓冲区高度都不便,而且一般也只能控制一
个进程。所以安装一个SSH的server应该是必要的,这样可以用Putty之类的SSH client来操作Ubuntu。
sudo apt-get install openssh-server,安装完后测试一下是否工作:ssh localhost
安装Samba
sudo apt-get install samba
然后修改配置文件
sudo vim /etc/samba/smb.conf
找到这行并改为wins support = yes,这样在windows中可以用hostname访问Ubuntu Server的服务,当然包括HTTP之类的。
如果要通过Samba让Ubuntu提供共享目录给Windows,首先将您在Ubuntu中的用户添加到Samba中:
sudo smbpasswd -a yourusername
然后
sudo vim /etc/samba/smb.conf
在配置文件中添加比如:
[myshare]
path = /home/yourusername/share
browsable = yes
guest ok = no
read only = yes
create mask = 0777
valid users = yourusername
最后重启samba
sudo /etc/init.d/samba restart
看看windows能不能通过\\ubuntuHostname访问共享。
安装Apache
sudo apt-get install apache2
安装MySQL
sudo apt-get install mysql-server
如果您想要您的Windows上的程序能够直接连接这个MySQL数据库(默认MySQL出于安全不允许从主机之外连接),则
sudo vim /etc/mysql/my.cnf,将bind-address = localhost注释掉,或者改成固定的IP(当然VMware中的操作系统一般没有固定IP的)
接下来,设置MySQL的root用户密码:
mysqladmin -u root password yourpassword
登录MySQL:
mysql –u root –p
创建一个数据库(采用最通用的UTF-8编码):
CREATE DATABASE databaseName CHARACTER SET utf8 COLLATE utf8_general_ci;
创建一个用户并分配将上面数据库的权限分配给他:
grant all on databaseName.* to 'yourUsername'@'localhost' identified by 'yourPassword';
flush privileges;
如果您希望能够从Ubuntu之外,比如Windows上的Java程序中连接这个数据库,将上面命令中的localhost替换为%。
安装JDK
sudo apt-get install sun-java6-jdk
安装Tomcat
本人看到许多的砖家都建议不要用apt-get安装Ubuntu库中的Tomcat,但当时还是很傻很天真的追求完美一致的安装方式,不听老人言的,吃亏在眼前啊。
如果您也明知故犯,至少在sudo apt-get install tomcat6之后应该:
sudo vim /etc/init.d/tomcat6,将其中的tomcat_security改为false,将java security manager禁用,否则错误连绵不断。
相反的,如果不用Ubuntu标准的Tomcat,则直接在apache站点手工下载Tomcat,然后解压到/usr/local/tomcat
如果JAVA_HOME没有设置,sudo vim ~/.bash_profile,并添加:
export JAVA_HOME=/usr/lib/jvm/java-6-sun
以便于手工启动Tomcat。最后,为了让Tomcat作为守护进程自动启动
sudo vim /etc/init.d/tomcat,并写入:
export JAVA_HOME=/usr/lib/jvm/java-6-sun
export TOMCAT_HOME=/usr/local/tomcat
case $1 in
start)
sh $TOMCAT_HOME/bin/startup.sh
;;
stop)
sh $TOMCAT_HOME/bin/shutdown.sh
;;
restart)
sh $TOMCAT_HOME/bin/shutdown.sh
sh $TOMCAT_HOME/bin/startup.sh
;;
esac
exit 0
然后为此脚本添加执行权限
sudo chmod a+x /etc/init.d/tomcat
用sudo /etc/init.d/tomcat start测试一下
集成Apache和Tomcat
首先安装mod_jk:
sudo apt-get install ibapache2-mod-jk
然后创建配置
sudo vim /etc/apache2/workers.properties
并添加:
workers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr/lib/jvm/java-6-sun
ps=/
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
接下来,修改apache默认站点的配置文件:
sudo vim /etc/apache2/sites-available/default
将部署在Tomcat中的webapp同时部署到Apache,并添加转发规则:
DocumentRoot pathToYourWebappDeployedToTomcat
……
# Apache 默认通过AJP转发给Tomcat
JkMount /* ajp13
# Apache自己处理以下类型的文件
JkUnMount /*.jpg ajp13
JkUnMount /*.gif ajp13
JkUnMount /*.png ajp13
JkUnMount /*.js ajp13
JkUnMount /*.css ajp13
JkUnMount /*.ico ajp13
JkOptions +ForwardURICompatUnparsed
修改Tomcat文件确保AJP connector启用:
如
果您的Java
Web应用采用UTF-8编码,则在上面的Connetor中添加URIEncoding="UTF-8",因为AJP默认采用ISO-8859-1来解
码URL参数。同理,如果您的Tomcat直接处理HTTP请求而不是通过Apache,需要在其HTTP connector上添加此参数。
本人完成这些步骤后集成就OK了,如果您还有问题,可以再参考一下这此人的步骤
好了,现在估计一个基本的Java Web基本测试部署环境已经搭建就绪,应该不难的,主要就是有时候要找到简单而可工作的step by step指南不是非常容易,毕竟每个人的系统环境和习惯都有所不同。
最
后总结一下,经本人实际实践之后,发现*入门*Linux其实真的比较容易,特别是对那些和本人一样,在工作中对他有零碎儿的接触的同志。至于在校的同
学,自己动手搭建一遍环境,跑个把小web应用,稍微玩一段时间,就大胆的在简历中增加Linux的经验吧(除非您找的就是专业的Linux程序员、管理
员),反正我是曾经这么干过;)