2014年9月25日 星期四

關於限制存取根目錄URL與welcome-file的問題記錄

這裡記錄了一個我曾經發生但不太懂的開發情況:
以下是JSP的安全權限設定:
<security-constraint>
        <display-name>ManagerConstraint</display-name>
        <web-resource-collection>
            <web-resource-name>iBeaconServerPages</web-resource-name>
            <description>Pages of iBeacon Project Server</description>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <description/>
            <role-name>Manager</role-name>
        </auth-constraint>
    </security-constraint>
    <security-constraint>
        <display-name>TicketCheckerConstarint</display-name>
        <web-resource-collection>
           <web-resource-name>PagesAboutTicketChecker</web-resource-name>
            <description>Pages about Ticket Checker</description>
            <url-pattern>/welcomePage.jsp</url-pattern>
            <url-pattern>/ticketCheckUsers/*</url-pattern>
            <url-pattern>/guestFlowMonitor/*</url-pattern>
            <url-pattern>/logoutPage.jsp</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <description/>
            <role-name>TicketChecker</role-name>
            <role-name>Manager</role-name>
        </auth-constraint>
    </security-constraint>
可以看到,在根目錄下的所有頁面將限制由Manager存取,而/welcomePage.jsp、/ticketCheckUsers/*、/guestFlowMonitor/*和logoutPage.jsp限制由Manager和TicketChecker存取,以上四個頁面在url匹配時會先在TicketCheckerConstarint的權限設定中被匹配到,所以如果不設Manager的話,Manager將無法存取。

2014年9月8日 星期一

Linux的重要相關設定、指令、好用指令

重要路徑:
Tomcat:
(1)權限設置的位置(角色、使用者、密碼等):
/usr/share/tomcat6/conf/tomcat-users.xml

(2)部署war檔的地方:
/var/lib/tomcat6

Apache:
(1)部署網頁的地方(包括php):
/var/www/html

重要指令:
(1)重啟Apache:   /etc/init.d/httpd restart
(2)重啟MySQL:  /etc/init.d/mysqld restart
(3)重啟Tomcat:  /etc/init.d/tomcat6 restart
(4)進入MySQL: mysql -u root -p (root可改不同user名稱)
(5)新增使用者帳號:useradd 帳號名稱
(6)設定使用者的密碼:passwd 帳號名稱

重要設定:
(1)設定DNS(重開機後要重設)
進入 /etc/resolv.conf
vi /etc/resolv.conf
打入以下內容
nameserver 8.8.8.8
nameserver 8.8.4.4

(2) 第一次設定 root 密碼:
sudo passwd root

好用指令:
得到上次執行的命令或角本返回的狀態值 (0 為正常,非 0 為不正常,非 0 的狀態碼由角本作者自行決定意義)
echo $?

列出所有儲存裝置資訊,包括塊磁碟分區資訊等 (list block device):
lsblk
加上 -f 參數可列出一些其他資料,例如檔案格式 (FSTYPE),如值為空則代表還未格式化,尚不具有檔案系統。

格式化區塊成檔案系統
mkfs -t <檔案格式> <要被格式化的區塊>
範例:
mkfs -t xfs /dev/xvdf

備份檔案 rsync 指令,比 cp (複制) 更多功能的 rsync 指令,像是可以顯示多檔案進度、可判斷有異動的檔案才複制等功能
範例 (-P 等同於 --progress (可顯示進度)和 --partial (保留傳輸中斷的檔案以進行續傳)、
-a 等同於 --archive,為 archive mode,等同於使用了參數 -rlptgoD +  沒有 -H,-A,-X):
rsync -aP <來源路徑> <目標路徑>

在Centos 6下安裝phpMyAdmin及Tomcat

情境:
1.系統為Centos 6
2.已裝MySQL
3.已裝php
4.已裝php-mbstring

需求:
1.欲安裝phpMyAdmin
2.欲安裝Tomcat

解法過程:
一、欲安裝phpMyAdmin
        參考資料:CentOS 6.4 (64位元) 安裝 phpMyAdmin

(1).先下載 phpMyAdmin 的壓縮檔
wget http://downloads.sourceforge.net/project/phpmyadmin/phpMyAdmin/3.5.8.1/phpMyAdmin-3.5.8.1-all-languages.tar.gz

(2)對其進行解壓縮
tar -zxvf phpMyAdmin-3.5.8.1-all-languages.tar.gz

(3)將解壓縮後的 phpMyAdmin-3.5.8.1-all-languages 目錄移到 Apache 預設的網頁目錄下並重新命名為 phpMyAdmin
mv phpMyAdmin-3.5.8.1-all-languages /var/www/html/phpMyAdmin

(4)回到新放置的目綠位置
cd /var/www/html/phpMyAdmin
(5)複製範本設定檔 config.sample.inc.php 並重新命名為 config.inc.php
cp config.sample.inc.php config.inc.php
(6)進入 config.inc.php文件中修改認證操作方式
vi config.inc.php

將 $cfg['Servers'][$i]['auth_type'] = 'cookies'; 的 'cookies' 改成 'http' ,如下所示
$cfg['Servers'][$i]['auth_type'] = 'http';
(7)接著重新啟動Apache伺服器應該就能成功以localhost/phpMyAdmin為網址用瀏覽器登入phpMyAdmin了
service httpd restart

在Centos 6 下安裝遠端桌面

因為工作的關係,選用的VPS其系統改用Centos,因為在安裝遠端桌面時,跟Debian有一點不太一 樣,所以特做此紀錄,參考的資料來源為:CentOS 5/6 安裝 GNOME 與 KDE 桌面環境

在這裡,我選用KDE做為我的桌面,這裡要注意的是,Centos 6 與 Centos 5 在安裝KDE時用的包名稱上有些微的差異:

1.首先先使用以下指令安裝X windows
yum -y groupinstall 'X Window System'

2.再安裝KDE,在這邊為Centos 6版本,如果為Cemtos 5版本,指要把 'KDE Desktop' 改成 'KDE (K Desktop Environment)' 即可:
yum -y groupinstall 'KDE Desktop'  

3.安裝中文套件,不然用瀏覽器看中文網頁會變成亂碼
yum -y groupinstall "Chinese Support"

4.安裝vncserver,Centos6可安裝tigervnc-server
yum -y install tigervnc-server

5.配置KDE桌面,進入 /root/.vnc/xstartup 修改文件內容(補充:這裡如果找不到文件的話,要先打上 "vncserver" 再打上 "vncserver -kill :1" 來創建文件)
vi /root/.vnc/xstartup
並在最下面加上一行
exec /usr/bin/startkde &

這樣,遠端桌面就安裝成功了

補充:如果在使用yum安裝東西時發生了 Errno 14 Couldn't resolve host 的錯誤,表示DNS設定沒設好,可參考這篇yum 安裝時錯誤 Errno 14 Couldn't resolve host 解決辦法的解決辦法,在/etc/resolv.conf的文件中添加一行DNS的設定,如添加 8.8.8.8 (Google的DNS Server):
nameserver 8.8.8.8