2013-10-31 107 views
0

嗯,我在重新啓動Apache服務器時遇到了一些問題。我修改了服務器上的ulimit,但我無法重新啓動httpd; 我在CentOS 5.8 x64上運行服務器。從httpd的-V輸出:重新啓動Apache服務器的問題

Server version: Apache/2.2.3 
Server built: Jan 10 2013 08:19:28 
Server's Module Magic Number: 20051115:3 
Server loaded: APR 1.2.7, APR-Util 1.2.7 
Compiled using: APR 1.2.7, APR-Util 1.2.7 
Architecture: 64-bit 

運行/sbin/service httpd restart時(我不打算打印輸出館),我得到的錯誤:

Syntax error on line 210 of /etc/httpd/conf/httpd.conf: 
Syntax error on line 6 of /etc/httpd/conf.d/php.conf: 
Cannot load /etc/httpd/modules/libphp5.so into server: libidn.so.11: 
wrong ELF class: ELFCLASS32 

我GOOGLE了這個錯誤,並試圖挖掘問題。我發現libphp5.so是64位架構,而libidn.so.11是32位。通常,據我所知,在64位架構上使用32位程序應該沒有問題,但在這種情況下,在64位程序中使用32位庫(****請參閱此related question **) 。

我試圖安裝64位版本的庫,但是我能找到的是我的O.S.(centOS 5.8)的libidn_x86_64版本,它又是32位版本。

程序安裝在服務器上:

squid - Proxy 
ffmpeg - for video streaming 
csf-lfd -> firewall 
Apache 

上找到問題的任何幫助表示讚賞!

+0

Cent Os 5.8太老你不能將它更新到6.4 ?.在進行任何更改之前,請始終備份conf文件。 –

回答

1

由於version of libidn in CentOS 5.1是一樣的,可以在5.9(實際上是相同的文件),它可能是一個安全的賭注,它將安裝在5.8

能找到,我的OS版本(CentOS 5.8)是libidn_x86_64版本,它又是32位版本。

沒有,顧名思義它是64位版本 - 如果它包含一個32位的目標文件,然後出了一些方法錯了 - 而且考慮的CentOS的廣泛應用和所需的各種說的libidn事情,我敢肯定現在有人會注意到如果rpm包含錯誤的文件。

你可能想花一些時間思考你的服務器如何進入這種狀態。不應該有可能通過正確的依賴來安裝/升級來自Centos respoules的PHP(除非你迫使它忽略它們)。

+0

謝謝你花時間回答我的問題。我試圖用'yum remove libidn'卸載libidn。在這個命令後,它詢問我是否可以使用它的依賴項來移除libidn。其實我發現奇怪的是,它將刪除libidn i386和libidn x86_64(均具有版本0.6.5-1.1)。可以卸載軟件包,然後通過rpm手動安裝x86_64嗎?謝謝 – eAbi

+1

這不應該是必要的 - 或者以前的安裝被破壞(在這種情況下,只需重新安裝x86_64軟件包)或者你的ld配置被破壞。 – symcbean

+0

是的,它做到了!我花大廳一天的時間來修復這個問題,並且'yum重新安裝libidn'只是做了它......無論如何,謝謝! – eAbi

相關問題