Oracle 10g Veritabanına APEX 3.1 Kurulumu

2 Ocak 2009

APEX

Oracle Application Express (APEX), neredeyse hiç kod yazmadan veritabanı merkezli web uygulamaları geliştirebileceğiniz bir uygulama.  Özellikle yurt dışında, ofis içi uygulama geliştirmek için kullanılan APEX, Oracle 10g üzerine nasıl kurulur onu inceleyeceğiz.

APEX’i Oracle 10g’ye kurmak için bir web/uygualama sunucusuna ihtiyacımız var. Bunun için Application Server 10g kurabiliriz, ama ben bunun yerine Oracle 10g Companion CD ile birlikte gelen HTMLDB yazılımını kuracağım. HTMLDB, APEX’in önceki adıdır. Ben kurulumu Linux’a yapacağım ama hemen hemen aynı adımlarla aynı kurulumu Windows üzerinde de gerçekleştirebilirsiniz.

Linux ve Oracle kurulumu için şu yazıma bakabilirsiniz:

http://www.gokhanatil.com/linuxa-oracle-10g-veritabani-kurulumu/

Oracle 10g Companion CD’yi bu adresten indirebilirsiniz:

http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/10201linuxsoft.html

Kuruluma başlamadan önce, sistemde yapmamız gereken önemli bir işlem var. Companion CD ile gelen HTMLDB, web sunucusu olarak Apache 1.3 kullanıyor ve Apache’de libdb.so.2 kütüphanesine ihtiyaç duyuyor. Ne yazık ki bu kütüphane Oracle Enterprise Edition, RHEL ve CENTOS’da yok. Aslında güncel her hangi bir Linux dağıtımında bu kütüphanenin bulunması çok zor bunun sebebi bu kütüphanin artık 4.x’li versiyonlarının kullanılması. Neyseki  Oracle (ve diğer Redhat türevleri) libdb.so.2 kütüphanesi ile uyumlu libgdb.so kütüphanesini ile geliyor. Bizim yapmamız gereken tek şey sisteme libdb.so.2 yerine elimizdeki libgdbm’yi kullanmasını söylemek.Bu yüzden bir symbolik link oluşturuyoruz:

# ln -s /usr/lib/libgdbm.so.2.0.0 /usr/lib/libdb.so.2

Bu işlemden sonra Oracle 10gR2 Companion CD’sini yerleştirip kuruluma başlıyoruz.

Next ile bir sonraki adıma geçip, Oracle HTML DB’yi kuracağımızı söylüyor ve tekrar NEXT ile bir sonraki adıma geçiyoruz:

Hem HTML DB hem de HTTP Server’ın kurulmasını istediğimizden ilk seçeneği işaretleyip NEXT ile bir sonraki ekrana geçiyoruz:

Önceden veritabanı kurduğumuz dizine web sunucuyu kuramıyoruz, bu yüzden HTTP Server için faklı bir kurulum dizini seçiyoruz. Bundan sonraki ekranda kurulum için sistemi kontrol ediliyor, sorun yoksa NEXT ile veritabanı ayarlarını verdiğimiz bir sonraki adıma geçiyoruz:

Burada HTML DB’nin kullanacağı veritabanı bilgisini giriyoruz. Oracle Kurulum Aracı, zaten sistemde var olan veritabanını bulup gerekli bilgileri otomatik olarak dolduracaktır. Bizim yapmamız gereken veritabanının SYS şifresini ve HTML DB’de yönetici kullanıcı olan “admin” kullanıcısının şifresini girmek. NEXT’e bastığımızda sistem veritabanına bağlanmaya çalışacak, bağlantı kurabilirse bir sonraki adıma geçecektir. Bundan sonraki adımları her hangi bir ayar yapmadan NEXT düğmesine basarak geçiyoruz.

Kopyalama sonrasında “root” olarak çalıştırmamız geken script’e sıra geliyor. Bir terminal ekranı açıp root kullanıcısına geçiyor ve verilen scripti çalıştırıyoruz. Scriptin sorduklarını ENTER tuşuna basarak geçiyoruz, script sonlanınca kurulum ekranındaki NEXT’e basıp kurulumu bitiriyoruz:

Bu ekranda gördüğümüz adres HTTP Server’ımızın adresi. Bu adresi direk olarak yazdığımızda HTTP Server’ın karşılama ekranı geliyor. HTML DB’ye erişmek için adresin sonuna /pls/htmldb ekliyoruz:

http://hostname:port/pls/htmldb

Bu adres kullanıcıların sisteme giriş adresidir.

Artık elimize bir uygulama sunucusu ve HTMLDB 1.x sürümü var, bunu en son sürüm olan 3.1.2′ye yükselmeliyiz. APEX’in son sürümünü şu adresten indirebilirsiniz:

http://www.oracle.com/technology/products/database/application_express/download.html

Ben APEX’i /tmp dizinine indirip açıyorum ama siz istediğiniz yere indirip açabilirsiniz. Bu dizin, kurulum sonrasında silenebilir.

$ cd /tmp
$ unzip apex_3.1.2.zip
$ cd apex

APEX kurulumu için bir PL/SQL scripti çalıştıracağız bu yüzden SQLPLUS ile veritabanına bağlanıyorum:

$ sqlplus / as sysdba

APEX kurulumu için çalıştıracağımız script bizden 4 parametre bekliyor, 1. parametre APEX’in hangi tablespace’de metadata’sını tutacağını belirliyor, 2.’si APEX içinde oluşturulan workspace’lerin tutulacağı tablespace, 3.’sü temporary olarak kullanılacak tablespace, 4.ü parametre ise imajların yerleştirileceği klasör. Deneyim kazandıkça bu parametreler üzerinde değişiklik yapabilirsiniz, ben şimdilik en basit şekilde kuracağım:

SQL> @apexins SYSAUX SYSAUX TEMP /i/

Bu komut ile APEX kurulumunu daha doğrusu güncellemesini başlatmış oluyoruz. Bu işlem biraz uzun sürüyor. Kurduğumuz sistemin hızına göre bekleme süremiz değişecek ama bir kahve molası verebiliriz. Kurulum bitince SQLPLUS’da sonlanacak.

Kurulum sonrasında imaj ve jscript dosyalarında sorun olduğunu göreceksiniz, bunu düzeltmek için apxldimg scriptini çalıştırıyoruz:

SQL> @apxldimg.sql /tmp

APEX kurulumu HTMLDB’yi ilk yüklerken verdiğimiz admin şifresini değiştireceğinden yeniden şifre belirlemek için şu scripti çalıştırıyoruz:

SQL> @apxchpwd

Bu işlemlerden sonra sıra APEX’e admin olarak bağlanmaya geliyor:

http://hostname:port/pls/htmldb/htmldb_admin

Oracle’ın ücretsiz olarak sunduğ APEX ile ne kadar kolay uygulama geliştirildiğini görünce şaşıracaksınız. Oracle World conferasında APEX’in yüksek iş yükü olan ortamlarda bile çok başarıyla ve sorunsuz çalıştığına ilişkin sunumlar vardı. Bu yüzden Oracle ile ilgilenen herkesin APEX’e bir göz atmasını tavsiye ederim.

Bookmark and Share
, ,

Yazar:

Gökhan Atıl <gokhan@gokhanatil.com>

Veritabanı ve Unix uzmanı olarak Koç.Net'de çalışmaktadır. OCP (Oracle Certified Professional), Oracle Certified SQL Expert, Comptia Linux+ sertifikalarına sahiptir.

