![]() |
isapi.dll auf Apache 2.4
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 ![]()
Code:
In der httpd.conf habe ich folgende Eintragungen gemacht:
Not Found
The requested URL /isapi/isapi.dll was not found on this server.
Code:
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!
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> |
AW: isapi.dll auf Apache 2.4
Bin nun weiter gekommen: Mit folgendem Einträgen ist ein Zugriff möglich:
Code:
Wenn die Isapi jedoch intern einen DB-Zugriff auslöst erhalte ich folgende Meldung:
<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>
Code:
Habe etwas gefunden, dass Apache mit ThreadPooling nicht klar kommt und daher die Unit Web.Win.ISAPIThreadPool entfernt. Das Ergebnis ist leider das Gleiche...
AH02115: HSE_STATUS_ERROR result from HttpExtensionProc(): D:/Apache/isapi/isapi.dll
|
AW: isapi.dll auf Apache 2.4
Stammt die ISAPI-DLL von Dir? Dann würde ich gleich ein Apache-Modul erzeugen und verwenden.
|
AW: isapi.dll auf Apache 2.4
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:
Am Ende der WebSQLSearchUnit1 steht:
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.
Delphi-Quellcode:
Keine Ahnung, ob das heute auch noch so sein muss, aber eventuell hilft es ja.
initialization
// Das wird für ADO dringend benötigt. CoInitialize(nil); finalization CoUninitialize; end. Habe allerdings nie den Apache genutzt sondern nur 'nen Delphi-Indykomponenten-Eigenbau unter Windows. |
AW: isapi.dll auf Apache 2.4
Zitat:
|
AW: isapi.dll auf Apache 2.4
Ja. Die Endung ist egal. Muss nur entsprechend in die Konfiguration eingetragen werden. (Hauptkonfig oder modulspezifische Konfigurationsdatei.
|
AW: isapi.dll auf Apache 2.4
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:
sowie
LoadModule TestServer modules/mod_TestLinkModul.dll
Code:
<Location /testmod>
SetHandler mod_TestLinkModul-handler </Location> Der Aufruf erfolgt nun mit ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz