首页 > 系统服务 > 详细

使用VMware10.1搭建CentOS +Tomcat 笔记

时间:2017-01-27 16:35:17      阅读:477      评论:0      收藏:0      [点我收藏+]

本以为装个tomcat很容易,但是没想到还是遇到了很多的问题,特此写下这篇笔记,为其他有需求的同学提供一些参考。

系统环境:Windows7 + VMWare 11.0准备工具:CentOS 7安装iso文件, apache tomcat以及JDK

操作步骤:

 

一、使用VMware安装好CentOS系统

  这一步不作详细叙述了,因为对大多数人来说太简单。

二、设置共享文件夹

  由于在离线状态下安装,所以一些工具需要从宿主机的共享文件夹里复制到虚拟机里来,我采用的是设置共享文件夹的方式,不知道其他同学有没有更好的方式。但就是在设置这个共享文件夹的时候出了很多的问题。

  我在安装系统的时候,系统是默认自动安装好VMtool的,但是不知道是什么原因,在我建立共享文件夹后,在/mnt/hgfs下没有我存好的文件。于是我在网上查找了原因,有网友说是因为gcc版本需要升级,但是我这是离线安装,gcc版本升级实在是不太好办。于是我另想办法,决定重新安装vmtools。在vmware选项里选择重新安装vmtools,然后进行了以下步骤

  1.mount /dev/cdrom /mnt/cdrom将vmtools挂载到cdrom文件夹

  2.将cdrom中的VMTool的tar文件拷贝到本地磁盘,然后用tar -zxf VMTool 进行解压

  3.解压之后运行其中的.pl文件

  4.出现一些需要确认的问题,一路Enter

  5.这时候问题来了,突然提示HgfsWbRequestWait函数里有一个wait_on_bit函数报错,具体的提示内容我没有拷贝下来。然后提示你如果继续请按Enter键,之后安装完毕。看了一下hgfs文件夹,依然空空如也。

  6.用百度搜索了一些解决办法,基本判定是vmtool的源代码文件出了问题。这个文件的位置在之前解压出来的vmware-tools-distrib/lib/modules/source目录下的Page.c文件。

  7.引用CSDN的博主kyolong的文章,链接——http://blog.csdn.net/a39206821/article/details/54313326

  文中提到:

  

通过查看后发现因为centos 7的Linux内核用的3.10版本,在函数 wait_on_bit_io()中有三个参数,而vmtool的代码在内核3.19后才用3个参数的wait_on_bit_io()函数,代码如下

   1639 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
   1640    return wait_on_bit_io(&req->wb_flags,
   1641                          PG_BUSY,
   1642                          TASK_UNINTERRUPTIBLE);
   1643 #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
   1644    return wait_on_bit(&req->wb_flags,
   1645                       PG_BUSY,
   1646 #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0)
   1647                       HgfsWbRequestWaitUninterruptible,
   1648 #endif
   1649                       TASK_UNINTERRUPTIBLE);
   1650 #else

 

个人推测,在其他linux版本中可能也会出现类是的问题,只要看看报错源码,如果是由于#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0),这种判断造成的报错,只要把宏改成当前的版本号,一般都能解决问题.

vmware-tools-distrib/lib/modules/source的目录下有不少tar文件,我是根据报错的提示
“/tmp/modconfig-71euqe/vmhgfs-only/page.c:1649:23: error: too many arguments to function ‘wait_on_bit’” 一个个去解压了找的

解压指令
tar xf vmhgfs.tar

修改目录下的page文件的1639行

   1639 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)

改为如下↓

   1639 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)

解压后修改完成打包指令
tar cf vmhgfs.tar vmhgfs-only

然后执行vmware-install.pl 问题解决

 

我按照这位博主的方法找到了这个文件,发现第1639行并不是文中的代码,而是一串长长的注释。于是我估计是版本的问题,我查了一下我使用的centos以及vmware的版本号,

uname -r 得到centos内核版本是3.10.0-514.e17.x86_64

cat /etc/redhat-release ,系统版本是 CentOS Linux release 7.3.1611 (Core)

Vmware版本是11.0.0 build-2305329

我又根据提示找到这个函数HgfsWbRequestWait

发现其实问题出在这

HgfsWbRequestWait(HgfsWbPage *req) // IN: request of page data to write
{
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
    return wait_on_bit(&req->wb_flags,PG_BUSY,
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0)
                                     HgfsWbRequestWaitUninterruptible,
#endif
                                     TASK_UNINTERRUPTIBLE);
#else
    wait_event(req->wb_quque,
                    !test_bit(PG_BUSY, &req->wb_flags));
    return 0;
#endif
}

在第1619行,我把

#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
    return wait_on_bit(&req->wb_flags,PG_BUSY,
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0)
                                     HgfsWbRequestWaitUninterruptible,
#endif

改成了
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
    return wait_on_bit(&req->wb_flags,PG_BUSY,
                      HgfsWbRequestWaitUninterruptibl
             TASK_UNINTERRUPTIBLE);

是的,我把这个大于3.17.0的版本判断去掉了。因为我实在不理解为什么还要设置版本上限。

OK,打包压缩包,重新安装vmtool,没有再出现这个提示,再看看/mnt/hgfs文件夹,发现里面已经有内容了。至此,用vmware共享文件夹终于完成。




三、安装tomcat
  整体上这一步还是比较简单的,但还是遇到了一个意外的问题。
  
1.安装jdk1.8
  Centos7默认自带openjdk,但是大家还是习惯性地使用oracle的jdk,所以我去官网下载了最新的jdk版本,进行安装。通过共享文件夹拷贝到本地磁盘,解压、修改文件名,一切都是这么流畅和自然。
  2.配置环境变量
  由于之前将jdk的文件都放在了usr/local/java路径下,所以我的配置方式如下:
  使用vim /etc/profile
  在末尾加入如下代码
  
JAVA_HOME=/usr/local/java
JRE_HOME=/usr/local/java/jre
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH

 

  之后保存文件,输入java -version 显示出了版本号,如果版本号没有变化试着重启一下系统就可以了。
  这个过程十分简单,但是之前不记得看了哪位仁兄写的配置代码修改了profile文件,结果配置错误导致所用系统自带的命令都无法运行,提示command not found
  查看了这位仁兄的文章,有了一个自救的办法
  误改profile文件command not found 自救方法
  输入
  export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
  后,命令就可以正常运行了,这时候赶快把profile改回来就可以了



 

使用VMware10.1搭建CentOS +Tomcat 笔记

原文:http://www.cnblogs.com/missmiao/p/6353896.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!