【发布时间】:2015-05-02 05:48:44
【问题描述】:
我在 Delphi 7 中创建了一个 Apache 2.2.21 模块 (DSO) 并更改了 httpd.conf 文件,但是当我重新启动我的 Apache 时,它会引发“无法加载到服务器。找不到指定的模块”错误。我仔细检查了我的模块(.so 文件)是否在 apache 模块文件夹中。这是我的电脑的详细信息:
- 操作系统:Windows 7 64 位
- Apache:2.2.21 (Win32) mod_ssl/2.2.21 OpenSSL/0.9.8r
- 德尔福 7 32 位
我还根据 leonardo 的博客为 Delphi 7 的 Apache 2.2.x 版本兼容性更改转换了我的 httpd2.pas 副本,但仍然遇到同样的问题。
这里是代码和配置文件:
- httpd2.pas:
完整的文件可以在这里找到 (https://github.com/stijnsanders/xxm/blob/master/Delphi/apache/HTTPD2.pas)
- 我的模块的 httpd.conf 条目:
LoadModule myapachews_module modules/mod_myapachews.so
<Location /rktest>
SetHandler mod_myapachews-handler
</Location>
- myapache_ws.dpr:
library myapachews;
uses
WebBroker,
ApacheTwoApp,
mMain in 'mMain.pas' {WebModule1: TWebModule};
{$R *.res}
{$E so}
{$LIBPREFIX 'mod_'}
exports
apache_module name 'myapachews_module';
begin
Application.Initialize;
Application.CreateForm(TWebModule1, WebModule1);
Application.Run;
end.
- mMain.pas:
unit mMain;
interface
uses
SysUtils, Classes, HTTPApp;
type
TWebModule1 = class(TWebModule)
procedure WebModule1WebActionItem1Action(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
WebModule1: TWebModule1;
implementation
{$R *.dfm}
procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
Response.Content := '<H1>Hello World</H1>';
end;
end.
- mMain.dfm:
object WebModule1: TWebModule1
OldCreateOrder = False
Actions = <
item
Name = 'WebActionItem1'
OnAction = WebModule1WebActionItem1Action
end>
Left = 343
Top = 116
Height = 292
Width = 374
end
任何帮助或信息将不胜感激。
提前致谢, 拉文德
【问题讨论】: