วันจันทร์ที่ 7 มิถุนายน พ.ศ. 2553

การติดตั้ง OFBiz โดยใช้ PostgreSQL เป็นฐานข้อมูล

PostgreSQL คือ ระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (Object-Relational DataBase Management System หรือ ORDBMS) มีความสามารถในการทำงานร่วมกับ OFBiz ได้อย่างดี ทั้งนี้ยังเป็นซอฟต์แวร์ฟรีอีกด้วย จึงสามารถนำมาช่วยลดค่าใช้จ่ายในองค์กรได้

จากบทความเรื่องการติดตั้ง OFBiz ได้ใช้ฐานข้อมูล Derby ซึ่งเป็นฐานข้อมูลขนาดเล็กที่มาพร้อม OFBiz มีความสามารถในระดับหนึ่ง แต่ไม่เทียบเท่า PostgreSQL และไม่สามารถรองรับการใช้งานที่มีการเรียกใช้ฐานข้อมูลจำนวนมากได้ จึงได้นำเอา PostgreSQL มาช่วยให้การใช้งาน OFBiz มีประสิทธิภาพมากขึ้น

ขั้นตอนการติดตั้ง PostgreSQL สำหรับ OFBiz ทำได้ดังนี้

1. ติดตั้ง PostgreSQL จาก Synaptic Package Manager
2. ติดตั้ง pgadmin จาก Synaptic Package Manager
3. ทำการตั้งค่า password ให้กับ account ของ PostgreSQL โดยเปิด terminal และเข้าไปที่โฟลเดอร์ /etc/postgresql/8.4/main
4. สั่งแก้ไขไฟล์ชื่อ pg_hba.conf โดยใช้คำสั่ง
    sudo gedit pg_hba.conf
5. เปลี่ยนค่าจาก ident เป็น trust ทั้งหมด และ เปลี่ยนค่าจาก md5 เป็น trust ทั้งหมด
6. สั่งแก้ไขไฟล์ชื่อ postgresql.conf โดยใช้คำสั่ง
sudo gedit postgresql.conf 
7. แก้ไขบรรทัด #listen_addresses = 'localhost' โดยการเอา # ออกและเปลี่ยนจาก localhost เป็น * จะได้โค้ดดังนี้
listen_addresses = '*'   
8. สั่ง start serveice ของ postgresql โดยใช้คำสั่ง
cd /etc/init.d
9. สั่ง restart service โดยใช้คำสั่ง
sudo service postgresql-8.4 restart

เมื่อตั้งค่าเสร็จแล้ว ลงมือทำการสร้าง connection ดังนี้
1. เปิด pgadmin
2. กดปุ่ม add a connection to a server
3. ตั้งค่าดังนี้
    Name = localhost
    Host = localhost
แล้วกด ok
4. ทำการสร้าง login role ให้แก่ database โดยการคลิ้กขวาที่ Login Roles แล้วเลือก New Login Role
5. กรอกรายละเอียด Role name, Password และ Password(again) แล้วกด OK
6. ในการสร้างฐานข้อมูลสำหรับ OFBiz ต้องสร้างทั้งหมด 3 database โดยกำหนดดังนี้
    Database1
        name = ofbiz
        login role = ofbiz
    Database2
        name = ofbizolap
        login role = ofbiz
    Database3
        name = ofbiztenance
        login role = ofbiz
