ภาคผนวก

coldwaterphewΔιακομιστές

17 Νοε 2013 (πριν από 3 χρόνια και 8 μήνες)

222 εμφανίσεις











ภาคผนวก


28











ภาคผนวก ก

แอพเพล็ตทดสอบการท างานของ
Java Card
คลาส
Pin


29


ใ ช้เ พื่อ ท ำ ส อ บ ว่ำ ก ำ ร์ด ที่เ ร ำ ใ ช้มีคุณส ม บัติต่ำ ง ๆ ค ร บ ถ้ว น ห รือ ไ ม่
เ นื่อง จำกมีผู้ผลิตกำร์ดออกมำมำกจึง อำจจะไ ม่ไ ด้มีกำร ใ ส่ฟัง ก์ชันกำรใ ช้ง ำนต่ำง ๆ
ข อ ง ก ำ ร์ด ไ ว้อ ย่ำ ง ค ร บ ถ้ว น ต ำ ม เ อ ก ส ำ ร ป
ร ะ ก อ บ ข อ ง จ ำ ว ำ ก ำ ร์ด
ซึ่ง จะ ส่ง ผลกร ะ ทบต่อกำ ร ติดต่อสื่อสำ ร ของ กำร์ดกับแอพพลิเ คชันที่ติดต่อใ ช้ง ำ น
จะประกอบไปด้วยไฟล์ทั้งหมด 4 ไฟล์ด้วยกันดังนี้


1.
ไฟล์
TestMain.java


เป็นคลำสหลักที่ใช้เรียกอีก 3 ไฟล์ที่เหลือเพื่อท ำกำรทดสอบคุณสมบัติกำร์ด

package cra.test;


impo
rt javacard.framework.*;


public class TetsMain extends Applet {



private final static byte CLA_MULTI_TEST = (byte)0x80; //
ก ำหนด
CLA
ส ำหรับกำร
test method(
กรณีนี้จะใช้ได้ทั้ง
00

และ
80)


private final static byte INS_DO_TESTS = (byte)0x20;

//
ก ำหนด
INS
ส ำหรับกำร
test


private final static byte SW1_SUCCEED = (byte)0x9B;


//
ก ำหนด
Status word
ที่ระบุว่ำกำร
test
เสร็จสิ้น


private final static byte SW2_TEST_PASSED = (byte)0x00; //
ก ำหนด
Status word
ที่ระบุว่ำกำร
test
ผ่ำน


private final static byte SW2_TEST
_FAILED = (byte)0x7F; //
ก ำหนด
Status word
ที่ระบุว่ำกำร
test
ไม่ผ่ำน




//


ก ำหนดค่ำ
constant
ของ
input data
ซึ่งใช้เลือก
mode
ที่ต้องกำร
test


private final static byte Test_Constructor = (byte)0x31;


private final static byte Test_UPDATE = (byte)0x32;


private final static byte Test_CHECK = (byte)0x33;






30


OwnerPIN PIN;


static byte tryLimit = (byte)0x03;


static byte maxPINSize = (byte)0x10;




void TestMain(){



register();


}



public static void install(byte[] bArray, short bOffset, byte bLength) {



// GP
-
compliant JavaCard applet registration



new TetsMain().register(bArray, (short) (bOffset + 1), bArray[bOffset]);


}




public void process(APDU apdu) {



// Good practice: Return 9000 on SELECT



if (selectingApplet()) {




return;



}






//
รับค่ำในส่วน
head
ของ
command APDU
มำเก็บที่
byte
-
array



byte[] buffer = apdu.getBuffer();



short bytesReceive;



short numTests;



byte result;



byte status = SW2_TEST_PASSED;






if((buffer[ISO7816.OFFSET_CLA] == CLA_MULTI_TEST) ||
(buffer[ISO7816.O
FFSET_CLA] == 0)){









31





bytesReceive = apdu.setIncomingAndReceive();













//
ตรวจสอบขนำดของ
input data
ต้องเท่ำกับขนำดที่
APDU buffer
รับได้





numTests = (short)(buffer[ISO7816.OFFSET_LC] & 0xFF);





if(numTests != bytesReceive){






ISOE
xception.throwIt(ISO7816.SW_WRONG_LENGTH); //
แสดง
status word
ระบุว่ำขนำดของ
input data
ไม่ถูกต้อง





}









byte[] buf = apdu.getBuffer();





switch (buf[ISO7816.OFFSET_INS]) {





case INS_DO_TESTS :






//
ตรวจสอบขนำดของ
input data
ต้องเท่ำกับขน
ำดที่
APDU buffer
รับได้






numTests = (short)(buffer[ISO7816.OFFSET_LC] &
0xFF);






if(numTests != bytesReceive){







ISOException.throwIt(ISO7816.SW_WRONG_LENGTH); //
แสดง
status word
ระบุว่ำขนำดของ
input data
ไม่ถูกต้อง






}













// for

loop
ส ำหรับด ำเนินกำรทดสอบฟังก์ชันทีละฟังก์ชัน
จำก
input data
ที่อำจระบุให้มีกำรทดสอบหลำยฟังก์ชันในครั้งเดียว






for(short i = ISO7816.OFFSET_CDATA;







i < ((short)(ISO7816.OFFSET_CDATA +
buffer[ISO7816.OFFSET_LC]));


32







i++ ){







result = this.d
oTest(buffer[i],apdu,buffer);







buffer[i] = result;







if(result != 0){








status = SW2_TEST_FAILED; //
หำกผลกำรทดสอบไม่ผ่ำน แม้เพียงกรณีเดียว ให้
status word
ระบุว่ำกำรทดสอบไม่ผ่ำน







}






}













//
ส่ง
response APDU
กลับสู่
termin
al










apdu.setOutgoingAndSend(ISO7816.OFFSET_CDATA,numTests);






ISOException.throwIt(Util.makeShort(SW1_SUCCEED,status));








break;












default:






// good practice: If you don't know the INStruction, say
so:






ISOException.throwIt
(ISO7816.SW_INS_NOT_SUPPORTED);





}



} else {




ISOException.throwIt(ISO7816.SW_CLA_NOT_SUPPORTED); //
กรณีที่
CLA
เป็นค่ำอื่นที่ไม่ได้ก ำหนดไว้ จะหมำยถึง
applet
ไม่สนับสนุนค่ำนี้



}


}




33


private byte doTest(byte testCode,APDU apdu,byte[] buffer){



byte result = (byte)0xFF; //
ก ำหนดค่ำเริ่มต้นของผลลัพธ์







switch(testCode){ // switch
ค่ำ
testCode(
รหั
สของฟังก์ชันที่ต้องกำรทดสอบ
ที่ได้ก ำหนดไว้ในส่วนต้นของโปรแกรม)






//
ส ำหรับทดสอบ
Constructor
ของ
class OwnerPIN
ด้วย
method doTest
ของ
class TestConstructor
ซึ่งสืบทอดมำจำก
class OwnerPIN



case Test_Constructor:




result = TestConstructor.doTest();




break;


//
ส ำหรับทดสอบ
method update
ของ
class OwnerPIN
ด้วย
method doTest
ของ
class
Testupdate
ซึ่งสืบทอดมำจำก
class OwnerPIN



case Test_UPDATE:




result = Testupdate.doTest();




break;



//
ส ำหรับทดสอบ
method update
ของ
class OwnerPIN
ด้วย
method doTest
ของ
class Testupdate
ซึ่งสืบทอดมำจำก
class OwnerPIN



case Test_CHECK:




result = TestCheck.doTest();




break;






default:




result = (byte)0xFF; //
ให้ผลลัพธ์เป็นค่ำ
bit 1111 1111

ในกรณีของรหัสค ำสั่งอื่นไม่ได้ก ำหนดไว้



}



return re
sult; //
ผลกำรทดสอบ


}




34

}


35

2.
ไฟล์
TestConstructor.java


เพื่อทดสอบคอนสทรักเตอร์ (
Constructor
) ของคลำส
Pin

package cra.test;


import javacard.framework.OwnerPIN;

import javacard.framework.PINException;



class TestConstructor extends OwnerPIN {



static

OwnerPIN PIN;


static byte tryLimit = (byte)
0
x
03
;


static byte maxPINSize = (byte)
0
x
10
;






public TestConstructor(byte tryLimit, byte maxPINSize) throws PINException {



super(tryLimit, maxPINSize);



//
TODO Auto
-
generated constructor stub






TestCon
structor.tryLimit = tryLimit;



TestConstructor.maxPINSize = maxPINSize;


}



public boolean check(byte[] pin, short offset, byte length){



return false;




}




public byte bytegetTriesRemaining(){



return (byte)
-
1
;




}




36


public boolean isValidated(){



return false;


}




public void reset(){



return;


}




//
test method


public static byte doTest(){



byte result = (byte)
0
;



try{







PIN = new TestConstructor(tryLimit, maxPINSize); //
สร้ำง
instance
ของ
OwnerPIN



}catch(PINException e){




if(
e.getReason() == PINException.ILLEGAL_VALUE)





result += (byte)
1
; // if tryLimit or maxPINSize parameter is
less than
1.



}catch(Exception e){




result += (byte)
2
; // Other Exception



}



return result; // Return result


}

}


37

3. TestCheck.java

เพื่
อทดสอบกำรท ำงำนของเมทธอด
Check

ภำยในคลำส
Pin

package cra.test;


import javacard.framework.OwnerPIN;

import javacard.framework.PINException;


public class TestCheck extends OwnerPIN {



public static OwnerPIN PIN;


static byte tryLimit = (byte)0x03;


static

byte maxPINSize = (byte)0x10;




public TestCheck(byte tryLimit, byte maxPINSize) throws PINException {



super(tryLimit, maxPINSize);



// TODO Auto
-
generated constructor stub






TestCheck.tryLimit = tryLimit;



TestCheck.maxPINSize = maxPINSize;


}




static byte doTest(){



byte result = (byte)0;






try{




PIN = new TestCheck(tryLimit, maxPINSize);



}catch(PINException e){




if(e.getReason() == PINException.ILLEGAL_VALUE)





result +=(byte)1;



}catch(NullPointerException e){


38




result += (byte
)2;




// if the check operation would cause access of data outside array
bounds.



}catch(ArrayIndexOutOfBoundsException e){




result += (byte)4; // if pin is null.



}catch(Exception e){




result += (byte)8; // other exception.



}








return resul
t;


}

}


39

4. Testupdate.java

เพื่อทดสอบกำรท ำงำนของเมทธอด
Update
ภำยในค
ลำส
Pin

package cra.test;


import javacard.framework.OwnerPIN;

import javacard.framework.PINException;


class Testupdate extends OwnerPIN {




static OwnerPIN PIN;


static byte maxPINSize = (byte)0x10;


static byte
tryLimit = (byte)0x03;


static byte[] pArray = {(byte)0x01, (byte)0x01, (byte)0x02, (byte)0x03,





(byte)0x05, (byte)0x08, (byte)0x13, (byte)0x21 };


//static short pOffset = (short)0x05;


static byte pLen = (byte)0x08;




public Testupdate(byte tryLimit,

byte maxPINSize) throws PINException {



super(tryLimit, maxPINSize);



// TODO Auto
-
generated constructor stub






//Testupdate.maxPINSize = maxPINSize;



//Testupdate.tryLimit = tryLimit;


}




public static byte doTest(){



byte result = (byte)0;



PI
N = new OwnerPIN(tryLimit, maxPINSize);






try{


40




PIN.update(pArray, (short)0, pLen);



}catch(PINException e){




if(e.getReason() == PINException.ILLEGAL_VALUE)





result += (byte)1; // if length is greater than configured
maximum PIN size.



}catch(
Exception e){




result += (byte)2; // other Exception.






}



return result;


}



}



41














ภาคผนวก ข

ขั้นตอนการติดตั้ง
Mandriva Linux 10.2 (Limited Edition 2005)



42

ขั้นตอนการติดตั้ง
Mandriva Linux 10.2 (Limited Edition 2005)

1.

ก ำหนดค่ำให้เครื่องคอมพิวเตอร์เริ่มบูตจำกไดร์ฟซีดีรอมเป็นอันดับแรก

2.

ใส่แผ่นที่ 1 เข้ำไปจะพบกับหน้ำจอแรก กดปุ่ม
Enter
เพื่อเริ่
มท ำกำรติดตั้งในกรำฟฟิคโหมด

3.

เลือกภำษำที่ต้องกำรใช้ในกำรติดตั้งที่ต้องกำร ซึ่งจะเป็นภำษำของเมนู ในที่นี้จะเลือกเป็น
English (American)

จำกนั้นกดปุ่ม
Next

4.

จำกนั้นจะปรำกฎเงื่อนไงกำรใช้งำน และลิขสิทธิ

ของ
Mandriva
เลือก
Accept
แล้วกดปุ่ม
Next

5.

เป็นหน้ำจอที่ใช้
ส ำหรับเลือกมำตรำฐำนควำมปลอดภัยของเครื่อง ให้เลือกเป็นแบบ
Standard
จำกนั้นกดปุ่ม
Next

6.

Mandriva
จะให้เรำเลือกว่ำต้องกำรใช้พื้นที่ว่ำงของฮำร์ดดิส (
User free space,
พื้นที่ที่ยังไม่ถูกก ำหนดให้มีรู
ปแบบของไฟล์) หรือจะแบ่งพำร์ทิชั
นเอง

(Custom disk
partitioning
)

ส ำหรับผู้ที่เริ่มใช้งำนควรเลือกตัวเลือกแรก แต่ในที่นี้จะเลือกก ำหนดพำร์ทิชั่นเอง
โดยจะสร้ำงทั้งหมด 3 พำร์ทิชัน คือ
/boot,

/ (root)

และ
swap

ซึ่งจะมีรำยละเอียดดังนี้



/boot


มีเนื้อที่ไม่เกิน 100
MB
ใช้
บันทึกไฟล์ต่ำงๆ ที่จ ำเป็นใน
กำรโหลดเคอ
ร์
เนล

(kernel)
ของลี
นุก



/
เ ป็นพำร์ทิชันหลักที่เ ก็บไ ฟล์ต่ำงๆ ของลินุกไว้ทั้งหมด
สำมำรถก ำหนดเนื้อที่ได้จนเต็มเนื้อที่ของฮำร์ด



Swap
จะเป็นหน่วยควำมจ ำเสมือนของลินุก มีเนื้อที่เป็นสองเท่ำของแรมที่เรำมีอยู่

เมื่อสร้ำงพำร์ทิชัน
เสร็จแล้วให้กดปุ่ม
Done
เพื่อบันทึกตำรำงพำร์ทิชันลงฮำร์
ดดิสก์

7.

รอซักครู่ลินุกซ์จะท ำกำรฟอร์แมทพำร์ทิชัน เพื่อเปลี่ยนระบบไฟล์ จำกนั้นกดปุ่ม
Next
และต่อด้วยปุ่ม
OK

8.

จำกนั้นจะปรำกฎหน้ำจอ
Package Group Selection
ให้เลือกหัวข้อ
Development
เพิ่มเติ่ม
กดปุ่ม
Next
เพื่อท ำกำรติดตั้งลินุกซ์ลงบนฮำร์ดิสก์
ขั้นตอนนี้จะให้เว
ลำช้ำหรือเร็ว
จะขึ้นอยู่กับควำมเร็วของเครื่องคอมพิวเทอร์แต่ละเครื่อง และแพ็คเกจที่เลือกเพิ่มเติม

9.

เมื่อติดตั้งเรียบร้อย ลินุกจะให้เรำก ำหนดรหัสผ่ำนของผู้ดูแลระบบ
(root)
กดปุ่ม
Next
เพื่อด ำเนินกำรติดตั้งต่อไป

10.

จะพบกับหน้ำจอ
Enter a User
สำมำรถเพิ่มผู้ใช้จำกหน้
ำต่ำงนี้ โดยใส่ ชื่อ

(Real name),
ชื่อผู้ใช้
(Login name),
รหัสผ่ำน

(Password),
และยืนยันรหัสผ่ำน กดปุ่ม
Accept user

43

เพื่อเพิ่มผู้ใช้ และเพิ่มผู้ใช้อื่นๆ อีก หำกต้องกำรเพิ่มผู้ใช้เพียงคนเดียวก็สำมำรถกดปุ่ม
Next
ไปได้เลย

11.

เลือกว่ำ
ต้องกำรให้มีกำรล็อกอินเข้ำใช้
งำนโดยผู้ใช้ที่สร้ำงขึ้นหรือไม่ และระบบ
X
-
Window

ที่ต้องกำรใช้เป็นค่ำเริ่มต้น กดปุ่ม
Next

12.

กดปุ่ม
Configure
หลังหัวข้อ
Network


lan
เพื่อตั้งค่ำกำรเชื่อมกับเน็ตเวิร์ค จำกนั้นเลือก
LAN connection
แล้วกดปุ่ม
Next

13.

เลือกกำร์ดแลนที่ติดตั้งแล้วกดปุ่ม
Next

14.

เลือ

Automatic IP
เพื่อให้มีกำรก ำหนดไอพีแอดเดรสโดยอัตโนมัติ จำกนั้นกดปุ่ม
Next
2 ครั้ง
(ไม่ใช่กำรดับเบิลคลิก)

15.

ในหน้ำต่ำงนี้ สำมำรถตั้งชื่อให้กับเครื่องคอมพิวเตอร์ของเรำได้ในช่อง
Host name

ซึ่งจะกรอกหรือไม่ก็ได้ จำกนั้นกดปุ่ม
Next 5
ครั้ง ตำมด้วยปุ่ม
Reboot

16.

จำ
กนั้นเครื่องจะท ำกำรรีบูต และเข้ำสู่กำรใช้งำน ลินุก


44














ภาคผนวก ค

ขั้นตอนการติดตั้ง

และก าหนดค่าการใช้งาน
Open
-
Xchange


45

ขั้นตอนการ
ติดตั้ง
และก าหนดค่าเพื่อใช้งานโปรแกรม

Open
-
Xchange


เ นื่องจากโปรแกรม
Open
-
Xchange
เ ป็นโปรแกรมประเ ภท
Group Ware
จึง มีส่
ว น ป ร ะ ก อ บ ข อ ง โ ป ร แ ก ร ม อ ยู่ห ล า ย ส่ว น
ดัง นั้น ใ น ก า ร ติด ตั้ง โ ป ร แ ก ร ม จึง ต้อ ง มีก า ร ก า ห น ด ค่า ค ว บ คู่กัน ไ ป
เพื่อให้ส่วนประกอบต่างๆของโปรแกรมท างานร่วมกันได้อย่าถูกต้อง โดยมีขั้นตอนดังต่อไปนี้

1.

ซอฟต์แวร์ที่ต้องการ

2.

ขั้นตอนการติดตั้งโปรแกรมต่างๆ

3.

การติดตั้งโปรแกรม
Open
-
Xchange

4.

ก า
หนดค่าโปรแกรม
Open
-
Xchange


5.

ก าหนดค่าของ

Apache

6.

ก าหนดค่าเว็บเซิร์ฟเวอร์
Tomcat


7.

คัดลอกไอคอนไปยังโปรแกรม
Open
-
Xchange


8.

สร้างผู้ใช้ของโปรแกรม
PostgreSQL
และฐานข้อมูลของโปรแกรม
Open
-
Xchange


9.

ก าหนดค่าโปรแกรม
OpenLDAP


10.

เพิ่มข้อมูลให้กับ
LDAP
ส าหรับโปรแกรม
Open
-
Xchange


11.

สร้างกลุ่มผู้ใช้งาน และผู้ใช้งานของโปรแกรม
Open
-
Xchange


12.

ก าหนดค่าเว็บเซิร์ฟเวอร์
Apache
1.3 ให้เริ่มท างานเมื่อเครื่อง
boot


13.

ก าหนดค่าโปรแกรม
Open
-
Xchange
ให้เริ่มท างานเมื่อเครื่อง
boot


14.

ก าหนดค่าเว็บเซิร์ฟเวอร์

Tomcat
ให้เริ่มท างานเมื่อเครื่อง
boot


15.

แก้ไขในส่วนเว็บเมล์ของโปรแกรม
Open
-
Xchange


16.

การสั่งให้เซอร์วิสต่างๆเริ่มท างาน


46

1.

ซอฟต์แวร์ที่ต้องการ



ก า ร ติด ตั้ง โ ป ร แ ก ร ม
Open
-
Xchange
นั้นต้องอาศัยการท างานร่วมกันของหลายโปรแกรมดังต่อไปนี้

รายชื่อโปรแกรม (เวอร์ชั่นที่ใช้งาน)

ดาว์นโหลดได้ที่

䩡癡J
1.5

(
j摫
-
1
_
5
_
0
_
06
-
linux
-
i
586.
扩่)

h瑴瀺⼯java⹳.่.c้洯j
2
獥s
1.5.0/
摯w่l้a搮j獰

䅰慣he T้浣a琠
5.


⡡pache
-
瑯mcat
-
5.5.14.
瑡์⹧稩z

h瑴瀺⼯瑯mca琮a灡phe.้์术摯w่l้ad
-
55.
cgi

Apache Ant

(apache
-
ant
-
1.6.5
-
bin.tar.gz)

http://ant.apache.org/bindownload.cgi

PostgreSQL JDB
C Driver
(pg
74.215.
jd扣
3.
ja爩

h瑴瀺⼯jd扣.灯獴杲g獱l.้牧์摯w่l้a搯pg
74.215.
j摢c
3.
ja์

䩡癡䵡il

⡪a癡vail
-
1
_
3
_
3
-
ea.zip)

http://java.sun.com/products/javamail/downloads/index.html

JAF

