1. 程式人生 > >在CentOS6.8上部署專案以及如何檢視錯誤日誌

在CentOS6.8上部署專案以及如何檢視錯誤日誌

      現在很多專案都部署在Linux伺服器上執行,現在我以虛擬機器為伺服器,說一下怎樣部署一個專案並執行。

第一步:環境準備

1.1  安裝JDK

       關於JDK的安裝我這裡不做詳細介紹,大家可以參考:http://blog.csdn.net/u012453843/article/details/52422736這篇部落格進行安裝

1.2 安裝mysql

      關於Mysql的安裝,大家可以參考:http://blog.csdn.net/u012453843/article/details/52943779這篇部落格進行安裝

1.3 安裝tomcat

   1.3.1 從官網下載tomcat安裝包,也可以到:http://download.csdn.net/detail/u012453843/9665789這個地址下載

   1.3.2 上傳到伺服器,這裡我上傳到我虛擬機器的/root/zcms目錄下了

   1.3.3 解壓apache-tomcat-6.0.47.tar.gz

        [root@test zcms]# tar -zxvf apache-tomcat-6.0.47.tar.gz

1.3.4 解壓後會有一個apache-tomcat-6.0.47檔案,我們把它複製到/usr/local目錄下並重命名為tomcat

        [root@test zcms]# cp -r apache-tomcat-6.0.47 /usr/local/tomcat

    1.3.5 設定Tomcat開機自啟動,修改

rc.local檔案,命令列:vim/etc/rc.d/rc.local,在檔案末尾加上下面三句話,當然,jdk的版本不同,你要寫你jdk的版本。

        export JDK_HOME=/usr/java/jdk1.7.0_80
        export JAVA_HOME=/usr/java/jdk1.7.0_80
        /usr/local/tomcat/bin/startup.sh

    1.3.6 為了方便的手動控制tomcat啟動、關閉,我們就需要配置環境變數,讓命令在任何目錄下都可以執行,下面紅色加粗的配置是我們需要配置的內容(JDK是我們第一步就配置好的)。

[root@test zcms]# vim /etc/profile

    pathmunge /usr/local/sbin
else
    pathmunge /usr/local/sbin after
    pathmunge /usr/sbin after
    pathmunge /sbin after
fi HOSTNAME=`/bin/hostname 2>/dev/null`
HISTSIZE=1000
if [ "$HISTCONTROL" = "ignorespace" ] ; then
    export HISTCONTROL=ignoreboth
else
    export HISTCONTROL=ignoredups
fi export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL # By default, we want umask to get set. This sets it for login shell
# Current threshold for system reserved uid/gids is 200
# You could check uidgid reservation validity in
# /usr/share/doc/setup-*/uidgid file
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
    umask 002
else
    umask 022
