Linux
在 CentOS 6.3 上啟動 apache 的問題
我有一些交給我的盒子,我什至無法啟動基本的 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 或濫用第三方儲存庫之前,似乎誰管理了這個系統。與嘗試清理系統相比,您可能花費更少的時間重新安裝系統。