Windows + GTK2 + Perl + Apache,遇到Can't load Glib.dll错误
各位大侠:
小弟是perl菜鸟,近来在window xp下用gtk2+perl画了个界面,在本地可以运行成功。
我装gtk2用的是camel box,安装路径是C:\camelbox,
Perl用的版本是5.10,安装路径是C:\Perl
然后我想用Apache建一个服务器端,让客户端可以通过ip来访问执行我写的这个小程序,名字是test.cgi,插一句,不知为什么我不管怎么修改Apache的配置文件httpd.conf,都无法从客户端执行test.pl,而改为test.cgi就可以运行了
环境变量设置如下:
PERL5LIB C:\camelbox\site\lib
PATH C:\camelbox\bin;C:\camelbox\site\lib\auto\Glib
Path c:\perl\site\bin;c:\perl\bin;C:\Perl\site\bin;C:\Perl\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Windows Imaging\;C:\PROGRA~1\JnDTech\CVD\bin;C:\Dev-Cpp\MinGW32\bin;C:\camelbox\site\lib
我遇到的问题是:
从客户端访问Apache服务器,类似这样:http://XXX.XXX.XXX.XXX/cgi-bin/test.cgi,会遇到ternal Server Error错误。在Apache的error.log中会有这样的log:
Can't load 'C:\\camelbox\\site\\lib/auto/Glib/Glib.dll' for module Glib: load_file:\xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3 at C:/Perl/lib/DynaLoader.pm line 201.\r
at C:/Apache2.2/cgi-bin/test.cgi line 11\r
Compilation failed in require at C:/Apache2.2/cgi-bin/test.cgi line 11.\r
BEGIN failed--compilation aborted at C:/Apache2.2/cgi-bin/test.cgi line 11.\r
我在网上查到这样的解答:
如果提示不能导入 Glib.dll,请确认 Gtk 运行环境的 bin 目录是系统环境变量 PATH 中,没有的话要加到这个环境变量中
我尝试的方法为:
1.确认服务器端的环境变量已经正确设置;
2.client端的环境变量设置为和服务器端一样;
3.在test.cgi中加入
BEGIN {
unshift(@INC, "C:\\camelbox\\site\\lib");
}
BEGIN {
unshift(@INC, "C:\\camelbox\\site\\lib\\auto\\Glib");
}
use lib "C:/camelbox/site/lib"
4.修改服务器端的C:/camelbox目录权限为完全控制
沮丧地发现以上方法都不行都不行,恳请各位大侠指点一二,小弟在此跪谢了!
PS,这种使用Apache架设服务器端,在服务器端生成界面,真的可以传到客户端吗?会不会从理论上就是不可行的?