AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

isapi.dll auf Apache 2.4

Ein Thema von lowmax_5 · begonnen am 15. Nov 2018 · letzter Beitrag vom 18. Nov 2018
Antwort Antwort
lowmax_5

Registriert seit: 9. Mai 2003
Ort: Münster, NRW
257 Beiträge
 
Delphi 11 Alexandria
 
#1

isapi.dll auf Apache 2.4

  Alt 15. Nov 2018, 22:36
Hallo,
ich möchte eine isapi.dll auf einem Apache 2.4 Server (Win7) zum laufen bringen. Der Server selbst ist erreichbar und zeigt seine Startseite. Beim Aufruf von http://localhost:80/isapi/isapi.dll erhalte ich jedoch nur:

Code:
Not Found
The requested URL /isapi/isapi.dll was not found on this server.
In der httpd.conf habe ich folgende Eintragungen gemacht:

Code:
LoadModule isapi_module modules/mod_isapi.so

AddHandler isapi-handler .dll

<IfModule mod_testservice.c>
    # This allows ISAPI dll's and CGI exe's (both are required for regular aliases)
    AddHandler isapi-isa .dll
    AddHandler cgi-script .exe

    ScriptAlias /isapi/ "D:/Apache/test"

    <Directory "D:/Apache/test">
        Options ExecCGI
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
</IfModule>
Die 'isapi.dll' liegt in einem beliebigen Verzeichnis D:/Apache/test. Spezielle Rechte für das Verzeichnis sind nicht vergeben. Kenne mich leider mit dem Apache nicht besonders gut aus. Vielleicht hat jmd. einen Tipp - vielen Dank!
  Mit Zitat antworten Zitat
lowmax_5

Registriert seit: 9. Mai 2003
Ort: Münster, NRW
257 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: isapi.dll auf Apache 2.4

  Alt 16. Nov 2018, 09:37
Bin nun weiter gekommen: Mit folgendem Einträgen ist ein Zugriff möglich:

Code:
<IfModule mod_alias.c>
    # This allows ISAPI dll's and CGI exe's (both are required for regular aliases)
    AddHandler isapi-handler .dll
    #AddHandler cgi-script .exe
    ISAPICacheFile D:/Apache/isapi/isapi.dll

    Alias /isapi "D:/Apache/isapi"

    <Directory "D:/Apache/isapi">
        Options ExecCGI
        AllowOverride None
   Require all granted
    </Directory>

</IfModule>
Wenn die Isapi jedoch intern einen DB-Zugriff auslöst erhalte ich folgende Meldung:

Code:
AH02115: HSE_STATUS_ERROR result from HttpExtensionProc(): D:/Apache/isapi/isapi.dll
Habe etwas gefunden, dass Apache mit ThreadPooling nicht klar kommt und daher die Unit Web.Win.ISAPIThreadPool entfernt. Das Ergebnis ist leider das Gleiche...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: isapi.dll auf Apache 2.4

  Alt 16. Nov 2018, 09:43
Stammt die ISAPI-DLL von Dir? Dann würde ich gleich ein Apache-Modul erzeugen und verwenden.
Markus Kinzler
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.415 Beiträge
 
Delphi 7 Professional
 
#4

AW: isapi.dll auf Apache 2.4

  Alt 16. Nov 2018, 09:50
DB-Zugriff über welche Schnittstelle(n) / Komponente(n)?

Hier Auszüge aus einer "Uraltisapidll", die Reihenfolge im Uses was damals schon wesentlich und zwingend zu beachten:
Delphi-Quellcode:
library WebSQLSearch;

uses
  ActiveX,
  ComObj,
  ISAPIThreadPool,
  ISAPIApp,
  BrkrConst in '..\..\..\Delphi7\Source\Internet\BrkrConst.pas',
  WebBroker in '..\..\..\Delphi7\Source\Internet\WebBroker.pas',
  WebSQLSearchUnit1 in 'WebSQLSearchUnit1.pas{wm: TWebModule};

{$R *.res}

exports
  GetExtensionVersion,
  HttpExtensionProc,
  TerminateExtension;

begin
  CoInitFlags := COINIT_MULTITHREADED;
  Application.Initialize;
  Application.CreateForm(Twm, wm);
  Application.Run;
end.
Am Ende der WebSQLSearchUnit1 steht:
Delphi-Quellcode:
initialization
  // Das wird für ADO dringend benötigt.
  CoInitialize(nil);

finalization
  CoUninitialize;

end.
Keine Ahnung, ob das heute auch noch so sein muss, aber eventuell hilft es ja.

Habe allerdings nie den Apache genutzt sondern nur 'nen Delphi-Indykomponenten-Eigenbau unter Windows.
  Mit Zitat antworten Zitat
lowmax_5

Registriert seit: 9. Mai 2003
Ort: Münster, NRW
257 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: isapi.dll auf Apache 2.4

  Alt 16. Nov 2018, 16:32
Zitat:
Stammt die ISAPI-DLL von Dir? Dann würde ich gleich ein Apache-Modul erzeugen und verwenden.
Ja dem ist so. Das wäre vermutlich der sinnvollste Weg dieses über ein Webmodule zu realisiern. Nur wie wird diese genau eingebunden? Ich habe in der Projektdatei Hinweise gefunden, aber mir ist nicht ganz klar, wie ich das erzeugte Linkmodul test.dll einbinden muss. Der Apache läuft unter Windows und die Module im Verzeichnis \module haben alle die Endung *.so. Kann ich da einfach die erzeugte test.dll hinzufügen?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: isapi.dll auf Apache 2.4

  Alt 16. Nov 2018, 16:39
Ja. Die Endung ist egal. Muss nur entsprechend in die Konfiguration eingetragen werden. (Hauptkonfig oder modulspezifische Konfigurationsdatei.
Markus Kinzler
  Mit Zitat antworten Zitat
lowmax_5

Registriert seit: 9. Mai 2003
Ort: Münster, NRW
257 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: isapi.dll auf Apache 2.4

  Alt 18. Nov 2018, 22:00
Funktioniert nun einwandfrei als Apache-Modul. Falls jmd. ein ähnliche Fragestellung hat hier die Lösung:

In Delphi: TestLinkModul.dll erstellen compilieren für x32/x64 je nach ApacheServer

Umbenennen in mod_TestLinkModul.dll und kopieren nach Apache24\modules\


Projektdatei prüfen:
exports
GModuleData name 'TestServer';

Merken: TestServer


Nun folgenen Eintrag in der httpd.conf durchführen:

Code:
LoadModule TestServer modules/mod_TestLinkModul.dll
sowie

Code:
<Location /testmod>
  SetHandler mod_TestLinkModul-handler
</Location>

Der Aufruf erfolgt nun mit

http://localhost/testmod
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz