1 情景
在刚开始的学习阶段开发Web项目,多半人都是在本机上写代码,在本机上修改代码,在本机上测试代码······总之,所有的工作都是在本机上完成的。但是在实际工作中,大多数情况下都是将项目部署到远程的服务器上的。那么问题就来了,怎么将Web项目部署到远程的服务器中呢?
2 工具/原料
- 操作系统:Window10 + Centos6.5(虚拟机)
- JDK:jdk1.8.0_77(Centos6.5)、jdk1.8.0_65(Windows10)
- 服务器:Tomcat8.33
3 步骤/方法
3.1 Centos下安装jdk
在官网下载Linux版本的jdk(以jdk1.8.0_77为例),使用rpm -y install jdk-8u77-linux-i586命令安装,默认安装在/usr/java/jdk1.8.0_77/路径下。安装之后,配置环境变量,使用vim /etc/profile命令打开配置文件,在最后一行,加上如下代码:
1 export JAVA_HOME=/usr/java/jdk1.8.0_77 2 export JAVA_BIN=/usr/java/jdk1.8.0_77/bin 3 export PATH=$PATH:$JAVA_HOME/bin 4 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 5 export JAVA_HOME JAVA_BIN PATH CLASSPAT
最后使用javac -version命令来检查JDK是否安装成功!
3.2 Centos下安装Tomcat
在Apache官网下载Tomcat包(以apache-tomcat-8.0.33.tar.gz为例),使用tar -zxvf apache-tomcat-8.0.33.tar.gz命令解压(加压之前最好使用chmod u+x apache-tomcat-8.0.33.tar.gz来增加执行权限)!再使用以下命令移动文件夹:
1 #重命名文件夹 2 cp apache-tomcat-8.0.33 tomcat8.0.33 3 #移动文件夹 4 mv tomcat8.0.33 /usr/ tomcat8.0.33
3.3 修改Tomcat服务器端口号为80端口
Tomcat默认端口是8080端口,但是为了部署的时候更加接近真实,最好还是把Tomcat服务器改成80端口(80端口可以不写)。举个例子来说,在Windows系统下,我们在浏览器地址栏中输入百度网址www.baidu.com来访问百度主页,其实首先经过hosts文件来查找百度网址对应哪个IP(如果找不到就会经过DNS查找),再通过IP来访问百度主页。如果你在DOS窗口下使用Ping命令就可以看到该过程:

所以,最好还是将Tomcat服务器的端口号改为80端口!修改方法很简单,但是需要注意的是,在Centos下使用netstat -lnp|grep 80命令,可以看到80端口已经被占用了。因为Centos系统的版本号高于5.6一般就会自带httpd服务(也是一种服务器,也可通过service httpd start命令来启动并且使用),而该服务所占用的端口号就是80端口。解决方法也有两种:
- 在使用Tomcat服务器的时候,使用service httpd stop命令确保httpd服务以关闭
- 修改httpd服务使用的端口号
个人肯定是推荐第二种方法的。修改方法也很简单,使用vim /etc/httpd/conf/httpd.conf打开文件,再将使用的80端口号修改为8080端口号,并且使用service httpd restart命令重启生效!最后使用在浏览器中使用http:localhost来检验检验是否成功!好了httpd服务使用的端口号修改过来了,Tomcat使用的端口号只需要打开server.xml文件,将8080改为80,再重启Tomcat服务器即可!
3.4 配置Web项目热部署
首先打开Tomcat服务器下的tomcat-users.xml文件,在tomcat-users标签下添加以下代码:
1 <role rolename="manager-gui"/> 2 <role rolename="manager-script"/> 3 <user username="tomcat" password="123456" roles="manager-gui, manager-script"/>
可通过浏览器上访问tomcat服务器主页,点击Manager App输入配置文件中的用户名和密码,若能成功登陆,则可进行下一步操作。

再在Eclipse中,在maven配置文件pom.xml中加下如下代码:
<plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> #此IP是远程Linux服务器IP <url>http://10.106.0.200/manager/text</url> <!-- 发布到根目录下,即覆盖ROOT --> <path>/</path> <server>tomcat8</server> #此用户名和密码一定要与tomcat-users.xml中的用户名密码配置一样 <username>tomcat</username> <password>123456</password> </configuration> </plugin>
到这里,热部署完成。
3.5 发布部署到Linux远程服务器
当Eclipse中代码编辑完成之后,使用Maven命令:tomcat7:redeploy,即可将Web应用部署到远程Linux服务器上!
4 配置过程遇到的坑
使用命令mvn:tomcat7:redeploy部署到远程服务器时,控制台输出如下:
1 [ERROR] Error resolving version for plugin 'mvn:tomcat7' from the repositories [ 2 local (E:\MavenlocalRepository), central (https://repo.maven.apache.org/maven2)] 3 : Plugin not found in any plugin repository -> [Help 1] 4 [ERROR] 5 [ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit 6 ch. 7 [ERROR] Re-run Maven using the -X switch to enable full debug logging. 8 [ERROR] 9 [ERROR] For more information about the errors and possible solutions, please rea 10 d the following articles: 11 [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginVersionR 12 esolutionException
解决方法:Eclipse中集成了外部的maven,所以不用带mvn,将命令改为tomcat7:redeploy运行即可。
到此,成功的将自己写的Web程序部署到远程的Linux服务器上。无论是本地服务器,还是远程服务器,通过这种方法都可以成功的部署到服务器中。
浙公网安备 33010602011771号