Vijfhart > Nieuws > Nieuwsbrieven > Nieuwsbrief April 2009 > Webserver met XE en MOD_OWA
Gerelateerde onderwerpen:
Apache | Apex | Database | Oracle | PHP | PL SQL | Web Applicaties

Webserver inrichten met Oracle XE, MOD_OWA, PHP en Apache

In dit document zetten we stap voor stap uiteen hoe men een webserver inricht met Oracle XE, PHP en de open-source module MOD_OWA. Als eerste even een korte beschrijving van de vier hoofdrolspelers.

ORACLE XE
( http://www.oracle.com/technology/products/database/xe/index.html )

Oracle Database 10g Express Edition (Oracle Database XE) is een kleine laagdrempelige database gebaseerd op de Oracle Database 10g Release 2 code die gratis te ontwikkelen, te implementeren en te distribueren is. Oracle XE is snel te downloaden en eenvoudig te beheren. Oracle Database XE is een geweldige starter database voor:

  • Ontwikkelaars die werken met PHP, Java, .NET, XML en Open Source applicaties;
  • DBA-ers die behoefte hebben aan een vrije, beginners database voor opleiding en inzet bij kleine toepassingen;
  • Independent Software Vendors (ISV's) en hardware leveranciers die een database willen die gratis te gebruiken en te verspreiden is.
Met Oracle Database XE, kunt u nu ontwikkelen en implementeren van toepassingen met een krachtige, bewezen, de industrie-leidende infrastructuur, en eventueel later upgraden naar grotere database versies, zonder dure en complexe migraties. Oracle Database XE kan worden geïnstalleerd op een host machine van willekeurige grootte en met een onbeperkt aantal CPU's (of cores). Echter, de XE software met database kan maar een keer op een machine geïmplementeerd worden en zal maximaal 4GB aan gebruikersgegevens kunnen opslaan. Tevens zal XE maximaal 1 GB geheugen gebruiken en slechts een CPU (of core) gebruiken op de host computer.

APACHE
( http://httpd.apache.org/ )

Hoewel de XE database een interne webserver heeft, is deze helemaal geïntegreerd in de database en dat willen we hier niet hebben. Dus die interne webserver laten we gewoon draaien (op een andere poort dan 80! Standaard is het poort 8080) voor eventuele toepassingen in APEX (meer weten over APEX opleidingen). Apache behoeft hopelijk weinig introductie. We gaan hier gebruik maken van de versie 2.2 die gratis is te downloaden en te gebruiken.


PHP
( http://www.php.net/ )

Is een scripttaal, die bedoeld is om op webservers dynamische webpagina's te creëren. PHP is in 1994 ontworpen door Rasmus Lerdorf, een senior software engineer bij IBM. Destijds was de taal duidelijk geïnspireerd door Larry Walls Perl. Aanvankelijk stonden de letters PHP voor Personal Home Page (de volledige naam van de software was Personal Home Page/Forms Interpreter, PHP/FI). Sinds PHP 3.0 is de betekenis een recursief acroniem geworden: "PHP: Hypertext Preprocessor". Deze naam geeft aan waar de taal meestal voor gebruikt wordt: informatie verwerken tot hypertext (meestal HTML en XHTML). (meer weten over PHP opleidingen)


MOD_OWA (Apache PL/SQL Gateway Module)
( http://www.sharemation.com/~dmcmahon/modowa.htm )

Is een open-source uitvoering van de bekende PL/SQL gateway - ook wel bekend onder de naam modplsql - welke beschikbaar is in Oracle Application Server (OAS) en Oracle Web Server (OWS, de zgn. Companion CD). Deze gateway verzorgt de aanroep en afhandeling van PL/SQL procedures richting een webserver en client met browser.


Installatie en test

We gaan nu eindelijk aan de slag. In dit verhaal gaan we uit van een installatie op een server met een op Windows gebaseerd OS maar de installatie op een Linux variant zal qua principe niet heel veel afwijken.

Voer de volgende stappen uit:

  • Download de Oracle XE software ( http://download.oracle.com/otn/nt/oracle10g/xe/10201/OracleXE.exe) In dit geval gebruiken we de single-byte Western European versie.
  • Dan installeren we de Oracle XE database. Deze kan standaard uitgerold worden maar in dit verhaal wordt de software geïnstalleerd op d:\oracleXE waarin we dus na installatie twee mapjes (app en oradata) hebben gekregen.
  • We downloaden de Apache software en installeren die in de directory d:\oracleXE\Apache (custom optie)
  • Start de Database Home Page en log in als system met het wachtwoord wat bij de installatie is opgegeven
  • Ga naar Home>Administration>Manage HTTP Access en bekijk of je de port 8080 (Apex) ook buiten de local server wilt kunnen benaderen.
  • Maak een useraccount in de database aan (in dit voorbeeld gebruiken we de schemanaam WEB met als wachtwoord GEHEIMWEB)
  • Maak de volgende procedure onder schema WEB aan:
    create or replace procedure hallo as
       v_ip_tab owa_util.ip_address;
       v_ip     varchar2(50);
       v_ref    varchar2(2000);
    begin
       htp.print('<html><head></head><body>');
       htp.print('<h1>Hallo, welkom bij deze test!</h1>');
       v_ip := owa_util.get_cgi_env('REMOTE_ADDR');
       htp.print('IP adres van uw browser : ' || v_ip);
       htp.hr;
       owa_util.print_cgi_env;
       htp.print('</body></html>');
    exception
       when others then
          htp.print('<html><head></head><body>' || 'ERROR:' ||
                    dbms_utility.format_error_stack ||
                    dbms_utility.format_error_backtrace || '</body></html>');
    end;
    
  • We downloaden en installeren de PHP software. Kies als directory d:\oracleXE\PHP en vertel de setup dat we gebruik maken van de Apache 2.2 module. De configuratie bestanden van Apache worden door de setup bijgewerkt, dus de locatie van deze bestanden (D:\oracleXE\Apache\conf\) dient opgegeven te worden. De rest laten we default.
  • Als laatste downloaden we MOD_OWA en wel het windows_all.zip bestand. Hieruit hebben we enkel een .dll bestand nodig. Zorg dat je die uit de juiste subdirectory in de zip haalt (modowa\apache22). Dit mod_owa.dll bestand dien je in D:\oracleXE\Apache\modules te plaatsen.
  • Nu wordt het tijd om de MOD_OWA te configureren. Hiervoor gaan we naar D:\oracleXE\Apache\conf en openen het bestand httpd.conf
  • Plaats onderaan dit bestand de volgende regels:
    LoadModule owa_module modules/mod_owa.dll
    
    <Location /pls/db>
      AllowOverride  AuthConfig  FileInfo Options Limit
      Options        FollowSymLinks
      SetHandler     owa_handler
      OwaUserid      web/geheimweb
      OwaNLS         WE8ISO8859P1
      OwaDiag        COMMAND ARGS POOL SQL MEMORY HEADER RESPONSE TIMING ERROR
      OwaLog         "D:\oracleXE\Apache\logs\mod_owa.log"
      OwaPool        20
      OwaStart       "doc_pkg.homepage"
      OwaDocProc     "doc_pkg.readfile"
      OwaDocPath     docs
      OwaUploadMax   10M
      OwaCharset     "iso-8859-1"
      order          deny,allow
      allow          from all
    </Location>
    
  • Rechtsonder in het systeemvak is een icoon van de Apache server. Deze moet middels een herstart opnieuw opgestart worden zodat deze nieuwe instellingen actief worden.
  • Test nu met een browser. De url is http://127.0.0.1/pls/db/hallo. U ziet nu de tekst "Hallo, welkom bij deze test!" en daaronder een ip-adres en allerlei CGI variabelen.
  • Dezelfde test kunt u nu vanaf een andere pc doen. Vul dan in plaats van 127.0.0.1 het ip-adres van de server in waarop u alles hebt geïnstalleerd.

U ziet het, in zeer korte tijd heeft u een volledig functionele webserver in de lucht. Indien u ook nog gebruik maakt van een gratis Linux distibutie, dan is het totaal gratis!


Bronnen:


 
Informatie 
  Contact
  Cursusoverzicht
  Download Cursusoverzicht PDF
  Cursuskalender
  Bel mij!
  Brochure aanvragen
  Weblog Vijfhart
  Stel een vraag