/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
make && make install
Summary of my perl5 (revision 5 version 10 subversion 0) configuration:
Platform:
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
安裝完成後用/usr/local/bin/perdoc -l DBD::mysql看看是否正確安裝了
那麼可以用模組的形式來增加這個功能。
首先是找到原來編譯apache的原始碼目錄,如果沒有了,可以重新下載一個相同版本的apache的原始碼解壓縮開
先進行清理
./modules/generators/mod_suexec.c
切換到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
#make install-suexec
LoadModule suexec_module modules/mod_suexec.so
檢查一下上述改動是否已經成功
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
LoadModule suexec_module modules/mod_suexec.so
修改第一行
#!/usr/bin/perl
這裡就是定義的perl的直譯器。把這個改成我們自己編譯的perl的版本#!/usr/local/bin/perl
然後再次重新整理頁面。終於可以成功顯示出extman的介面了。(眼淚嘩嘩的)