Skip to main content

การติดตั้ง ORACLE APEX (1/4)


      สวัสดีครับ หายไปนานเลยครับ  ภาระกิจรัดตัวต้องไปช่วยลุงกำนันครับ ชาติต้องมาก่อนอื่นใดครับ บทความนี้เราจะมาเล่าถึงการนำเอา ORACLE APEX มาใช้ในฐานข้อมูลของเราเอง จากบทความที่แล้วที่เราได้ทดลองใช้ ORACLE APEX บน Example Cloud กันบ้างแล้ว ตอนนี้เราจะมาทดลอง Install ลงบนเครื่องเราเองใช้ในหน่วยงานแบบไม่ต้องมี Internet และไม่ต้องไปเสียเงินใช้บน ORACLE Cloud :p ตั้งใจว่าจะไม่เป็นวิชาการมากนักเอาเป็นแบบเน้นทดลองกันเองเลยตามขั้นตอน แต่ก่อนอื่นก็ต้องทำความเข้าใจกันบ้างเพื่อว่าเวลา Install จะได้ไม่งงว่ากำลังทำอะไร ครับ ORACLE Application Express Engine เป็น โปรแกรม Oracle Package ที่ต้องการติดตั้งลงในฐานข้อมูล ORACLE เท่านั้นและแสดงผลเป็น Web Application และการติดตั้งก็มีสองวิธีคือ ใช้ Web Server ของ Database เอง หรือใช้ Web Listener อื่นร่วมด้วยก็ได้  ซื่งบทความนี้จะเสนอเฉพาะวิธีที่สองเท่านั้นครับ เพราะในหน่วยงานส่วนใหญ่น่าจะใช้เป็น แบบ Multi-Tier มากกว่า



ภาพประกอบแบบ การใช้ Listener ของ database เองเลยที่เรียกว่า Oracle XML DB Protocol Server with the embedded PL/SQL gateway แบบนี้จะเห็นว่าไม่ต้องไม่ Http Web Listener แยกต่างหาก แบบนี้เราจะไม่พูดถึงในบทความนี้ครับ



ภาพประกอบแบบที่สอง ที่เราจะพูดถึงการลง Oracle APEX ในแบบ Multi-Tier ที่สามารถลงทั้งหมดบนเครื่องเดียวกันกับ Database (ถ้าทรัพยากรเครื่องพอ) หรือ ลงแยกเป็น Web Listener หนึ่งเครื่องกับ Database อีกเครื่องก็ได้ ในแบบนี้ก็ยังสามารถลงบน Web Listener ได้หลายยี่ห้อ แต่ส่วนใหญ่ก็อยู่ในค่าย Oracle นั้นแหละครับได้แก่
1. ลงบน  Web Listener Apache ที่มีการลง mod_plsql มาให้ด้วยเช่น ตัว product ชื่อ Oracle Internet Application Server ดังภาพด้านล่าง แบบนี้เราก็ไม่ได้พูดถึงในบทความนี้เพราะ product เก่าแล้ว

2. ลงบน Web Listener ยี่ห้ออื่นๆโดยจะต้องมีการลง Application เพิ่มเติมลงบนเครื่อง Web Listener นั้นๆ Application ที่ต้องลงเพิ่มนี้ Oracle ก็จัดเตรียมไว้ให้ สามารถ Download ฟรีได้ครับ ชื่อ APEX Listener ซึ่งจะกล่าวถึงวิธีการ Install ในบทความนี้ด้วยครับ  ในแบบนี้ ตัว Web Listener ที่เลือกใช้ใน Oracle product จะเป็น  Web Logic หรือ GlassFish ในบทความนี้จะกล่าวถึงเฉพาะการติดตั้งบน Glass Fish เท่านั้น


เอาละครับ เพื่อความเข้าใจอันดีก็จะสรุปว่า เราจะทำการ Install Oracle APEX แบบ Multi-Tier ลงบน Web Listener ที่ชื่อว่า GlassFish โดยมีขั้นตอนคล่าวๆ ดังนี้
              1. การเตรียมฐานข้อมูลก่อนลง APEX
              2. Download Oracle APEX
              3. Install Oracle APEX ลงบนฐานข้อมูล ORACLE
              4. Download APEX Listener
              5. Install APEX Listener บนเครื่องเดียวกับที่จะลง GlassFish
              6. ทดสอบ APEX Listener แบบ standalone
              7. Download  GlassFish
              8. Install GlassFish           
              9. Deploy APEX Listener ลงบน GlassFish
              10. ทดสอบ เรียก APEX สร้าง Work space และ User ทดสอบ Login
              11. เป็นอันเสร็จครับ

ทั้งนี้ตัวอย่างที่แสดงจะเป็นการลงโปรแกรมทั้งหมดบนเครื่องเดียวกับ Oracle Database  บนระบบปฏิบัตรการ Windows


ขั้นตอนที่ 1 การเตรียม Database Resource



         ต้องทำการตรวจสอบ ขนาดของ SHARED_POOL_SIZE ว่าจะต้องมีขนาดอย่างต่ำ 100M ขึ้นไป สามารถตรวจสอบด้วยการ login ฐานข้อมูลด้วยสถานะ sysdba จากนั้นใช้คำสั่ง

SQL> SHOW PARAMETER SHARED_POOL_SIZE

ถ้าขนาดที่ได้น้อยกว่า 100M สามารถแก่ไขขนาดด้วยคำสั่ง

SQL> ALTER SYSTEM SET SHARED_POOL_SIZE='100M' SCOPE=spfile;

        หลังจากเตรียมพื้นที่เรียนร้อยแล้ว ในกรณีของเราที่ต้องการลง Web Listener ลงบนเครื่องเดียวกับฐานข้อมูล ดังนั้นเราจะต้องทำการปิด Listener ที่มากับฐานข้อมูลก่อนเพื่อเวลาลง GlassFish จะได้ไม่ตีกันด้วยคำสั่ง

SQL>EXEC DBMS_XDB.SETHTTPPORT(0);
SQL>COMMIT;

ถ้าต้องการพื้นที่ tablespace เพื่อเก็บข้อมูล APEX โดยเฉพาะก็สามารถสร้าง tablespace เตรียมไว้ก่อนได้ในขั้นตอนนี้

แล้วทำการ RESTART ฐานข้อมูลใหม่


ขั้นตอนที่ 2 ทำการ Download ORACLE APEX ได้จาก

http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html

ในกรณีของผมได้ file : apex_4.2.4.zip

ในขั้นตอนนี้ให้ทำการ extract ไฟล์ไปไว้ที่ Drive C:  ในชื่อ folder ว่า apex

ขั้นตอนที่ 3  ทำการ Install Oracle APEX ลงบนฐานข้อมูล ORACLE  ขั้นตอนนี้จะยาวหน่อย และต้องเตรียมจด password ต่างๆที่เราจะต้องตั้งไว้ด้วยนะครับ เพราะต้องใช้ในการ Install ขั้นตอนอื่นต่อๆไป

     3.1 ทำการ Install ORACLE APEX โดยการ
           3.1.1  ย้ายไปยัง folder  apex
           3.1.2  login ฐานข้อมูลด้วย sysdba
           3.1.3  install APEX ด้วยคำสั่ง
                    SQL>@apexins.sql tablespace_apex tablespace_files tablespace_temp images

                      tablespace_apex   เป็น tablespace ที่เก็บข้อมูล ของ APEX และ user
                      tablespace_files    เป็น tablespace ที่เก็บข้อมูลที่เป็น file ของ APEX และ user
                      tablespace_temp  เป็น temp tablespace
                      images                virtual image ที่ใช้อ้างอินเมื่อเรียกจาก web จะต้องระบุเป็น /i/

                      ถ้าเราเตรียม tablespace ไว้แล้วจากขั้นตอนที่ 1 ก็ให้ใช้ tablespace ที่เตรียมไว้ ส่วนตัวอย่างของผมใช้ tablespace ที่มากับฐานข้อมูลคือ SYSAUX ครับ


 

     3.2 เมื่อทำการ Install เสร็จระบบจะทำการสร้าง account ใหม่ในฐานข้
อมูลขึ้น 3 account ได้แก่

       APEX_040200      เป็น account ที่เก็บ metadata และ engine ของ APEX
       FLOWS_FILES      เป็น account ที่เก็บ file ที่ upload ของ APEX
       APEX_PUBLIC_USER  เป็น account ที่ใช้ในการ config จาก Apex Listener



               ถ้าสังเกตจะเห็นว่ามี account APEX_030200 อยู่ด้วยอันนี้ติดมากับฐานข้อมูลสามารถลบออกได้

      3.3 จากนั้นทำการตั้งค่า password ของ user ADMIN ของ APEX ด้วยคำสั่ง
             
             SQL>@apxchpwd.sql



           เมื่อเราต้องการเปลี่ยน password ของ ADMIN APEX เราสามารถใช้ program นี้เปลี่ยนในภายหลัง ได้โดยไม่ต้องกรอก password ปัจจุปัน (ในกรณีที่ลืม password)

     3.4 ทำการ Restart ฐานข้อมูล



     3.5  ทำการ config account APEX_PUBLIC_USER ด้วยการ unlock และ ตั้ง password ใหม่
            unlock ด้วยคำสั่ง

            SQL>ALTER USER APEX_PUBLIC_USER ACCOUNT UNLOCK;

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

            SQL>ALTER USER APEX_PUBLIC_USER IDENTIFIED BY new_password;




  3.6  ทำการ config เพื่อให้ APEX สามารถรองรับการทำ Web Services Server ได้
         ด้วยคำสั่ง
 
         SQL>@apex_rest_config.sql

        แล้วโปรแกรม จะให้ทำการตั้ง password ของ account สองตัวได้แก่ APEX_LISTENER และ APEX_REST_PUBLIC_USER (จดเอาไว้ด้วยครับ)



         
   3.7  ทำการเปิด Network ให้ account ให้รองรับ Web Services, Mail จาก APEX และการทำ Report PDF  ได้ด้วย script นี้ สามารถ copy ไป run ใน SQL ได้เลย


DECLARE
ACL_PATH VARCHAR2(4000);
BEGIN
-- Look for the ACL currently assigned to '*' and give APEX_040200
-- the "connect" privilege if APEX_040200 does not have the privilege yet.
SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS
WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL;
IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_040200',
'connect') IS NULL THEN
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH,
'APEX_040200', TRUE, 'connect');
END IF;
EXCEPTION
-- When no ACL has been assigned to '*'.
WHEN NO_DATA_FOUND THEN
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('power_users.xml',
'ACL that lets power users to connect to everywhere',
'APEX_040200', TRUE, 'connect');
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('power_users.xml','*');
END;
/
COMMIT;


 เป็นอันเสร็จขั้นตอนการ install ORACLE APEX ลงบนฐานข้อมูล




Comments

Popular posts from this blog

Oracle APEX คือ อะไร

สำหรับท่านที่เป็นโปรแกรมเมอร์ มาหลายปีดีดัก คงต้องเคยผ่านการเขียนโปรแกรม ด้วยภาษาต่างๆมามาก แต่ละภาษาก็มีเครื่องมือและคอมไพเลอร์ที่ได้รับความนิยมต่างๆกัน  สำหรับผม เริ่มจาก PASCAL แน่นอน คอมไพเลอร์สุดฮิตที่ทุกคนต้องใช้ (เพราะมีใช้อยู่ตัวเดียวบน PC) ก็คือ TURBO PASCAL อันที่จริงก่อนหน้าก็เขียน ทั้ง C และ COBOL บน DEC  ทูลที่ใช้ก็ VI และ command line Compiler ที่ประทับใจคือ rmcobol วิธีคอมไพล์ก็แสนจะง่าย คือ rmcobol ตามด้วยชื่อ file แต่ดันเว้นวรรคผิด เป็น rm cobol file ครับโปรเจคที่ทำเกือบครึ่งเทอมหายวับไปกับตา ที่พล่ามมานี่คงพอเดาอายุคนเขียนได้นะครับ เอาละมาต่อกันดีกว่า  ยุคต่อมาก็ Delphi ของเจ้า Borland ตอนนั้นดังสูสีกับ Visual Basic ของเจ้าสัว Bill Gates เค้าละ แต่ที่เป็นทูลของเจ้าใหญ่ถึงจะไม่เป็น Mass product แต่เนื่องจาก Data Base เขาเป็นที่หนึ่งจึงมีผู้ใช้พอสมควร นั้นก็คือ Oracle Developer  ยุคนี้น่าเป็นยุค Client - Server ทำมาหากินกับเจ้าเครื่องมือเหล่านี้ก็หลายปี และแล้วอินเตอร์เนตก็มา เป็นความสนุก :p ของคนอาชีพนี้ที่ถูกสาปให้ต้องเรียนของใหม่ตลอดเวลา ได้เจ้า J...

การใช้งาน APEX กับ Bootstrap Theme

            ในปัจจุปันขณะที่กำลังเขียนบทความนี้ Oracle ได้ออก ORACLE APEX 5 ใน version  Early Adopter 3 แล้ว และคาดว่าจะเป็น version Production ในปีนี้ Version นี้มีการเปลี่ยนแปลงจาก version 4 เป็นอย่างมาก ไม่ว่าจะเป็นเรื่องเครื่องมือสร้างหน้าจอ (Page Designer) ตัวใหม่ที่สะดวกขึ้นดูเหมือนโปรแกรมประเภท visual design ของโปรแกรม desktop ในอดีต ,การปรับเปลี่ยน UI ของตัว APEX เองให้ดูทันสมัยเป็น responsive design และการ support การสร้าง mobile Web ที่ดีขึ้น แต่สิ่งที่ดูน่าตื่นเต้น และเป็นสิ่งที่อาจจะนำความน่าสนใจมาสู่ ORACLE APEX ของนักพัฒนาเพิ่มขึ้น ก็คือการออกแบบ Theme แบบใหม่ที่เรียกว่า Universal Theme ซึ่ง Theme แบบใหม่นี้หน้าตาออกมาทันสมัยมาก เทียบได้กับ font-end framework ดังๆเช่น Ext JS หรือ Bootstrap ลองคิดดูว่าเราสามารถสร้าง Web App หน้าตาทันสมัย แบบ Bootstrap โดยที่แทบจะไม่ต้องเขียนโปรแกรม หรือใช้ framework แบบ Laravel เลย เพียง Click  next ไม่กี่ครั้งก็หน้าจอที่ทำงานได้จริงแล้ว              ...