程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 運用VMware10.1搭建CentOS +Tomcat 筆記

運用VMware10.1搭建CentOS +Tomcat 筆記

編輯:關於JAVA

運用VMware10.1搭建CentOS +Tomcat 筆記。本站提示廣大學習愛好者:(運用VMware10.1搭建CentOS +Tomcat 筆記)文章只能為提供參考,不一定能成為您想要的結果。以下是運用VMware10.1搭建CentOS +Tomcat 筆記正文


本以為裝個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改回來就可以了



 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved