Linux

在 CentOS 6.3 上啟動 apache 的問題

  • September 6, 2014

我有一些交給我的盒子,我什至無法啟動基本的 apache 伺服器。它是通過 yum 安裝的(我已經解除安裝並安裝了它),當我啟動服務(服務 httpd 啟動)時,它說“OK”,但沒有 pid。狀態顯示未執行。

在 error_log 中有以下內容:

[Wed Feb 13 16:16:36 2013] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Wed Feb 13 16:16:36 2013] [notice] Digest: generating secret for digest authentication ...
[Wed Feb 13 16:16:36 2013] [notice] Digest: done
/usr/sbin/httpd: symbol lookup error: /usr/lib64/libaprutil-1.so.0: undefined symbol: apr_os_uuid_get

我認為它沒有開始,因為最後一行。建議?

ldd $(which httpd)
   linux-vdso.so.1 =>  (0x00007fff9edff000)
   libm.so.6 => /lib64/libm.so.6 (0x00007f4c8815c000)
   libpcre.so.0 => /lib64/libpcre.so.0 (0x00007f4c87f30000)
   libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f4c87d10000)
   libaprutil-1.so.0 => /usr/lib64/libaprutil-1.so.0 (0x00007f4c87aec000)
   libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f4c878b5000)
   libexpat.so.1 => /lib64/libexpat.so.1 (0x00007f4c8768c000)
   libdb-4.7.so => /lib64/libdb-4.7.so (0x00007f4c87318000)
   libapr-1.so.0 => /usr/lib64/libapr-1.so.0 (0x00007f4c870e9000)
   libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f4c86ecb000)
   libc.so.6 => /lib64/libc.so.6 (0x00007f4c86b38000)
   libdl.so.2 => /lib64/libdl.so.2 (0x00007f4c86934000)
   /lib64/ld-linux-x86-64.so.2 (0x000000369be00000)
   libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f4c8672f000)
   libfreebl3.so => /lib64/libfreebl3.so (0x00007f4c864cd000)
   librt.so.1 => /lib64/librt.so.1 (0x00007f4c862c5000)

查看 ldd 資訊後,您的 httpd 二進製文件似乎是針對目前安裝的不同庫編譯的。我會在安全的情況下清除盡可能多的 apache 依賴項並重新安裝它們。不過,在您這樣做之前,我還會檢查您是否安裝了任何非標準的 yum 儲存庫。某些第三方 yum 儲存庫以引發一些看起來與此類似的可怕衝突而聞名。

對於初學者:

yum remove apr-devel apr-util-devel httpd

不幸的是,即使這確實解決了問題,您也可能已經陷入系統不兼容的困境。在您從原始碼編譯東西、安裝不兼容的 RPM 或濫用第三方儲存庫之前,似乎誰管理了這個系統。與嘗試清理系統相比,您可能花費更少的時間重新安裝系統。

引用自:https://serverfault.com/questions/478556