注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 服务器监控策略浅谈
 帮助

extmail/extman登录界面无法显示的故障解决


2008-06-18 22:23:50
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://coolerfeng.blog.51cto.com/133059/82839
今天在AS3上安装个extman,结果连首页都打不开,提示错误如下:
 
":flock" is not exported by the  Can't continue after import errors at /usr/local/apache2/htdocs/extman/libs/Ext/Utils.pm line 15 BEGIN failed--compilation aborted at  

/usr/local/apache2/htdocs/extman/libs/Ext/Utils.pm line 15. Compilation failed in require at /usr/local/apache2/htdocs/extman/libs/Ext/CGI.pm line 18. BEGIN failed--compilation  

aborted at /usr/local/apache2/htdocs/extman/libs/Ext/CGI.pm line 18. Compilation failed in require at /usr/local/apache2/htdocs/extman/libs/Ext/MgrApp.pm line 22. BEGIN failed-

-compilation aborted at /usr/local/apache2/htdocs/extman/libs/Ext/MgrApp.pm line 22. Compilation failed in require at /usr/local/apache2/htdocs/extman/libs/Ext/MgrApp/Login.pm  

line 19. BEGIN failed--compilation aborted at /usr/local/apache2/htdocs/extman/libs/Ext/MgrApp/Login.pm line 19. Compilation failed in require at  

/usr/local/apache2/htdocs/extman/cgi/index.cgi line 19.

网上搜了一下,有同样的问题,却没有人解答。自己看了看程序里面的代码
/usr/local/apache2/htdocs/extman/libs/Ext/Utils.pm line 15
这里的内容是use Fcntl qw(SEEK_CUR :flock);
查了一下,这个函数是perl的文件锁功能。但是我之前在redhat AS4和AS5的机器上都没有遇到此问题,猜想可能是perl的版本低,与extman的程序中存在不兼容的情况。于是升级perl
系统中自带的perl是5.8.0的。为了安全起见。自己源码安装一个新的perl
./Configure -des -Dprefix=/usr/local/perl  
make && make install
安装好后运行
/usr/local/bin/perl -V
来看看,确认版本是否正确。
[@131.163 httpd-2.2.8]# /usr/local/bin/perl -V
Summary of my perl5 (revision 5 version 10 subversion 0) configuration:
  Platform:
安装好后需要安装DBI,DBD等perl模块,可以用在线安装的方法。
/usr/local/bin/perl -MCPAN -eshell

然后在cpan>>提示符下输入install DBI即可安装DBI模块,安装其他模块也类似,需要注意的是某些模块的名称是DBD::mysql这样的格式,不要忘记中间的两个冒号
安装DBD::mysql的时候需要mysql的库文件和头文件,对于rpm包的mysql可以安装mysql-devel来解决
如果mysql是源码安装的,需要手动指定库文件的路径。这时用在线安装的方法无法成功。只能退出后手动安装。
wget http://search.cpan.org/CPAN/authors/id/C/CA/CAPTTOFU/DBD-mysql-4.007.tar.gz
tar zxvf DBD-mysql-4.007.tar.gz
cd DBD-mysql-4.007
usr/local/bin/perl Makefile.PL \
--cflags=-I/usr/local/mysql/include/mysql \
--libs="-L/usr/local/mysql/lib/mysql -lmysqlclient -lz" \
--mysql_config=/usr/local/mysql/bin/mysql_config
make
make install
 
 
这里有3个参数来指定mysql的头文件,库函数文件,以及配置文件的位置。
安装完成后用/usr/local/bin/perdoc -l DBD::mysql看看是否正确安装了
apache以前编译的时候没有打开suexec功能。在编译的时候在configure后面加上--enable-suexec参数,可以打开suexec功能。但是我不想重新编译
那么可以用模块的形式来增加这个功能。
首先是找到原来编译apache的源码目录,如果没有了,可以重新下载一个相同版本的apache的源码解压缩开
先进行清理
make distclean

然后找一下mod_suexec.c的目录
find . -name "mod_suexec.c"
./modules/generators/mod_suexec.c


切换到mod_suexec.c的目录中执行:
cd ./modules/generators/mod_suexec.c
/usr/local/apache2/bin/apxs -c mod_suexec.c
/usr/local/apache2/bin/apxs -i -a -n suexec ./.libs/mod_suexec.so
退回到apache2的源码目录中执行:
#./configure --enable-suexec --with-suexec-caller=daemon

注。这里不要忘记了--with-suexec-caller=daemon,否则到后面你又要重新来过
#make suexec

#make install-suexec
此时mod_suexec.so就已经生成并且被安装到apache的modules目录下了,并且httpd.conf中也自动添加了
LoadModule suexec_module              modules/mod_suexec.so
检查一下上述改动是否已经成功
[@131.163 httpd-2.2.8]# ls /usr/local/apache2/modules/ -l
total 36
-rw-r--r--    1 root     root         8998 Jun 18 17:35 httpd.exp
-rwxr-xr-x    1 root     root        22509 Jun 18 17:38 mod_suexec.so

如果没有mod_suexec.so,则需要手动从源码目录中将它复制过去,如果源码目录中没有,则要检查上面的编译过程中是否正确。
[@131.163 httpd-2.2.8]# grep "mod_suexec.so" /usr/local/apache2/conf/httpd.conf
LoadModule suexec_module      modules/mod_suexec.so
如果没有这一行则手动添加到httpd.conf中
重启apache就可以启用suexec了! 这里建议用apachectl stop;apachectl start而不是apachectl restart的方法,后者有可能导致apache无法正常启动
前面perl的新版本安装好了。那么如何让它发挥作用呢,方法很多了,有人喜欢把/usr/bin/perl删除,然后做一个/usr/local/bin/perl->/usr/bin/perl的软链接
但是我是在生产环境上,为了不干扰原来的程序。就辛苦一下吧。进入到extman的cgi目录下,打开出现文章开头错误提示的cgi文件,如index.cgi
修改第一行
#!/usr/bin/perl
这里就是定义的perl的解释器。把这个改成我们自己编译的perl的版本#!/usr/local/bin/perl
然后再次刷新页面。终于可以成功显示出extman的界面了。(眼泪哗哗的)
对于其他报错的页面都可以同样的办法。如果要看extman的图形日志还需要安装rrdtool。

本文出自 “风吹云动” 博客,请务必保留此出处http://coolerfeng.blog.51cto.com/133059/82839





    文章评论
 
2008-06-19 11:02:04
恩不错 值得注意 连登陆页面都打不开确实郁闷

2008-06-19 12:10:30
先保留了,等以后学到再慢慢明白吧!

2008-06-22 17:06:26
句号,LINUX的东西还是有点晕呼~

 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: