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服务器上。无论是本地服务器,还是远程服务器,通过这种方法都可以成功的部署到服务器中。

  

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3