Search This Blog

Wednesday, November 15, 2006

apache2

信息系统的课设打算做成c/s的,于是先在自己机器上配了一下apache2,以前没配过,没经验,遇到以下问题:
mod_perl起不来,报错如下:
* Apache2 has detected a syntax error in your configuration files:
Syntax error on line 3 of /etc/apache2/modules.d/75_mod_perl.conf:
Cannot load /usr/lib64/apache2/modules/mod_perl.so into server: /usr/lib64/apache2/modules/mod_perl.so: undefined symbol: Perl_Ipatchlevel_ptr
google出来有三种说法,第一种说httpd.conf里有mod_perl的相关语句,应该去掉
第二种说系统里有不止一个版本的perl,并且/usr/lib下有libperl.so
前两种是扯淡,而且占据了90%的搜索结果,可见大家抄来抄去的风气达到了什么程度
我的httpd.conf里没有跟mod_perl有关的任何东西,我的系统也只装了一个版本的perl,5.8.8的
第三种说法是libperl需要加上ithreads的支持,这是正解
事实上我的libperl应该是有ithreads的,但是由于一开始我猜测可能就是ithreads的问题,所以把它去掉后重新emerge了
后来把ithreads加上,并且把perl和libperl都重新emerge了,apache终于顺利启动了。
然后试了两个默认的cgi脚本,都执行失败了,其实应该把/cgi-bin目录的权限设置好,默认是644,没有可执行的权限,755就好了,再低的还没试。
还有一个很恐怖的问题:nm说libc.so.6和libperl.so.1都是no symbols,太恐怖了!
但是readelf -sd是可以显示的,什么问题?who knows?tell me please.

1 comment:

fanmmm said...

可以直接上,不用骗电脑啦