天天看點

linux伺服器nginx更新報錯解決

公司有幾台點播伺服器,用的是nginx+nginx_mod_h264_streaming子產品,由于安裝的時間不同,是以幾台伺服器上的nginx版本都不相同,早起裝的是nginx1.0.5版本。而目前nginx都已經更新到mainline1.5.3版本,stable版本也更新到了1.4.3版本了。主要還是更新太快了,仔細考慮下,決定把使用的版本更新到1.3.3版。

準備工作需要确認伺服器系統版本,由于目前linux作業系統 的版本也比較多,而且分為x86 x64版,對于nginx需要的環境支援檔案也不盡相同。

首先nginx -V 确認下原來安裝時執行的configure指令

執行後會顯示目前nginx伺服器版本及./configure時添加的configure arguments.

穩妥起見把原來的nginx主檔案先備份下 mv nginx  nginx.bak

詳細的重新編譯步驟就不在詳述了,一般套路 ./configure --prefix=/usr/local/nginx  --等等根據自己要求來添加  後面make完成  cp objs/nginx /usr/local/nginx/sbin/

執行/usr/local/nginx/sbin/nginx -V 看下是否正确 正常情況下到這裡基本就完成了。

筆者在執行更新過程中遇到幾個問題,今天着重說下遇到的問題。

重新編譯過程中configure參數有改動使的目前環境不支援,缺少庫檔案的安裝包

正常完成編譯

/usr/local/nginx/sbin/nginx -V 報錯

/usr/local/nginx/sbin/nginx: error while loading shared libraries: libssl.so.6: cannot open shared object file: No such file or directory

啟動過程中找不到某個library 從錯誤看出是缺少lib檔案導緻,進一步檢視

# ldd $(which /usr/local/nginx/sbin/nginx)

       linux-vdso.so.1 =>  (0x00007fffb79ff000)

        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f5a10ea3000)

        libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f5a10c6c000)

        libssl.so.6 => not found

        libdl.so.2 => /lib64/libdl.so.2 (0x00007f5a10a67000)

        libc.so.6 => /lib64/libc.so.6 (0x00007f5a106d3000)

        /lib64/ld-linux-x86-64.so.2 (0x00007f5a110d3000)

        libfreebl3.so => /lib64/libfreebl3.so (0x00007f5a10471000)

可看到 libssl.so.6  有個檔案未能找到 需要安裝openssl098e-0.9.8e-17.el6.centos.2.x86_64包,或者可以從别的伺服器上拷出方至/lib或者/lib64下。

完成後再次

/usr/local/nginx/sbin/nginx -t

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

ok了。

繼續閱讀