2014年6月14日 星期六

在Linux下使用Tomcat、JSP連Mysql資料庫(配合Netbeans IDE)

在Linux下如果要使用及開發JSP動態網頁的話,通常會選擇使用Tomcat來作為JSP的伺服器,以下介紹如何在Linux的環境下安裝Tomcat

1.到Apache Tomcat的官網上下載Tomcat,下載下來後將個資料夾解壓縮後放到要配置的路徑下,這裡選擇/usr/share/java下,路徑可以自選,為了方便起見,以下用 $CATALINA_HOME  稱呼

補充:有人說還要再進行環境變數等設置,不過我沒有設就直接成功了,需要設的人可以參考這篇文及這篇文

2.在命令列指令界面中到$CATALINA_HOME/bin下,打上以下指令開啟動Tomcat,
./startup.sh
及使用以下指令關閉Tomcat
./shutdown.sh
這時可能會發現有錯誤發生,通常為對資料夾權限不夠的關係,這時可參考這篇文的作法,回到$CATALINA_HOME路徑上一層的路徑中,打上以下指令開放權限
 
sudo chmod 755 -R 你的Tomcat資料夾名稱/*

3.啟動Tomcat後,打開瀏覽器在網址列打上 http://localhost:8080  就可連上Tomcat的預設管理頁面

接著要介紹如何簡單地配合Netbeans IDE來建立能連上Mysql資料庫的JSP網頁

2014年6月13日 星期五

如何接收GCM Server發送的Registration ID訊息,以php、Java及JSP為例

在行動裝置安裝了有GCM功能的App之後,會根據App的功能進行Registration ID的註冊,接著將會將Registration ID傳送到後台,後台收到Registration ID後就可以對之做相應的處理,例如此篇文章就採取將Registration ID存進資料庫的處理。

以下後台的範例程式有兩個版本,一個為php、另一為Java,共同的環境為:

1.資料庫此例為MySql,假設相關資訊為
   Host : localhost
   User : userName
   Password :  pass
   Database :  DB_Name
   Table      :   TB_Name
   Table只有一個欄位,名為regId,存放著Registration ID

2.行動裝置使用了POST傳送方式,資料內容沒有使用JSON等格式,為最普通的名值對,如以下所示

regId=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
一、首先是php版本
<?php
    //建立跟資料庫的連接
    $dbhost = 'localhost';
    $dbuser = 'userName';
    $dbpass = 'pass';
    $dbname = 'DB_Name';
    $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error with MySQL connection');
    mysql_query("SET NAMES 'utf8'");
    mysql_select_db($dbname);
   //從行動裝置的傳來訊息中,獲取Registration ID
    if(isset($_POST['regId']))
    {
        $regId = $_POST['regId'];
        $sql = "INSERT INTO TB_Name(regId) VALUES ('$regId')";    新增資料進資料庫中
        mysql_query($sql) or die('MySQL query error');
    }
?>
二、JAVA版本(使用Apache的HttpClient)

2014年6月10日 星期二

如何向GCM Server傳送資料,以php、Java及JSP為例

向Google申請GCM成功,得到API Key、行動裝置也成功向GCM Server註冊得到Registration ID後,就可以開始由後台向GCM Server發送訊息,GCM成功拿到訊息之後,就會開始向對應Registration ID的行動裝置轉送訊息,當然,GCM Server並不會儲存Registration ID,Registration ID要由後台連同訊息一起傳給GCM Server才行。

以下的程式碼之先行作業為:
1.已向Google申請並得到API Key,假設為apiKey

2.行動裝置已經向GCM Server註冊得到了Registration ID,並已經將Registration ID傳給後台並存進資料庫中

3.資料庫此例為MySql,假設相關資訊為
   Host : localhost
   User : userName
   Password :  pass
   Database :  DB_Name
   Table      :   TB_Name
   Table只有一個欄位,名為regId,存放著Registration ID

一、先從php開始

2014年5月29日 星期四

如何在Linux的Debian系統中安裝phpMyAdmin

今天要紀錄的是如何在Linux的Debian系統中安裝phpMyAdmin,因為工作需要,同仁希望能使用資料可視化界面操作MySql而非純指令界面,於是上網尋找正確安裝並成功執行phpMyAdmin的方法,之前雖然成功安裝了phpMyAdmin,但卻卡在無法使用瀏覽器執行這步上,找了許多文之後,參考了以下這篇文

在Ubuntu上安裝Apache、MySql和PHP,配置php開發環境

成功地進行了phpMyAdmin的安裝與執行,重點為安裝完、修改文檔後要記得把/usr/share/phpMyAdmin的資料夾移到/var/www,特此在這邊紀錄下安裝與執行的過程

因為我的Debian系統已經裝了Apache和MySQL,所以跳過以下的步驟1和步驟2,直接從第3步驟開始

1.安裝佈署好Apache
2.安裝佈署好MySQL
3.因為phpMyAdmin是使用php寫成,所以我們要使用以下指令安裝php 5和 Apache php 5 module
apt-get install php5 libapache2-mod-php5
安裝完以後執行以下指令以進行Apache的重啟
/etc/init.d/apache2 restart
重啟後,可以先寫一個php網頁放到/var/www資料中測試看看能不能在瀏覽器中成功執行此php網頁,範例內容如:
<?php
echo "helloworld";
?>
假如檔名叫做 "test.php" 的話,打開瀏覽器,在網址列鍵入 "http://localhost/test.php" ,如果成功的話,應該要可以看到頁面顯示一行 "helloworld" 的文字
4.接著鍵入以下幾個命令,命令的意思我並不是很清楚,大概是要讓Apache和MySQL連接及php和MySQL連接吧

爐石戰記: 終極資料片,燃燒巫妖王之浩劫與潘達利亞之霸

<<爐石戰記>>推出了終極資料片,名為HearthStone: Heroes of Ligh King's Burning Cataclysm & Warlords of Pandaria,燃燒巫妖王之浩劫與潘達利亞之霸,名稱是不是有拗口,沒關係,這次的內容可以說是相當豐富,為了避免劇透,先來看看終極資料片的介紹影片吧!




2014年5月28日 星期三

如何安裝Oracle的JDK至Linux系統

為了在Linux系統上執行Java程式及編譯Java程式,我們必須在系統上安裝JVM及JDK(通常安裝好JDK就有JVM,而有JVM不代表有JDK),我租的VPS雲端伺服器上裝的Debian的Linux系統,其已經有安裝OpenJDK,不過我對這不太懂,也好像不能正常編譯Java檔案(我想可能是環境變數的問題),查詢了網上許多資料後,發現大家都比較喜歡Oracle公司提供的JDK,於是決定從善如流,安裝Oracle的JDK而非系統本身自帶的OpenJDK,參考了這篇文章(基於debian(ubuntu)的JDK安裝與卸載-vps環境搭建實錄(一))以後,順利地安裝了JDK並編譯執行Java檔案、程式成功,這邊記錄安裝的過程。

P.S. 雖然網上都建意要先移除OpenJDK,不過試了以後發現不用移除也能正常運作,在不衝突的情況下,倒可不必先移除OpenJDK。

1.首先先上Oracle的官網進行Linux版本的JDK下載,這裡我選擇的是與參考文章一樣的版本:jdk-6u38-linux-i586.bin

2.將下載下來的JDK檔案上傳到自己的雲端伺服器上後,使用SSH等方式進入放置JDK的資料夾,打上以下的指令執行JDK的安裝(注意下載的版本,指令請自行更改)
./jdk-6u38-linux-i586.bin

3.如果JDK因為權限問題無法安裝(會出現Pemission denied訊息),可用參考文章中所提及的兩種方法解決,我自己是用第一種方式解決
(1)在前面加上sudo sh ./jdk-6u38-linux-i586.bin
(2)添加權限再執行 sudo chmod u+x jdk-6u38-linux-i586.bin

4.接著要進行環境變數的設置,使用以下指令打開 "/etc/profile" 並對其內容進行修改
vi /etc/profile
在內容的後面加上以下代碼
#set java environment
export JAVA_HOME=/usr/local/jdk1.6.0_38
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
改完存檔後退出

5.接著要讓環境變數生效,我自己的方法是reboot系統讓其重新開機,應該也有更好的方法

6.接著就可打上
java
及
javac
看有無運作正常,也可使用
java -version
檢查版本

7.需要注意的是,如果發現使用 "java Java程式" 指令無法執行副檔名為class的Java程式,有可能是使用不同版本JDK編譯導致,這時可將原始碼(副檔名為java)上傳到Linux系統上後,直接在Linux系統上使用 "javac Java原始碼.java" 的指令對原始碼進行編譯並生成class檔,這時再用 "java Java程式" 的指令執行class檔應該就可以成功了。

補充:如果要讓除root以外的使用者使用java及javac指令的話,要打入 "visudo" 指令將使用者加入權限才行,如下(假設使用者叫做   testUser)

# User privilege specification
root ALL=(ALL:ALL) ALL
testUser ALL=(ALL:ALL) ALL

2014年5月26日 星期一

Linux 桌面可視化安裝及遠端連線(Gnome, TightVNC)

一般Linux做為伺服器時是不太需要桌面可視化介面的,只需要使用終端機(terminal)式的命令例視窗,用指令的方式操做即可,不過如果要做為個人電腦的作業系統來使用時,為了平常的日常作業方便性、及一些需要桌面顯示的軟體等原因,使用桌面圖型化的方式是比較容易操做的,如果是本地端的話,安裝桌面及使用的方式還比較容易,而如果是要連上遠端如雲端伺服器等的Linux系統的話,就必需要使用如VNC的方式來連上遠端的Linux桌面。

因為工作的關係,需要安裝Linux桌面及使用VNC的方式連上遠端的Linux桌面,找了資料後發現一篇非常有參考價值的文章(Linux VPS 安裝桌面並遠程登錄),順利地完成了我的工作,特別記錄下執行工作的過程。

1.先使用SSH的方式連上遠端Linux系統(參考:Pietty - Telnet/SSH 連線軟體),登入後打上
apt-get -y install gnome-core
進行Linux桌面程式的安裝,這裡選擇的是Gnome

2.接著我們必須在Linux上安裝VNC server軟體來在要連的Linux系統端開啟VNC接口,打上
apt-get -y install vnc4server
來安裝相關軟體,這裡選擇的是VNC4Server

3.接著要修改相關文件(補),打上(補充:這裡如果找不到文件的話,要先打上 "vncserver" 再打上 "vncserver -kill :1" 來創建文件)
vi /root/.vnc/xstartup
進入文件中,註釋掉x-terminal-emulator和x-window-manager兩行,然後再最後增加一行
gnome-session &,完成的文件內容應該長的如下所示: