歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> CentOS6.0虛擬機上安裝nginx啟動的錯誤---缺少libpcre.so.1共享庫

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

日期:2017/2/28 15:51:40   编辑:Linux教程

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

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

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

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

#ldd which /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

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

#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時,也只是下了個最新穩定版本。

Copyright © Linux教程網 All Rights Reserved