fi for i in /etc/profile.d/*.sh ; do
    if [ -r "$i" ]; then
        if [ "${-#*i}" != "$-" ]; then
            . "$i"
        else
            . "$i" >/dev/null 2>&1
        fi
    fi
done unset i
unset -f pathmunge
export JAVA_HOME=/usr/java/jdk1.7.0_80
export TOMCAT_HOME=/usr/local/tomcat
export PATH=$JAVA_HOME/bin:$TOMCAT_HOME/bin:$PATH
注意:配置完之後儲存,並使用命令source /etc/profile來使配置生效 1.3.7 啟動tomcat    [root@test ~]# startup.sh
   Using CATALINA_BASE:   /usr/local/tomcat
   Using CATALINA_HOME:   /usr/local/tomcat
   Using CATALINA_TMPDIR: /usr/local/tomcat/temp
   Using JRE_HOME:        /usr/java/jdk1.7.0_80
   Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar
  1.3.8 關閉tomcat    [root@test ~]# shutdown.sh
   Using CATALINA_BASE:   /usr/local/tomcat
   Using CATALINA_HOME:   /usr/local/tomcat
   Using CATALINA_TMPDIR: /usr/local/tomcat/temp
   Using JRE_HOME:        /usr/java/jdk1.7.0_80
   Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar
1.3.9 檢查tomcat是否已經啟動,我們使用命令jps來檢視程序,如果有Bootstrap程序,說明tomcat已經啟動了。如果沒有這個程序,說明tomcat未啟動。    [root@test ~]# jps
    30436 Jps
   
30404 Bootstrap 第二步:部署專案 2.1 匯出war包 在工程上右鍵,滑鼠放到"Export"---->點選"WAR file",如下圖所示。 接著會看到如下圖所示的介面,我們選擇匯出的路徑,然後點選"Fnish"。 2.2 上傳war包到伺服器,這裡我先上傳到我/root/zcms目錄下 2.3  將tomcat的webapps目錄下的檔案都先刪除,刪除所有檔案使用的命令是rm -rf * [root@test ~]# cd /usr/local/tomcat/webapps/
[root@test webapps]# ls
docs  examples  host-manager  manager  ROOT
[root@test webapps]#
rm -rf * [root@test webapps]# ls [root@test webapps]#已經空了    2.4 將/root/zcms目錄下的ZCMS.war移動到tomcat的webapps下面 [root@test zcms]# mv ZCMS.war /usr/local/tomcat/webapps/ 2.5 修改tomcat的埠號,由8080修改為80,我們 [root@test zcms]# cd /usr/local/tomcat
[root@test tomcat]# ls
bin  conf lib  LICENSE  logs  NOTICE  RELEASE-NOTES  RUNNING.txt  temp  webapps  work
[root@test tomcat]# cd conf/
[root@test conf]# ls
Catalina  catalina.policy  catalina.properties  context.xml  logging.properties  server.xml  tomcat-users.xml  web.xml
[root@test conf]# vim server.xml
    <Connector port="
80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

    "server.xml" 148L, 6614C     2.6 由於我要在虛擬機器初始化資料庫,tomcat預設的jvm記憶體只有128M,太小了,我們需要修改它為256M,如下所示。 [root@test bin]# ls
bootstrap.jar       commons-daemon.jar            digest.bat        shutdown.bat  tomcat-juli.jar       version.bat
catalina.bat        commons-daemon-native.tar.gz  digest.sh         shutdown.sh   tomcat-native.tar.gz  version.sh
catalina.sh        cpappend.bat                  setclasspath.bat  startup.bat   tool-wrapper.bat
catalina-tasks.xml  daemon.sh                     setclasspath.sh   startup.sh    tool-wrapper.sh
[root@test bin]# vim catalina.sh
#                   implementation when JSSE is used. Default is:
#                   "-Djdk.tls.ephemeralDHKeySize=2048"
#
#   CATALINA_PID    (Optional) Path of the file which should contains the pid
#                   of catalina startup java process, when start (fork) is used
#
#   LOGGING_CONFIG  (Optional) Override Tomcat's logging config file
#                   Example (all one line)
#                   LOGGING_CONFIG="-Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties"
#
#   LOGGING_MANAGER (Optional) Override Tomcat's logging manager
#                   Example (all one line)
#                   LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"
#
#   USE_NOHUP       (Optional) If set to the string true the start command will
#                   use nohup so that the Tomcat process will ignore any hangup
#                   signals. Default is "false" unless running on HP-UX in which
#                   case the default is "true"
# ----------------------------------------------------------------------------- # OS specific support.  $var _must_ be set to either true or false.
JAVA_OPTS="-Xms256m -Xmx512m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=256m"
cygwin=false 2.7 MySQL資料庫的表名在Linux系統下是嚴格區分大小寫的,在Windows系統下開發的程式移植到Linux系統下,如果程式中SQL語句沒有嚴格按照大小寫訪問資料庫表,就可能會出現找不到表的錯誤。還有個問題就是如果不指定編碼字符集的話,可能會亂碼     上面兩個問題的解決方法是在/etc/my.cnf檔案中新增lower_case_table_names=1和default-character-set=utf8這樣兩句話。注意放的位置是在[mysqld]下面。如下所示。 [root@test bin]# vim /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
lower_case_table_names=1
default-character-set=utf8
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid 第三步:啟動我們的專案 3.1 重啟mysql        重啟mysql的命令是:service mysqld restart,如下所示。 [root@test ~]# service mysqld restart
Stopping mysqld:                                           [  OK  ]
Starting mysqld:                                           [  OK  ]
[root@test ~]#     3.2 重新啟動tomcat,先使用命令shutdown.sh關閉tomcat,然後使用命令startup.sh來啟動tomcat,如下所示。 [root@test ~]# shutdown.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/jdk1.7.0_80
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar
[root@test ~]# [root@test ~]# startup.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/jdk1.7.0_80
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar 第四步:瀏覽我們的專案,剛才我打包的名稱是ZCMS,因此訪問的時候位址列輸入的是:localhost:80/ZCMS,剛開始會初始化資料庫,初始化完之後,再重新整理頁面,就會看到如下圖所示的介面了。   ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------        那麼如果我們的程式在虛擬機器中執行出現錯誤了,我們怎麼定位問題呢?我們需要到tomcat的logs目錄下去檢視,如下所示,我們可以看到我程式執行的一個錯誤是把Windows系統下的目錄拿到Linux環境下運行了,肯定會出錯的!!知道了錯誤,再對症下藥,就快多了。 [root@test logs]# ls
catalina.2016-10-27.log  catalina.out  host-manager.2016-10-27.log  localhost.2016-10-27.log  manager.2016-10-27.log
[root@test logs]# more catalina.out
ERROR: 16-10-27 04:58:50 java.io.FileNotFoundException: d:/2010.xlsx (No such file or directory)
ERROR: 16-10-27 04:58:50        at java.io.FileOutputStream.open(Native Method)
ERROR: 16-10-27 04:58:50        at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
ERROR: 16-10-27 04:58:50        at java.io.FileOutputStream.<init>(FileOutputStream.java:110)
       
         這是到日誌檔案中去檢視日誌,我們還可以像在Eclipse的控制檯一樣實時檢視系統執行資訊,具體步驟是我們先進入到tomcat的logs目錄下,然後輸入命令:tail -f catalina.out並回車,就開始事實檢視系統執行資訊了,如下所示。如果想結束事實檢視資訊,按Ctrl+C就可以退出實時模式了。 [root@test tomcat]# ls
bin  conf  lib  LICENSE  logs  NOTICE  RELEASE-NOTES  RUNNING.txt  temp  webapps  work
[root@test tomcat]# cd logs/
[root@test logs]# tail -f catalina.out
完成:0%
完成:0%
完成:0%
完成:0%
完成:0%
完成:0%
完成:0%
完成:0%
完成:0%
URL /platform/environmentalTest.zhtml cost 242ms.
INFO: 16-10-27 05:28:03 ZCMS Compile application.zhtml cost 10 ms.
URL /application.zhtml cost 260ms.
INFO: 16-10-27 05:28:05 ZCMS Compile platform/systemInfo.zhtml cost 30 ms.
INFO: 16-10-27 05:28:11 ZCMS Compile platform/environmentalTest.zhtml cost 1 ms.