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 http://localhost:80/isapi/isapi.dll erhalte ich jedoch nur:
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 http://localhost/testmod |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:47 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