(jaf
-
1
_
0
_
2
-
upd
2.
穩瀩

h瑴瀺⼯java⹳.่.c้洯灲潤pc瑳⽪a癡扥慮猯杬慳杯w⽪慦
⹨瑭t

塥์ces
-


⡘(์ces
-
J
-
bi่.
2.7.1.
瑡์⹧稩

h瑴瀺⼯a์chi癥vapache.้牧์摩獴⽸sl⽸/牣es
-
j/塥์ces
-
J
-
扩่.
2.7.1.
瑡์⹧z

䩄位

⡪摯m
-
1.0.
瑡爮杺g

h瑴瀺⼯w睷⹪摯洮้牧⽤i獴/扩่a特⽪摯m
-
1.0.
瑡爮杺

佰O่
-
Xcha่来g

⡯pe่
-
xcha่来
-
0.8.0
-
6.
瑡爮杺t

h瑴瀺⼯mi牲์์⹯灥่
-
硣桡
่ge⹯牧.摯w่l้a搯a牣hive/้灥p
-
硣桡xge
-
0.8.0
-
6.
瑡爮์z

佘⁚e่i瑨⁉c้่獥s
0.1
(
้硟穥zi瑨彩c้่獥t
-
0.1.
瑡์⹧稩

h瑴瀺⼯mi牲์์⹯灥่
-
硣桡xge.้牧⽤้睮l้ad⽭/獣⽴he浥猯้硟穥湩zh彩_้่獥s
-
0.1.
瑡爮์z

偯獴杲e卑L
8.0

(
灯獴杲e獱l
-
8.0.3.
瑡์⹧稩

h瑴瀺⼯w睷⹰้獴杲e獱s⹯์g
⽦瑰⽳潵牣e⽶
8.0.3/





47

รายชื่อโปรแกรม (เวอร์ชั่นที่ใช้งาน)

ดาว์นโหลดได้ที่

OpenLDAP

(openldap
-
2.3.4.
tgz)

http://www.openldap.org/software/download/

Apache
2.0

(
httpd
-
2.0.55.
tar.gz)

http://www.reverse.net/pub/apache/httpd/httpd
-
2.0.55.
tar.gz

Tomcat Co
nnectors (mod_jk)
(jakarta
-
tomcat
-
connectors
-
1.2.14.1
-
src.tar.gz)

http://tomcat.apache.org/connectors
-
doc

Berkeley DB

(db
-
4.3.28.
NC.tar.gz)

http://dev.sleepycat.com/downloads/releasehistorybdb.html

Fakeroot

(fakeroot_
1.2.10.
tar.gz)

http://ftp.debian.org
/debian/pool/main/f/fakeroot

zlib

(zlib
-
1.2.3.
tar.gz)

http://www.zlib.net/zlib
-
1.2.3.
tar.gz

perl
-
IO
-
Socket
-
SSL

(perl
-
IO
-
Socket
-
SSL
-
0.96
-
1
mdk.noarch.rpm)

http://rpm.pbone.net/index.php
3/
stat/
4/
idpl/
1866463/
com/

perl
-
IO
-
Socket
-
SSL
-
0.96
-
1
mdk.noarch.rpm.h
tml


2.

ขั้นตอนการติดตั้ง
โปรแกรมต่างๆ


เ มื่อดำว์นโ หลดซอฟ์ตแวร์ที่จ ำเ ป็นต้อง ใ ช้มำเ ก็บไ ว้ใ นไ ดเ ร็คทอรี
/usr/adm/ox
(
สำมำรถเปลี่ยนที่เก็บได้
)

จำกนั้นให้แก้ไขไฟล์
profile

(/
etc/profile
) และ
.bashrc

(/
root/.bashrc
)
โดยใส่ข้อควำมนี้ด้ำนล่ำงสุดของแต่ล่ะไฟล์

JAVA_HOM
E=/usr/local/java

CATALINA_HOME=/usr/local/tomcat

ANT_HOME=/usr/local/ant

OX_HOME=/usr/local/openxchange

TOMCAT_HOME=$CATALINA_HOME

PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin:$ANT_HOME/bin:$OX_HOME/bin:$

48

OX_HOME/sbin:/usr/local/openldap/sbin:/usr/local/op
enldap/bin:/usr/local/pgsql/bin:/usr/loca
l/openldap/libexec

export PATH JAVA_HOME CATALINA_HOME ANT_HOME OX_HOME TOMCAT_HOME


เ มื่อท ำ กำ ร แก้ไ ขไ ฟล์เ รียบร้อยแล้ว ใ ห้ล็อกเ อำท์ แล้วล็อกอินเ ข้ำ มำ อีกครั้ง
เ พื่อ ท ำ ก ำ ร ป รับ ป รุง ค่ำ ที่ก ำ ห น ด ไ ว้ใ น ไ ฟ ล์
ด้ำ น บ น
หลังจำกนั้นให้ตรวจสอบควำมพร้อมของเครื่องคอมพิวเตอร์ว่ำมีแพ็คเกจต่ำงๆ เหล่ำนี้ติดตั้งอยู่หรือไม่
ตรวจสอบได้ด้วยค ำสั่ง
rpm

q

ตำมด้วยชื่อแพ็คเ
กจที่ต้องกำรตรวจสอบ



openssl
-
devel
-
0.9.7
f
-
7.
i
386.
rpm



openssl
-
0.9.7
f
-
7.
i
386.
rpm



perl
-
5.8.6
-
15.
i
386.
rpm



gcc
-
c++
-
4.0.0
-
8.
i
386.
rpm



gcc
-
4.0.0
-
8.
i
386.
rpm



sudo
-
1.6.8
p
8
-
1.
i
386.
rpm



unzip
-
5.51
-
10.
i
386.
rpm



aspell
-
0.50.5
-
6.
i
386.
rpm



aspell
-
en
-
0.51
-
12.
i
386.
rpm



make
-
3.80
-
7.
i
386.
rpm



perl
-
Convert
-
ASN
1
-
0.19
-
1.
noarch.rpm



perl
-
XML
-
NamespaceSupport
-
1.08
-
7.
noarch.rpm



perl
-
XML
-
SAX
-
0.12
-
7.
noarch.rpm



perl
-
LDAP
-
0.33
-
1.
noarch.rpm


สร้ำง
ผู้ใช้

nobody

# userdel nobody

# adduser nobody



# mkdir
-
p /usr/adm/rpm



49

จำกนั้นให้
ใส่แผ่นติดตั้ง
Mandriva
10.2 แผ่นแรกจำกนั้นใช้ค ำสั่ง ดังนี้

# mount /mnt/cdrom cp

/
mnt/cdrom/media/main/aspell
-
0.60.2
-
2
mdk.i
586.
rpm /usr/adm/rpm/

# cp

/
mnt/cdrom/media/main/libaspell
15
-
0.60.2
-
2
mdk.i
586.
rpm /usr/adm/rpm/

# cp

/
mnt/cdrom/media/main/libncurse
sw
5
-
5.4
-
1.20050108.1
mdk.i
586.
rpm

/
usr/adm/rpm/

# cp /mnt/cdrom/media/main/perl
-
Convert
-
ASN
1
-
0.18
-
1
mdk.noarch.rpm

/
usr/adm/rpm/

# cp /mnt/cdrom/media/main/perl
-
Net_SSLeay
-
1.25
-
4
mdk.i
586.
rpm

/
usr/adm/rpm/

# cp /mnt/cdrom/media/main/perl
-
ldap
-
0.31
-
2
mdk.noarch
.rpm

/
usr/adm/rpm/

# cp

/
mnt/cdrom/media/main/perl
-
XML
-
NamespaceSupport
-
1.08
-
4
mdk.noarch.rpm

/
usr/adm/rpm/

# cp /mnt/cdrom/media/main/perl
-
XML
-
SAX
-
0.12
-
4
mdk.noarch.rpm

/
usr/adm/rpm/

# cp /mnt/cdrom/media/main/perl
-
XML
-
Parser
-
2.34
-
3
mdk.i
586.
rpm

/
usr/adm/rpm
/

# cp /mnt/cdrom/media/main/multiarch
-
utils
-
1.0.8
-
1
mdk.noarch.rpm

/
usr/adm/rpm/

# cp /mnt/cdrom/media/main/perl
-
CGI
-
3.05
-
1
mdk.noarch.rpm

/
usr/adm/rpm/


เปลี่ยนเป็นแผ่นที่สอง จำกนั้นตำมด้วยค ำสั่ง

# mount

/
mnt/cdrom

# cp /mnt/cdrom/media/main
2/
aspell
-
en
-
6.0
.0
-
1
mdk.i
586.
rpm

/
usr/adm/rpm/


จำกนั้นใส่แผ่นสุดท้ำยแล้วตำมด้วยค ำสั่ง

# mount

/
mnt/cdrom

# cp /mnt/cdrom/media/main
3/
libaspell
15
-
devel
-
0.60.2
-
2
mdk.i
586.
rpm

/
usr/adm/rpm/


# cd /usr/adm/rpm

# rpm
-
i

libaspell
15
-
devel
-
0.60.2
-
2
mdk.i
586.
rpm aspell
-
0.60.2
-
2
mdk
.i
586.
rpm

aspell
-
en
-
6.0.0
-
1
mdk.i
586.
rpm
\

# libaspell
15
-
0.60.2
-
2
mdk.i
586.
rpm

libncursesw
5
-
5.4
-
1.20050108.1
mdk.i
586.
rpm

multiarch
-
utils
-
1.0.8
-
1
mdk.noarch.rpm

# rpm
-
i

perl
-
XML
-
Parser
-
2.34
-
3
mdk.i
586.
rpm

# rpm
-
i

perl
-
Convert
-
ASN
1
-
0.18
-
1
mdk.noarch.rpm


50

# rpm
-
i

perl
-
Net_SSLeay
-
1.25
-
4
mdk.i
586.
rpm

# rpm
-
i

perl
-
ldap
-
0.31
-
2
mdk.noarch.rpm

# rpm
-
i

perl
-
XML
-
NamespaceSupport
-
1.08
-
4
mdk.noarch.rpm

# rpm
-
i

perl
-
XML
-
SAX
-
0.12
-
4
mdk.noarch.rpm

# rpm
-
i

perl
-
CGI
-
3.05
-
1
mdk.noarch.rpm


# cd /usr/adm/ox

# rpm
-
i

perl
-
IO
-
Socket
-
SSL
-
0.96
-
1
mdk.noarch.rpm


# cd

/
usr/adm/ox/

#
chmod
755 /
usr/adm/ox/jdk
-
1
_
5
_
0
_
06
-
linux
-
i
586.
bin


#
cd

/
usr/local

#

/
usr/adm/ox/jdk
-
1
_
5
_
0
_
06
-
linux
-
i
586.
bin

#

ln
-
s

/
usr/local/jdk
1.5.0
_
06 /
usr/local/java


#

tar
-
zxf

/
usr/adm/ox/apache
-
tomcat
-
5.5.14.
tar.gz

#

ln
-
s /usr/local/apache
-
tomcat
-
5.5.14 /
usr/local/tomcat


#

tar
-
zxf

/
usr/adm/ox/apache
-
ant
-
1.6.5
-
bin.tar.gz

#

ln
-
s /usr/local/apache
-
ant
-
1.6.5 /
usr/local/ant


#

mkdir jdbc

#

cp

/
usr/adm/ox/pg
74.215.
jdbc
3.
jar jdbc


#

unzip

/
usr/adm/ox/javamail
-
1
_
3
_
3
-
ea.zi
p

#

ln
-
s /usr/local/javamail
-
1.3.3
ea

/
usr/local/javamail




51

#

unzip

/
usr/adm/ox/jaf
-
1
_
0
_
2
-
upd
2.
zip

#

ln
-
s /usr/local/jaf
-
1.0.2 /
usr/local/jaf


#

cd /usr/local

#

tar
-
zxf

/
usr/adm/ox/Xerces
-
J
-
bin.
2.7.1.
tar.gz

#

ln
-
s /usr/local/xerces
-
2
_
7
_
1 /
usr/local/xerc
es


#

cd /usr/local

#

tar
-
zxf

/
usr/adm/ox/jdom
-
1.0.
tar.gz

#

ln
-
s /usr/local/jdom
-
1.0 /
usr/local/jdom


#

cd /usr/adm/ox

#

tar
-
zxf zlib
-
1.2.3.
tar.gz

#

cd

zlib
-
1.2.3

#
./
configure

#

make test

#

make install

#

cd /usr/adm/ox

#

tar
-
zxf postgresql
-
8.0.3.
tar.g
z

#

cd

postgresql
-
8.0.3

#
./
configure
--
without
-
readline

#

make

#

make

install


#

adduser postgres
-
d /usr/local/pgsql

#

mkdir

/
usr/local/pgsql/data

#

chown postgres /usr/local/pgsql/data

#

su
-

postgres

$
/
usr/local/pgsql/bin/initdb
-
D

/
usr/local/pgsql/dat
a


52

$
/
usr/local/pgsql/bin/postmaster
-
D

/
usr/local/pgsql/data

&


กดปุ่ม
Enter


$
/
usr/local/pgsql/bin/createdb test

$
/
usr/local/pgsql/bin/psql

test

$
\
q

$
exit

#

ln
-
s /usr/local/pgsql/bin/postgres

/
usr/local/pgsql/bin/pgsql


#

cd /usr/adm/ox

#

tar
-
zxf

db
-
4.3.28.
NC.tar.gz

#

cd db
-
4.3.28.
NC

#

cd

build_unix

#
../
dist/c
onfigure

#

make

#

make install

แก้ไขไฟล์
ld.so.conf

(
/
etc/ld.so.conf
)

โดยเพิ่มข้อควำมด้ำนล่ำงในบรรทัดสุดท้ำยของไฟล์


/
usr/local/BerkeleyDB.
4.3/
lib


จากนั้นจึงป้อนค าสั่ง

#
ldconfig



#
cd /usr/adm/ox

#
tar
-
zxf openldap
-
2.3.4.
tgz

#
cd

openldap
-
2.3.4

#
expor
t

LD_LIBRARY_PATH="/usr/adm/ox/db
-
4.3.28.
NC/build_unix/.libs"

#
env

CPPFLAGS="
-
I/usr/local/BerkeleyDB.
4.3/
include"

LDFLAGS="
-
L/usr/local/BerkeleyDB.
4.3/
lib"
\


53

./
configure

--
prefix=/usr/local/openldap
--
enable
-
aci
--
enable
-
crypt

#
make

depend

#
make

#
make
test

#
make install


#
cd /usr/adm/ox/

#
tar

-
zxf apache_
1.3.34.
tar.gz


#
cd apache_
1.3.34

#
./
configure

--
prefix=/usr/local/apache
--
with
-
mpm=prefork
--
enable
-
rewrite
--
enable
-
deflate

-
-
enable
-
vhost
-
alias
--
enable
-
so

#
make

#
make install

#
cd

/
usr/adm/ox/

#
tar
-
zxf jakarta
-
tomcat
-
connectors
-
1.2.14.1
-
src.tar.gz

#
cd

jakarta
-
tomcat
-
connectors
-
1.2.14.1
-
src/jk/native

#

./
configure

--
with
-
apxs=/usr/local/apache/bin/apxs

#
make

#
make install

#
cd

/
usr/adm/ox/

#
tar
-
zxf fakeroot_
1.2.10.
tar.gz

#
cd

fakeroot
-
1.2
.10

#
./
configure

#
make

#
make install





54

3
.


การติดตั้งโปรแกรม
Open
-
Xchange


หลังจากที่ท าการติดตั้งโปรแกรมต่างที่ต้องการส าหรับ
Open
-
Xchange
เรียบร้อยแล้ว
ขั้นตอนนี้จะเป็นการติดตั้งโปรแกรม
Open
-
Xchange

#
cd /usr/adm/ox/

#
tar
-
zxf open
-
xchange
-
0.8.0
-
6.
tar.gz

#
mv

open
-
xchange
-
0.8.0
-
6
open
-
xchange

#
c
d open
-
xchange

#
./
configure

\

--
prefix=/usr/local/openxchange
--
with
-
mailjar=/usr/local/javamail/mail.jar

\


--
with
-
activationjar=/usr/local/jaf/activation.jar

--
with
-
jdomjar=/usr/local/jdom/build/jdom.jar

\

--
with
-
xercesjar=/usr/local/xerces/xercesImpl.ja
r

\

--
with
-
jsdkjar=/usr/local/tomcat/common/lib/servlet
-
api.jar

\

--
with
-
jdbcjar=/usr/local/jdbc/pg
74.215.
jdbc
3.
jar

\

--
with
-
htdocsdir=/usr/local/apache/htdocs/

--
with
-
cgibindir=/usr/local/apache/cgi
-
bin/
\

--
with
-
runuid=nobody

--
with
-
rungid=nobody
\

--
wit
h
-
domain=dipdns.org

--
with
-
organization="DipDNS Network
"
\

--
with
-
basedn="dc=dipdns,dc=org
"
\

--
with
-
rootdn="cn=admin,dc=dipdns,dc=org
"
--
with
-
dbname=openexchange

\

--
with
-
dbuser=openexchange
\

--
with
-
dbpass=secret
--
with
-
dbhost=
127.0.0.1
--
enable
-
webdav


เปลี่ยน
dipdns.org

ให้เป็น
domain
ที่ต้องการ เช่น
ngi
-
network.net

เปลี่ยน
DipDNS

Network

ให้เป็นชื่อหน่วยงานที่ต้องการ เช่น
NGI Network

เปลี่ยน
dc=dipdns,dc=org
" ตาม
domain
ที่ต้องการ เช่น
dc=ngi
-
network,dc=net


make

make install



สร้ำง
shell script
เพื่อ
ท ำให้
OpenLDAP
เริ่มท ำงำนตอน
boot



55

สร้ำงไฟล์
slapd (
/etc/rc.d/init.d/slapd
)
โดยใส่ข้อควำมด้ำนล่ำงลงไป

#!/bin/sh

#

LD_LIBRARY_PATH=/usr/local/BerkeleyDB.
4.3/
lib

export LD_LIBRARY_PATH

#


ต่อด้วยค ำสั่ง

/
usr/local/openldap/libexec/slapd

chmod
755 /
etc/rc.d/in
it.d/slapd

ln
-
s /etc/rc.d/init.d/slapd

/
etc/rc.d/rc
3.
d/S
50
slapd

ln
-
s /etc/rc.d/init.d/slapd

/
etc/rc.d/rc
5.
d/S
50
slapd


สร้ำง
shell script
เพื่อท ำให้
Open
-
Xchange
เริ่มท ำงำนตอน
boot


cp /usr/adm/ox/postgresql
-
8.0.3/
contrib/start
-
scripts/linux

/
etc/rc.d/ini
t.d/postgresql

chmod
755 /
etc/rc.d/init.d/postgresql

ln
-
s

/
etc/rc.d/init.d/postgresql /etc/rc.d/rc
3.
d/S
51
postgresql

ln
-
s

/
etc/rc.d/init.d/postgresql /etc/rc.d/rc
5.
d/S
51
postgresql


4
.

ก าหนดค่าโปรแกรม
Open
-
Xchange



เป็นการก าหนดค่าเพื่อให้โปรแกรม
Open
-
Xch
ange
สามารถท างานบนเว็บเซิร์ฟเวอร์
Apache
และ เว็บเซิร์ฟเวอร์
Tomcat
ได้ โดยใช้ค าสั่งดังต่อไปนี้

#
mkdir
-
p /usr/local/tomcat/webapps/servlet/WEB
-
INF/classes

#
mkdir

/
usr/local/tomcat/webapps/servlet/WEB
-
INF/lib

#
cp

/
usr/local/openxchange/share/servlets/*.
class

/
usr/local/tomcat/webapps/servlet/WEB
-
INF/classes/

#
cp

/
usr/adm/ox/open
-
xchange/system/servlet/web.xml

/
usr/local/tomcat/webapps/servlet/WEB
-
INF/

#
cp

/
usr/local/openxchange/lib/*.jar

/
usr/local/tomcat/webapps/servlet/WEB
-
INF/lib/


56

#
cp

/
usr/local/jd
om/build/jdom.jar

/
usr/local/tomcat/webapps/servlet/WEB
-
INF/lib/

#
cp

/
usr/local/jdbc/pg
74.216.
jdbc
3.
jar

/
usr/local/tomcat/webapps/servlet/WEB
-
INF/lib/

#
cp

/
usr/local/jaf/activation.jar

/
usr/local/tomcat/webapps/servlet/WEB
-
INF/lib/

#
cp

/
usr/local/javama
il/mail.jar

/
usr/local/tomcat/webapps/servlet/WEB
-
INF/lib/

#
cp

/
usr/local/openxchange/lib/umin.war /usr/local/tomcat/webapps/

#
ln
-
s

/
usr/local/openldap/etc/openldap/ldap.conf

/
usr/local/openxchange/etc/groupware/ldap.conf

#
ln
-
s

/
usr/local/openldap/etc
/openldap/ldap.conf

/
usr/local/openxchange/etc/webmail/ldap.conf


5.


ก าหนดค่าของ

Apache


แก้ไขไฟล์
httpd.conf

(
/usr/local/apache/conf/httpd.conf
)
โดยใส่ข้อควำมต่อไปนี้

LoadModule setenvif_module libexec/mod_setenvif.so

LoadModule jk_module libexec/mod_jk.
so

AddModule

mod_setenvif.c

AddModule mod_jk.c


และข้อความนี้ ที่ท้ายสุดของไฟล์

<IfModule mod_jk.c>

JkWorkersFile /usr/local/apache/conf/workers.properties

JkLogFile /usr/local/apache/logs/mod_jk.log

JkLogLevel warn

JkMount /*.jsp localhost

JkMount /servle
t/* localhost

JkMount /umin/* localhost

JkMount /examples/* localhost

JkMount /servlet/webdav.contacts* localhost

<
/
IfModule>


สร้างไฟล์

workers.properties
(
/usr/local/apache/conf/workers.properties
)
โดยเพิ่มข้อความด้านล่างลงไปภายในไฟล์

worker.list=localho
st


57

worker.localhost.port=
8009

worker.localhost.host=localhost

worker.localhost.type=ajp
13

worker.localhost.lbfactor=
1

workers.tomcat_home=/usr/local/tomcat

workers.java_home=/usr/local/java


/
usr/local/apache/bin/apachectl

start



6
.


ก าหนดค่าเว็บเซิร์ฟเวอ
ร์
Tomcat


แก้ไขไฟล์
catalina.sh
(
/usr/local/tomcat/bin/catalina.sh
)

#


#

CATALINA_PID (Optional) Path of the file which should contains the pid

# of

catalina startup java process, when start (fork) is used

#


# $Id:

catalina.sh,v
1.13.2.1 2004/08/21 15:4
9:49
yoavs Exp $

#

-----------------------------------------------------------------------------

JAVA_OPTS="
-
Dopenexchange.propfile=/usr/local/openxchange/etc/groupware/system.properties"

# OS specific support. $var _must_ be set to either true or

false.


vi

/
usr/local/tomcat/conf/tomcat
-
users.xml

<tomcat
-
users>

<user name="tomcat" password="tomcat"

roles="tomcat" />

<user name="role
1"
password="tomcat" roles="role
1" /
>

<user name="both" password="tomcat" roles="tomcat,role
1" /
>

<user username="admin" passw
ord="
tomcat
-
admin
-
password


roles="manager"/>

<
/
tomcat
-
users>



tomcat
-
admin
-
password

เปลี่ยนเป็นรหัสผ่านที่ต้องการ


58

7
.

คัดลอกไอคอนไปยังโปรแกรม
Open
-
Xchange



เป็นการคัดลอกไอคอนจากไฟล์ที่ท าการดาวน์โหลดมาตอนต้นไปยังโปรแกรม
Open
-
Xchange
เพื่อท าให้โปรแกรมสาม
ารถแสดงไอคอนต่างๆได้ โดยใช้ค าสั่งดังต่อไปนี้

#
cd /usr/adm/ox

#
tar
-
zxf ox_zenith_iconset
-
0.1.
tar.gz

#
cd

ox_zenith_iconset/top

#
cp
--
reply=yes *

/
usr/local/apache/htdocs/cfintranet/images/top/EN/

#
cp
--
reply=yes *

/
usr/local/apache/htdocs/cfintranet/im
ages/top/DE/


8
.

สร้างผ

้ใช้ของโปรแกรม
PostgreSQL
และฐานข้อม

ลของโปรแกรม
Open
-
Xchange



เพื่อก าหนดรายชื่อผู้มีสิทธิเข้าใช้ฐานข้อมูล โดยใช้ค าสั่งดังต่อไปนี้

#
su
-

postgres

$
/
usr/local/pgsql/bin/createuser

--
pwprompt

Enter name of user to add:

openexchang
e

Enter password for new user:

secret

Enter it again:

secret

Shall the new user be allowed to create

databases? (y/n)

y

Shall the new user be

allowed to create more new users? (y/n)

n

CREATE USER



$
/
usr/local/pgsql/bin/createdb
-
O

openexchange
-
E UNICODE

openexchange

CREATE

DATABASE


$
/
usr/local/pgsql/bin/psql
-
U openexchange openexchange

<

/
usr/local/openxchange/share/init_database.sql

CREATE SEQUENCE

CREATE SEQUENCE

CREATE TABLE

...

INSERT
17664 1


59

ตัวเลขอาจไม่ตรงกันเนื่องจาก
Open
-
Xchange

มีการปรับเปลี่
ยนอยู่เสมอ


$
/
usr/local/pgsql/bin/psql
-
U openexchange

openexchange

Welcome to psql
8.0.3
, the PostgreSQL

interactive terminal.

Type:
\
copyright for distribution terms

\
h for help

with SQL commands

\
? for help on internal slash commands

\
g or terminate

wi
th semicolon to execute query

\
q to quit


INSERT INTO

sys_gen_rights_template

values

(
'now','admin','now','','default_template','y','y','y','y',

'y','y','y','y','y','y','y','y','y','y','y','y','y','y','y',

'y','y','y','y','y','y','y','y','y','y','y','y','y
','y','y',

'y','y','y','y','y','y','y','y','y','y','y','y','y');

INSERT

17719 1

\
q

$
exit



9
.


ก าหนดค่าโปรแกรม
OpenLDAP


แ ก้ไ ข ไ ฟ ล์
slapd.conf
(
/usr/local/openldap/etc/openldap/slapd.conf
)
โดยใส่ข้อความด้านล่างลงไปทับข้อความเดิมที่มีอยู่ภายในไฟล์


include



/
usr/local/openldap/etc/openldap/schema/core.schema

include


/
usr/local/openldap/etc/openldap/schema/cosine.schema

include


/
usr/local/openldap/etc/openldap/schema/nis.schema

include


/
usr/local/openldap/etc/openldap/schema
/inetorgperson.schema

include


/
usr/local/openxchange/share/openxchange.schema

pidfile


/usr/local/openldap/var/run/slapd.pid

argsfile

/
usr/local/openldap/var/run/slapd.args


60

database

bdb

database

bdb

suffix


"
dc=dipdns,
dc=org
"

rootdn

"cn=admin,
dc=dipdns,dc=org
"

rootpw

secret


directory


/
usr/local/openldap/var/openldap
-
data



index


objectClass


eq

index


uid,mailEnabled,cn,sn,givenname,lnetMailAccess,alias,loginDestination

eq,sub

index

m
emberUid eq


access to

dn.subtree="ou=Users,ou=OxObjects,dc=dipdns,dc=org"


by self write


by users write


by anonymous auth


access to dn.subtree="ou=Groups,ou=OxObjects,
dc=dipdns,dc=org
"


by self write


by users write


by anonymous auth



หากท าคัดลอกข้อค
วามด้านบนควรระวังเรื่องเว้นวรรค และแท็บ

dc=dipdns,dc=org

ควรเปลี่ยนค่าที่คุณต้องการ (ค่าเดียวกันกับในหัวข้อ ติดตั้ง
Open
-
Xchange)


แก้ไขไฟล์
ldap.conf
(
/
usr/local/openldap/etc/openldap/ldap.conf
) โดยเพิ่มลงที่ท้ายสุดของไฟล์


61

BASE

dc=dipdns,dc=org

HOST local
host


10
.


เพิ่มข้อม

ลให้กับ
LDAP
ส าหรับโปรแกรม
Open
-
Xchange


#
perl
-
e 'print crypt("
mailadmin
-
password
"
,pack("C
2"
,(int(rand
26)+65)
,(int(rand

26)+65)))."
\
n";'

SagDmHAFC/qc
4

mailadmin
-
password

เปลี่ยนเป็นรหัสผ่านของ
mail admin

ที่ต้องการ


แก้ไขไฟล์

init_l
dap.ldif
(
/usr/local/openxchange/share/init_ldap.ldif
)


homeDirectory: /home/mailadmin/

loginShell:

/
bin/bash

mailEnabled: OK

gidNumber:
500

mailDomain: dipdns.org

ou:

Administration

uid: mailadmin

sn: Admin

preferredLanguage: EN

mail:

mailadmin@dipdns.org

o: DipDNS Network

smtpServer:

localhost

imapServer: localhost

alias: postmaster@dipdns.org

alias:

root@dipdns.org

givenName: Admin

cn: Admin Admin

shadowMin:

0

shadowMax:
9999


62

shadowWarning:
7

shadowExpire:
0

userPassword:

secret

OXAppointmentDays:

5

OXGr
oupID:
500

OXTaskDays:
5


เปลี่ยนให้เป็น

userPassword:

{CRYPT}SagDmHAFC/qc
4

โดยที่
SagDmHAFC/qc
4

เป็นค่าที่ได้จาก

#
perl
-
e 'print

crypt("mailadmin
-
password",pack("C
2"
,(int(rand
26)+65)
,(int(rand

26)+65)))."
\
n";'


#
kill
-
INT `cat

/
usr/local/openldap/var/r
un/slapd.pid`

หากมีข้อความ "
cat: /usr/local/openldap/var/run/slapd.pid: No such file or

directory
"
ให้ข้ามไปได้เลย

#
rm
-
rf

/
usr/local/openldap/var/openldap
-
data/*



หากมีข้อความ "
rm: No match.
" ก็ข้ามไปได้เช่นกัน

#
/
usr/local/openldap/sbin/slapadd
-
l

/
usr
/local/openxchange/share/init_ldap.ldif

#
/
etc/rc.d/init.d/slapd



11
.


สร้างกลุ่มผ

้ใช้งาน และผ

้ใช้งานของโปรแกรม
Open
-
Xchange


/
usr/local/openxchange/sbin/addgroup_ox
--
group=developers


จะเป็นกำรสร้ำงกลุ่ม
developers
ขึ้นมำ

-

การสร้างผู้ใช้งาน


#
/
usr
/local/openxchange/sbin/adduser_ox
--
username="username
"
\


--
passwd="password
"
--
name="name
"
-
-
sname="sname
"

\



--
maildomain="dipdns.org
"
\
--

ox_timezone="Asia/Jerusalem
"


โดยที่


63


username

คือ ชื่อเรียกผู้ใช้


password

คือ
รหัสผ่ำนที่ต้องกำร


name

คือ ชื่อ


sname

คือ นำมสกุล


dipdns.org

คือ โดเมน


Asia/Jerusalem

คือ เขตเวลำ(
Time

zone)

-

เพิ่มผู้ใช้เข้ำในกลุ่มของ
Open
-
Xchange



#
/
usr/local/openxchange/sbin/addusertogroup_ox
--
user=username

--

group=users



โดยที่
username

นี้ต้องสร้ำงมำจำกค ำสั่งด้ำนบนแล้ว


1
2
.

ก าหนดค่าเว็บเซิร์ฟเวอร์
Apache
1.3 ให้เริ่มท างานเมื่อเครื่อง
boot


#
cp /usr/local/apache
2/
bin/apachectl /etc/rc.d/init.d/apache

#
ln
-
s

/
etc/rc.d/init.d/apache
2 /
etc/rc.d/rc
3.
d/S
70
apache

#
ln
-
s

/
etc/rc.d/init.d/ap
ache
2 /
etc/rc.d/rc
5.
d/S
70
apache


1
3
.


ก าหนดค่าโปรแกรม
Open
-
Xchange
ให้เริ่มท างานเมื่อเครื่อง
boot


#
cp /usr/local/openxchange/etc/init.d/openexchange

/
etc/rc.d/init.d/openexchange

#
ln
-
s /etc/rc.d/init.d/openexchange

/
etc/rc.d/rc
3.
d/S
71
openexchange

#
ln
-
s /etc/rc.d/init.d/openexchange

/
etc/rc.d/rc
5.
d/S
71
openexchange


1
4
.


ก าหนดค่าเว็บเซิร์ฟเวอร์

Tomcat
ให้เริ่มท างานเมื่อเครื่อง
boot


#
chown
-
R nobody:nobody /usr/local/apache
-
tomcat
-
5.5.12

#
chown
-
R

nobody:nobody /usr/local/tomcat


สร้างไฟล์
tomcat (
/et
c/rc.d/init.d/tomcat
)
โดยใส่ข้อความด้านล่างลงไป

#!/bin/bash


#


# tomcat


#



64

# chkconfig:


#

description: Start up the Tomcat servlet engine.



RETVAL=$?

CATALINA_HOME="/usr/local/tomcat"


case "$
1"
in

start)

if [
-
f $CATALINA_HOME/bin/startup.sh ];

then

e
cho

$"Starting Tomcat"

/
bin/su
-

nobody
-
c

$CATALINA_HOME/bin/startup.sh

fi


stop)

if [
-
f $CATALINA_HOME/bin/shutdown.sh ];

then

echo $"Stopping

Tomcat"

/
bin/su
-

nobody
-
c

$CATALINA_HOME/bin/shutdown.sh

fi

;;

*)

echo $"Usage: $
0
{start|stop}"

exit
1


esa
c

exit $RETVAL



65

จากนั้นป้อนค าสั่ง

#
chmod
755 /
etc/rc.d/init.d/tomcat

#
ln
-
s /etc/rc.d/init.d/tomcat

/
etc/rc.d/rc
3.
d/S
60
tomcat

#
ln
-
s /etc/rc.d/init.d/tomcat

/
etc/rc.d/rc
5.
d/S
60
tomcat


แก้ไขไฟล์
logrotate.conf

(
/etc/logrotate.conf

) โดยน าข้อความไปต่อท้าย
สุดของไฟล์

# system
-
specific logs may be configured here


/
usr/local/tomcat/logs {

weekly

rotate

4

postrotate

endscript

compress

}



1
5.


แก้ไขในส่วนเว็บเมล์ของโปรแกรม
Open
-
Xchange



เ พื่อ ใ ห้โ ปร แ ก ร ม
Open
-
Xchange
ส นับส นุนก ำ ร ใ ช้ง ำ นภำ ษำ ไ ทย
โดยต้องท ำกำรแก้ไขข้
อมูลภำยในไฟล์ระบบ ดังต่อไปนี้

แก้ไขไฟล์
system.cfg
(
/usr/local/openxchange/etc/webmail/system.cfg
)

ดังนี้

เปลี่ยนจาก

DEFAULT
-
ENCODING="ISO
-
8859
-
1"

เป็น

DEFAULT
-
ENCODING="TIS
-
620"


เปลี่ยนจาก

USER
-
CAN
-
SELECT
-
ENCODING="false"

เป็น

USER
-
CAN
-
SELECT
-
ENCODING="t
rue"


66

เปลี่ยนจาก

AVAILABLE
-
ENCODINGS="ISO
-
8859
-
1
,ISO
-
8859
-
15
,UTF
-
8"

เป็น

AVAILABLE
-
ENCODINGS="ISO
-
8859
-
1
,ISO
-
8859
-
15
,UTF
-
8
,WINDOWS
-
874"


vi

/
usr/local/openxchange/etc/webmail/webmail.properties

เปลี่ยนจาก

user.default.folder.autocreate=false

เป็น

user.defau
lt.folder.autocreate=true

เปลี่ยนจาก

user.default.folder.sent=INBOX/Sent

user.default.folder.trash=INBOX/Trash

user.default.folder.drafts=INBOX/Drafts

user.default.folder.spam=INBOX/Spam

เป็น

user.default.folder.sent=INBOX.Sent

user.default.folder.trash=IN
BOX.Trash

user.default.folder.drafts=INBOX.Drafts

user.default.folder.spam=INBOX.Spam


1
6
.

การสั่งให้เซอร์วิสต่างๆเริ่มท างาน


ห้ท าการเริ่ม
deamon
ต่างๆเพื่อเตรียมพร้อมส าหรับการท างานของ
Open
-
Xchange

โดยใช้ค าสั่งดังนี้

#

/
etc/rc.d/init.d/tomcat

start

#
/
etc
/rc.d/init.d/openexchange start

#
/
etc/rc.d/init.d/apache

restart

จากนั้นให้เข้าไป
login

ด้วยชื่อผู้ใช้แล้วรหัสผ่านที่สร้าง
-
ขึ้น


โดยเข้าไปที่
http://localhost/cgi
-
bin/login.pl