"ubuntu13.04" + "tomcat7" + "mysql" "安裝" 與 "連結" 全攻略
小弟於一個機會下, 需要去學習如何架設Tomcat + Mysql
但因為小弟真的太弱了. SURVEY超久才完成
故將小弟看過的一些東西整理起來
如果有錯誤麻煩還請各位前輩指教
如果有忘記貼連結的
也請各位大大們告知
若有更多更好的架設方法
也麻煩告知小弟唷
謝謝各位
--------------------以上為開場白而已--------------------
Precondition:
a. 若為在Virtualbox裝, 則可以先設定Port Forwarding, 須先把虛擬機關掉才可以使用
a.1 點選設定 -> 網路 -> 選擇NAT -> 點擊連接埠轉送
a.2 按+ > 主機IP: 192.168.56.1, 主機連接埠: 8080(可改填寫一個目前本機端沒有被占用的PORT), 客體IP:10.0.2.15, 客體連接埠: 8080(不可改, 除非有改tomcat設定)
a.3 按+ > 主機IP: 192.168.56.1, 主機連接埠: 80(可改填寫一個目前本機端沒有被占用的PORT), 客體IP:10.0.2.15, 客體連接埠: 80(不可改)
a.4 按+ > 主機IP: 192.168.56.1, 主機連接埠: 22(可改填寫一個目前本機端沒有被占用的PORT), 客體IP:10.0.2.15, 客體連接埠: 22(不可改)
a.5 確定後, 啟動虛擬機
b. 若希望可以直接讓外部可以連接則可使用下COMMAND的方式, 仍須先把虛擬機關掉才可以使用
b.1 參考網址: http://blog.jsdan.com/2909
c. 專案內的web.xml 與 context.xml 的帳號密碼需要按照不同電腦進行配置
1. 安裝ubuntu-server
1.1 建議選英文語系, 因為Pietty不太支援中文
1.2 裝到最後會詢問是否要再加裝其他東西, 選擇OPEN-SSH與LAMP-SERVER(不要按ENTER, 要按空白鍵選擇)
1.2.1 裝LAMP-SERVER是為了希望有phpmyadmin網站可以管資料庫
1.2.2 網路上多數建議是先裝JAVA SDK再裝TOMCAT(不確定後裝會發生什麼狀況, 而且後來其實也有很多東西要裝, 不差這一個)
2. 下載Pietty(主要是方便於WINDOWS複製貼上)
3. 登陸IP填寫192.168.56.1, 連接埠為 22
4. 安裝JAVA (參考網址: http://way3sec.blogspot.tw/2012/07/ubuntu-1204-oracle-java-7.html )
4.1 移除 open JDK: sudo apt-get purge openjdk* (正常來說, 不會移除任何東西, 假設是全新的SERVER)
4.2 於Pietty下指令: sudo add-apt-repository ppa:webupd8team/java
4.3 於Pietty下指令: sudo apt-get update
4.4 於Pietty下指令: sudo apt-get install oracle-java7-installer
4.5 過程中記得要按OK和選YES(DEFAULT為NO)
5. 安裝TOMCAT與其他 (參考網址: https://help.ubuntu.com/13.04/serverguide/tomcat.html )
5.1 sudo apt-get install tomcat7
5.2 sudo vim /etc/default/tomcat7
5.2.1 按 / 尋找 JAVA_HOME, 會找到一個前面有 # , 且有OPEN-SDK蝦米碗糕的東西
5.2.2 按i, 進入編輯模式
5.2.3 移除掉前面的 #
5.2.4 將JAVA_HOME改為 /usr/lib/jvm/java-7-oracle/
5.2.5 按Ctrl + c 終止編輯
5.2.6 按 : , 並輸入wq (儲存並編輯, q!為放棄儲存)
5.3 sudo apt-get install phpmyadmin
5.3.1 會跳出一個要選SERVER的選項, 記得要先按空白鍵(對APACHE2), 然後才能按ENTER
5.4 sudo apt-get install tomcat7-admin
5.4.1 裝完後下, sudo vim /etc/tomcat7/tomcat-users.xml
5.4.2 按i, 進入編輯模式
5.4.3 加入
<role rolename="manager-gui"/>
<role rolename="admin"/>
<user username="帳號" password="密碼" roles="admin, manager-gui"/>
5.4.4 按Ctrl + c 終止編輯
5.4.5 按 : , 並輸入wq (儲存並編輯, q!為放棄儲存)
5.5 下載JDBC for mysql, http://dev.mysql.com/downloads/connector/j/
5.5.1 選擇Platform Independent (ZIP即可)並下載 (需註冊與登入)
5.5.2 解壓縮後目錄內有一個 mysql-connector-java-5.1.26-bin.jar
5.6 透過Pietty上傳檔案, 放置 JDBC for mysql
5.6.1 選擇要上傳的檔案 mysql-connector-java-5.1.26-bin.jar
5.6.2 拖拉到Pietty的畫面
5.6.3 按確定並輸入密碼
5.6.4 會上傳到使用者的目錄, 故需要移動到對的位置
5.6.5 回到user目錄 cd /home/你的USER名稱
5.6.6 sudo mv mysql-connector-java-5.1.26-bin.jar /usr/share/tomcat7/lib/
5.7 sudo vim /var/lib/tomcat7/conf/context.xml
5.7.1 於內部加入(需要與專案內的context.xml相同, 唯一不同的是 不確定是否一定要root和url有移除掉一部份)
5.8 前往http://192.168.56.1/phpmyadmin/ 匯入舊有的SQL
5.9 重開tomcat sudo /etc/init.d/tomcat7 restart
5.10 前往 http://192.168.56.1:8080/
5.11 點擊 manager webapp 連結
5.12 輸入於 5.4.3 輸入的帳號密碼
5.13 上傳WAR檔
P.s
a. 於本機端輸入 http://192.168.56.1:8080/ 就可以看到 CATALINA_HOME 和 CATALINA_BASE 的位置與管理 WEBAPP的網址
b. 若出現 The JSP specification requires that an attribute name is preceded by whitespace 錯誤, 表示有屬性跟屬性間沒有空白, 此為TOMCAT7後才會出現的錯誤, 會具有檔案名稱和行號, 修正即可繼續運行
c. 要記得 要先Undeploy才能deploy, 不然會出錯
d. 如果出現 "The last packet successfully received from the server was" 類似的錯誤, 建議直接改使用c3p0連結, 於專案內需要放入與加入build path :c3p0的三個lib(並要把3個lib的位置寫進ant腳本內), 並且也要丟到SERVER的 /usr/share/tomcat7/lib/ ,然後刪除掉 /var/lib/tomcat7/conf/context.xml 內的資料, 於專案中的context.xml要修改成
<Resource
name="jdbc/你的JDBC的名稱"
auth="Container"
type="com.mchange.v2.c3p0.ComboPooledDataSource"
factory="org.apache.naming.factory.BeanFactory"
driverClass="com.mysql.jdbc.Driver"
jdbcUrl="jdbc:mysql://localhost:3306/你家的資料庫?autoReconnect=true&useUnicode=true&characterEncoding=utf8"
user="新開的使用者"
password="密碼"
minPoolSize="10"
maxPoolSize="20"
maxIdleTime="600"
preferredTestQuery="一個會WORK的SQL"
idleConnectionTestPeriod="180"
numHelperThreads="5"
maxStatementsPerConnection="100"
/>
如果要備份整個資料庫, 則資料庫名稱取代為 --all-databases
c3p0下載位置: http://sourceforge.net/projects/c3p0/
e. 如果要DEBUG, 又不想弄髒自己的環境, 可以直接外連資料庫, 方法如下
e.1 於phpmyadmin中建立一個新的使用者, 並於 主機欄位輸入 % , 或直接拉下拉是選單先選取任一個非DEFAULT值, 再選取 任意主機 即可, 輸入完資訊後按下新增使用者
e.2 sudo vim /etc/mysql/my.cnf
e.3 按 / 搜索 skip-external-locking 和 bind-addres (或者用火眼金睛自行搜索), 把這兩行前面加上 # ,然後存檔離勘
e.4 sudo service mysql restart
e.5 於專案內的url記得要修改成正確的ip位置
f.備份SQL
f.1 sudo vim /usr/sbin/bakmysql (全新的檔案)
f.2 加入並存檔, %F為年-月-日, %s為 UTC time, 一定要用 `
mysqldump 資料庫名稱 -uroot -p密碼 -h localhost > all.sql
tar czvf 你要放的資料夾/`date +%F`.`date +%s`.sql.tar.gz all.sql
rm all.sql
f.3 sudo vim /etc/crontab
f.4 加入 30 * * * * root /usr/sbin/bakmysql (可以用萬用字元, 每小時的30分備份一次)
f.5 ls 你放的資料夾位置 確認是否有檔案
f.6 為了確保時間是正確的, 故建議參照g去設定自動校時
g. 自動網路校時
g.1 sudo apt-get install ntp
g.2 sudo /usr/sbin/ntpdate time.stdtime.gov.tw (若出現 the NTP socket is in use, exiting)
g.2.1 sudo service ntpd stop
g.2.2 chkconfig ntpd off
g.3 sudo /sbin/hwclock -w
g.4 sudo vim /etc/crontab
g.5 加入 0 0 * * * root /usr/sbin/ntpdate time.stdtime.gov.tw > /dev/null 2>&1
----------------------------------------------------------------------------
文章內可能有引用自其他網站或書籍的文字與圖片
會盡力放上出處來源
若原著作者認為有侵權
請留言通知,將盡快刪除
有意要引用部落格文章的大大們
也請務必寫上文章出處唷