CentOS6.0虛擬機上安裝nginx啓動的錯誤---缺少libpcre.so.1共享庫

虛擬機操作系統爲CentOS6.0 32位,安裝,配置Nginx1.2.0完畢後,

用命令:/usr/local/nginx/sbin/nginx

啓動nginx時,服務無法啓動,出現libpcre.so.1 not found的錯誤,解決方法如下:

先執行下述命令,查看共享庫的信息

#ldd  /usr/local/nginx/sbin/nginx

顯示如下:

        linux-gate.so.1 =>  (0x009a9000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00e13000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x0027e000)
        libpcre.so.1 => not found
        libcrypto.so.10 => /usr/lib/libcrypto.so.10 (0x002ae000)
        libz.so.1 => /lib/libz.so.1 (0x00d54000)
        libc.so.6 => /lib/libc.so.6 (0x005e9000)
        /lib/ld-linux.so.2 (0x00583000)
        libfreebl3.so => /lib/libfreebl3.so (0x00110000)
        libdl.so.2 => /lib/libdl.so.2 (0x008e9000)

執行如下:

 #cd /lib

因爲事先已經安裝過pcre8.3,所以納悶爲何找不到庫。查看庫的位置:

#ll libpcre*

lrwxrwxrwx. 1 root root     16 Apr 27 18:42 /lib/libpcre.so.0 -> libpcre.so.0.0.1
-rwxr-xr-x. 1 root root 190732 Aug 19  2010 /lib/libpcre.so.0.0.1

pcre庫存在,只是名字不是libpcre.so.1,而是libpcre.so.0。嘗試建立一個新的鏈接,解決這個問題:

 #ln -s libpcre.so.0.0.1 libpcre.so.1

再次查看一下:

 #ldd  /usr/local/nginx/sbin/nginx

顯示已經ok了:

        linux-gate.so.1 =>  (0x009a9000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00e13000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x0027e000)
        libpcre.so.1 => /lib/libpcre.so.1 (0x005b9000)
        libcrypto.so.10 => /usr/lib/libcrypto.so.10 (0x002ae000)
        libz.so.1 => /lib/libz.so.1 (0x00d54000)
        libc.so.6 => /lib/libc.so.6 (0x005e9000)
        /lib/ld-linux.so.2 (0x00583000)
        libfreebl3.so => /lib/libfreebl3.so (0x00110000)
        libdl.so.2 => /lib/libdl.so.2 (0x008e9000)

重新啓動Nginx:

/usr/local/nginx/sbin/nginx -s reload

啓動成功!首頁出來了,後續的tomcat動態內容頁成功出現。

如果使用CentOS6+ 64位版本,模塊所在路徑是/lib64而不是/lib。

涉及到Linux系統下模塊的依賴關係,這種方法雖然解決了問題,不知道有什麼副作用沒有,網上的一般資料裏也沒有深入提到這些依賴關係。下載安裝pcre時,也只是下了個最新穩定版本8.3。


發佈了67 篇原創文章 · 獲贊 26 · 訪問量 27萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章