Archive for 22. märts 2011

Delphi 7 toetus Apache 2.0 / 2.2 moodulitele

märts 22, 2011

Ükspäev avastasin, et mõnel firmal ikka raha vist liiga palju 🙂 Võeti Delphi programm ja hakati php’sse üle viima…aus olles mul oli seda raske mõista (raha versus aeg), sest on olemas Apache ja IIS moodulid, mis võimaldavad kenasti olemasolevat koodi taaskasutada (SOA) arhitektuuriks muuta.

Vastus oli, et puudub ju toetus Apache 2.0../2.2.. moodulitele… Ärge laske ennast petta, see 2.0 toetus on Delphis ka väga aegunud…mingi esimene versioon ehk.

Kui Feedreader projekti arendust tegin, siis sai kenasti veebimoodul + php loodud liides ja tulemus kena ning kiire. Veebimoodulil kenasti json / xml väljundid. Apache moodulid on ka kiiremad (st nad juba masinkoodis), kui interpretaator keeled.

Kuidas siis teha muudatus Delphi sourcedes, et need moodulid oleks toetatud:

1)
kustutada järgnevad *.dcu kataloogis
C:\Program Files\Borland\Delphi7\Lib\Debug
– HTTPD2.dcu
– HTTPApp.dcu
2) looge uus veebimoodul Delphis -> New Items -> Web server Application -> Apache 2x Shared Module (DLL).
Salvestage enda veebimoodul ja sulgege Delphi
3) kopeerida fail HTTPD2.pas veebimooduli kataloogi
4) veebimooduli kataloogi luua fail apachechoosever.inc , mille sisuks on
{$define supportApache20}
//{$define supportApache22}

Nende direktiividega saate määrata millist Apache versiooni toetame: 1… versioonidest ma loobusin.

5) nüüd muudke programmi kataloogis olev fail ära diff faili abil, mille saab siit

6) avage Delphi ning enda veebimoodul ja build all….

Kui te kõik õigesti tegite, saate ilma suurema vaevata muuta olemasoleva koodibaasi veebipõhiseks !

————
Minult küsiti ka lihtnäidet, kuidas Apache moodulit paigaldada.

Teie Delphi veebimoodulist tuleb see esimene väärtus exports apache_module name minu_moodul
teine lihtsalt failinimi mille all projekt salvestatud moodulifail.so / .so fail pole midagi enamat, kui ümber nimetatud .dll. Oma projekti algusesse võite kirjutada {$E so}, siis pannakse automaatselt kohe õige laiend
Ps. enda moodul kopeerige Apache modules kataloogi

httpd.conf faili algusesse kirjutage

LoadModule minu_moodul modules/moodulifail.so

Nüüd vaja veel sinna httpd.conf faili lõppu lisada

<Location /minumoodul>
SetHandler moodulifail-handler
Order deny,allow
Deny from all
Allow from 127.0.0.1
Allow from localhost
</Location>

Ja siis väljakutse
http://127.0.0.1/minumoodul

————

Head pusimist teile !

Ingmar

Advertisements