22 Responses to “Oracle 10g Veritabanına APEX 3.1 Kurulumu”

  1. Yıldırım Özsubaşı:

    Merhaba Gökhan Bey; APEX’e yeni başladım. OS Centos ve db olarakta Oracle 10g R1 kullanıyorum. Verdiğiniz bilgiler 10g R2 ile alakalı peki ben 10g R1 uzerine kurmak istiyorum. Bunu nasıl gerçekleştirebilirim. Teşekkür ederim.

  2. Gökhan Atıl:

    Selam Yıldırım, bu anlattıklarımı Oracle 10g R1 içinde uygulayabilirsin. Oracle 10g R1′in de companion CDsi var, öncelikle onu indir ve HTMLDB’yi kur ve yazıda anlattığım şekilde APEX’in son sürümünü kur. Eğer hata oluşursa bana sorabilirsin.

  3. Yildirim Özşubası:

    10g r2′yi kurdum artık. Sorularım olursa sizi rahatsız edeceğim. Tşk ederim

  4. Yıldırım Özsubaşı:

    Ayrıca 10gR2 için gereken rpmlerden bazılarını Centos 4.1 cd sinde bulamadım. Internetde de araştırdım bir sonuç cıkmadı.

    Bulamadığım RPM’ler:
    compat-gcc-7.3-2.96.128
    compat-gcc-c++-7.3-2.96.128
    compat-libstdc++-7.3-2.96.128
    compat-libstdc++-devel-7.3-2.96.128

  5. Gökhan Atıl:

    Oracle 10g R2, Redhat 4 ile uyumlu olduğundan CentOS 4.1′e kurarken sorun yaşamazsınız. Kurulum sırasında installer bu paketler gerekli diyerek uyarı verdi mi? CD’lerde kütüphanelerin daha düşük versiyonlarını olabilir, örneğin compat-gcc-c++-7.3 yerine 7.1 gibi. Bu sürümlere ihtiyaç duyduğunu installer’ın verdiği mesajdan mı gördünüz yoksa okuduğunuz bir dökümandan mı? Bu paketlerin CentOS kurulumu sırasında “development libraries” seçeneği seçilirse gelmesi gerekiyor. Oracle, CD’ler içinde çıkmayan her hangi bir pakete ihtiyaç duymuyor.

  6. Kubilay:

    Selamlar Gökhan Bey,

    Ubuntu’da Oracle üzerine Apex 3.2.1 kurulumu yaparken karşılaştığım bir hatanın çözümünü ararken sitenize yolum düştü. Çok güzel bir site, ileride kesinlikle faydalanacağımı düşünüyorum. Belki tam olarak bu konunun altına yazmak doğru olmaz ama bir önceki arkadaşın problemine benzer bir problemle karşı karşıyayım.

    Apex’i kurduktan sonra sanırım apxldimg.sql dosyasını çalıştırırken bir problem çıkıyor zira Go To Database Home Page dediğimde Apex ana sayfasına erişiyorum ama login butonuna tıklayamıyorum, Enter tuşu da çalışmıyor, yani o sayfada kalıyorum.

    İnternette araştırdığım çözümlerde genel itibariyle bu dosya üzerinde işlemler yapılmış ancak ben bir türlü işin içinden çıkamadım.
    @apxldimg.sql /home/kubilay/Masaüstü (apex’in bulunduğu dizin) komutunu girdiğimde aldığım hata şu şekilde:

    PL/SQL procedure successfully completed.

    Directory created.

    declare
    *
    ERROR at line 1:
    ORA-22288: file or LOB operation FILEOPEN failed
    No such file or directory
    ORA-06512: at “SYS.DBMS_LOB”, line 523
    ORA-06512: at “SYS.XMLTYPE”, line 287
    ORA-06512: at line 15

    PL/SQL procedure successfully completed.

    PL/SQL procedure successfully completed.

    Commit complete.

    timing for: Load Images
    Elapsed: 00:00:00.26

    Directory dropped.

    Problem tam olarak nerede çıkaramadım ve artık sabır taşım çatladı çatlayacak :) Ubuntu’da yeni olduğum için kaldır-kur yapmak da istemiyorum zira güvenemiyorum, Windows gibi temiz iş çıkaramayacağımdan korkuyorum.

    Bu problem hakkında herhangi bir çözüm öneriniz var mı acaba?
    Teşekkürler..

  7. Gökhan Atıl:

    Kubilay,

    Türkçe karakterler problem yaratıyor olabilir veya oracle dizine erişemiyordur. APEX dosyalarını açtığınız dizini /tmp/apex gibi bir dizine taşıyın ve sonra

    SQL> @apxldimg.sql /tmp

    şeklinde scripti çalıştırın.

  8. Kubilay:

    Tekrar selam,

    Ubuntu’ya format atarak doğru bir kaynaktan Oracle 10g ve Apex 3.2.1 kurulumu gerçekleştirdim. Herşey güzelce çalışıyor.

    Şu anda iki sorunum var. İlki şu:

    -Bilgisayarı her yeniden başlattığımda Oracle açılmıyor. Bu sorunu halletmek için konsola /etc/init.d/oracle-xe force-reload komutunu giriyorum. Bu benim için büyük bir sorun değil çünkü Oracle’ın başlangıçta açılmasını zaten istemiyorum. Ancak bu sorunu nasıl halledebilirim onu da bilmiyorum.

    -Diğer sorun daha ciddi. Veritabanına bağlanmak için Oracle SQL Developer aracını kullanıyorum ve APEX kontrol panelinde oluşturduğum yeni kullanıcıları maalesef SQL Developer’da kullanamıyorum. Sadece system ve hr kullanıcıları ile veritabanına erişebiliyorum, oluşturduğum diğer kullanıcılarda “invalid username/password” hatası alıyorum. Acaba sadece Apex’i kurmadan önce bu kullanıcılar tanımlı olduğu için mi böyle oluyor? Bu sorunu nasıl çözebilirim?

    Teşekkürler..

  9. Gökhan Atıl:

    @Kubilay,

    Açılır açılmaz başlamasıyla ilgili olarak “/etc/init.d/oracle-xe enable” komutunu deneyin. Bu komut bir sonraki açılışta XE’nin otomatik başlamasını sağlar.

    APEX kontrol panelinde oluşturduğunuz kullanıcılar veritabanı kullanıcıları değil. APEX projesini (workspace) oluştururken, ikinci aşama olan “identify schema” aşamasında size schema ismi, şifresi soruluyor. İşte o schema bilgileri sizin veritabanına bağlanabileceğiniz kullanıcı adı ve şifredir. Proje içindeki kullanılan tüm nesneler veritabanında o schema/kullanıcı altında tutulur.

  10. Kubilay:

    Selam Gökhan Bey,

    Söylediğiniz şekilde bağlanabilmeyi başardım. Admin kullanıcı adıyla girip yeni schemalar vasıtasıyla artık bağlanabiliyorum, teşekkür ederim.

    Öte yandan başka bir çözüm daha buldum. SYSTEM kullanıcısı ile Oracle SQL Developer’da veritabanına bağlandıktan sonra yeni bir kullanıcı oluşturuyorum ve GRANT connect TO user IDENTIFIED BY pass komutuyla yeni haklar veriyorum. Daha sonra bu kullanıcı ile de veritabanına bağlanabiliyorum.

    Kolay gelsin.

  11. Batuhan:

    Gökhan Hocam Merhaba,

    Ubuntu ya apex 4.0 kurmak istiyorum.
    “” /tmp/apex$ sqlplus / as sysdba “” kodunu yazıyorum ve benden user-name ve password istiyor. Kendi username ve password umu kabul etmiyor.
    “”ERROR: ORA-01031: insufficient privileges hatası”" veriyor
    Yardımcı olabilir misiniz?
    Teşekkürler.

  12. Gökhan Atıl:

    Batuhan, şu yazıya göz atabilir misin?

    http://www.gokhanatil.com/2010/05/ubuntuya-oracle-xe-ve-apex-yuklemek/

    Orada yazdığı üzere, “Ubuntu’ya login olduğunuz kullanıcınızı” DBA grubuna dahil etmeniz gerekiyor. Bunun için /etc/group dosyasında “dba:x:1001:” satırına kullanıcı adınızı ekleyin.

  13. Batuhan:

    … Checking prerequisites
    select privilege foo from session_privs where privilege = ‘SYSDBA’
    *
    ERROR at line 1:
    ORA-01034: ORACLE not available

    Disconnected
    Kusura bakmayın Gökhan bey rahatsız ediyorum ama
    Hocam dediklerini yaptım ama Bu hatayı veriyor.

  14. Gökhan Atıl:

    Terminal açıp aşağıdaki komutları sırayla çalıştırın ve sonuçlarını bana söyleyin:

    ps -ef | grep pmon
    echo $ORACLE_HOME
    echo $ORACLE_SID

  15. Batuhan:

    ————————————————————————
    batuhan@batuhan-desktop:/tmp/apex$ ps -ef | grep pmon
    oracle 3743 1 0 16:40 ? 00:00:00 xe_pmon_XE
    batuhan 5398 5331 0 17:12 pts/0 00:00:00 grep –color=auto pmon
    batuhan@batuhan-desktop:/tmp/apex$ echo $ORACLE_HOME
    /usr/lib/oracle/xe/app/oracle/product/10.2.0/server
    batuhan@batuhan-desktop:/tmp/apex$ echo $ORACLE_SID
    XE
    batuhan@batuhan-desktop:/tmp/apex$

    ————————————————————————

    hocam bide /etc/group dosyasında yanlışlıkla bazı değişikler yaptım ve düzeltemiyorum. o dosyayı nasıl düzeltebilirim ne yapmam gerekli?

  16. Gökhan Atıl:

    Veritabanı açık görünüyor, ORACLE_HOME’un doğru olarak ayarlandığına emin misiniz? Veritabanının web arayüzününe erişebiliyor musunuz? /etc/gorup dosyasını düzeltmenizle ilgili buradan çok size yardımcı olmam pek mümkün değil.

  17. Selin Göksu:

    Oracle 10g üzerine apex 3.1 yüklü. Admin sayfasına ulaşamıyorum. Yani http://localhost:7777/pls/apex adresini yazdıgım zaman admin sayfası gelmiyor. İlginizi acilen bekliyorum.

  18. Gökhan Atıl:

    Selin hanım,

    Hangi işletim sistemini kullanıyorsunuz? Kurulumu yaparken hangi dökümandan yararlandınız? Oracle 10g’nin sürümü nedir? Kurulum sonrasında her hangi bir hata aldınız mı?

  19. Selin Göksu:

    Hayır 2 yıldır da çalışıyordu. Yaklaşık bir haftadır giremiyorum.

    Apex Release Notes

    Release 3.1.2

    E10495-02
    Oracle
    10g Release 2 (10.2) for Microsoft Windows (32-Bit)

    Daha dogrusu sayfa görüntülenemiyor hatası veriyor. @apxdvins komutlarını yeniden çalışırarak ya da apex i yeniden kurarak çözebilir miyim. Teşekkürler.

  20. Gökhan Atıl:

    Apex’i yeniden kurmak son çareniz olmalı. Siz sistemde her hangi bir değişiklik yapmadıysanız windows’un aldığı güncellemeler ile ilgili olabilir. Sanırım Oracle 10g Express edition kullanıyorsunuz, windows servislerine girip OracleXE’nin çalışıp çalışmadığını kontrol edebilir misiniz? Servisin ayakta olduğundan emin olmak için sqlplus ile veritabanına bağlanmayı deneyin.

  21. Selin Göksu:

    Peki apex si yeniden kurarsam ya da üzerine kurarsam yapmış oldugum uygulamaları kaybetme ihtimalim olur mu ? Oracle Enterprise Edition kullanıyorum.

  22. Gökhan Atıl:

    Apex kullanıcısını silmeden yeniden kurmayı denerseniz kurulumda hatalarla karşılaşabilirsiniz. Apex kullanıcısını yani apex uygulamasının datasını tutan schemayı silmeye kalkarsanız (Apex 3.1 için FLOWS_030100 olması lazım), yaptığınız uygulamalarda problem olabilir. Bunu daha önce denemediğim için bilmiyorum, ama windowscular gibi her sorunda kaldırıp yeniden kurmak yerine sorunu araştırmanızı tavsiye ederim. 10g kullandığınızda göre APEX’i kurmadan önce HTMLDB paketi ile birlikte Apacheyi kurmuş olmanız gerekiyor. Apache web servisini ve firewall ayarlarınızı kontrol ettiniz mi?


Leave a Reply