7. ทำการดาวน์โหลด jdbc driver สำหรับ postgresql โดยสามารถดาวน์โหลดได้ที่ http://jdbc.postgresql.org/download.html
เลือกดาวน์โหลดไฟล์ JDBC4 Postgresql Driver, Version 8.4-701 สำหรับ 1.6 JVM ขึ้นไป
8. ทำการ copy ไฟล์ที่ดาวน์โหลดไปไว้ในโฟลเดอร์ framework/entity/lib/jdbc ของโปรเจ็ค
9. ทำการแก้ไขไฟล์ framework/entity/config/entityengine.xml โดยการเพิ่ม datasource ดังนี้
<datasource name="localpostnew"
            helper-class="org.ofbiz.entity.datasource.GenericHelperDAO"
            schema-name="public"
            field-type-name="postnew"
            check-on-start="true"
            add-missing-on-start="true"
            use-fk-initially-deferred="false"
            alias-view-columns="false"
            join-style="ansi"
            result-fetch-size="50"
            use-binary-type-for-blob="true">
        <read-data reader-name="seed"/>
        <read-data reader-name="seed-initial"/>
        <read-data reader-name="demo"/>
        <read-data reader-name="ext"/>
        <inline-jdbc
                jdbc-driver="org.postgresql.Driver"
                jdbc-uri="jdbc:postgresql://127.0.0.1/org"
                jdbc-username="org"
                jdbc-password="orgpass"
                isolation-level="ReadCommitted"
                pool-minsize="2"
                pool-maxsize="250"
                time-between-eviction-runs-millis="600000"/>
    </datasource>
    
    <datasource name="localpostnewolap"
            helper-class="org.ofbiz.entity.datasource.GenericHelperDAO"
            schema-name="public"
            field-type-name="postnew"
            check-on-start="true"
            add-missing-on-start="true"
            use-fk-initially-deferred="false"
            alias-view-columns="false"
            join-style="ansi"
            result-fetch-size="50"
            use-binary-type-for-blob="true">
        <read-data reader-name="seed"/>
        <read-data reader-name="seed-initial"/>
        <read-data reader-name="demo"/>
        <read-data reader-name="ext"/>
        <inline-jdbc
                jdbc-driver="org.postgresql.Driver"
                jdbc-uri="jdbc:postgresql://127.0.0.1/orgolap"
                jdbc-username="org"
                jdbc-password="orgpass"
                isolation-level="ReadCommitted"
                pool-minsize="2"
                pool-maxsize="250"
                time-between-eviction-runs-millis="600000"/>
    </datasource>
    
    <datasource name="localpostnewtenant"
            helper-class="org.ofbiz.entity.datasource.GenericHelperDAO"
            schema-name="public"
            field-type-name="postnew"
            check-on-start="true"
            add-missing-on-start="true"
            use-fk-initially-deferred="false"
            alias-view-columns="false"
            join-style="ansi"
            result-fetch-size="50"
            use-binary-type-for-blob="true">
        <read-data reader-name="seed"/>
        <read-data reader-name="seed-initial"/>
        <read-data reader-name="demo"/>
        <read-data reader-name="ext"/>
        <inline-jdbc
                jdbc-driver="org.postgresql.Driver"
                jdbc-uri="jdbc:postgresql://127.0.0.1/orgtenant"
                jdbc-username="org"
                jdbc-password="orgpass"
                isolation-level="ReadCommitted"
                pool-minsize="2"
                pool-maxsize="250"
                time-between-eviction-runs-millis="600000"/>
    </datasource>

และแก้ไข delegetor ของ delegator name="default" และ delegator name="default-no-eca" ดังนี้

<delegator name="default" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main" distributed-cache-clear-enabled="false">
        <group-map group-name="org.ofbiz" datasource-name="localpostnew"/>
        <group-map group-name="org.ofbiz.olap" datasource-name="localpostnewolap"/>
        <group-map group-name="org.ofbiz.tenant" datasource-name="localpostnewtenant"/>
    </delegator>
    <delegator name="default-no-eca" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main" entity-eca-enabled="false" distributed-cache-clear-enabled="false">
        <group-map group-name="org.ofbiz" datasource-name="localpostnew"/>
        <group-map group-name="org.ofbiz.olap" datasource-name="localpostnewolap"/>
        <group-map group-name="org.ofbiz.tenant" datasource-name="localpostnewtenant"/>
    </delegator> 

10. พิมพ์คำสั่งใน terminal ดังนี้
./ant clean-all
11. พิมพ์คำสั่งใน terminal ดังนี้
./ant run-install
12. สั่ง start ofbiz ดังนี้
./startofbiz.sh

ไม่มีความคิดเห็น:

แสดงความคิดเห็น