有一批機器需要部署同樣的nginx,我想一次編譯後直接拷貝文件,但是拷貝之後提示某個依賴函式庫找不到。
有什麼辦法可以一次編譯放到每台機器都能運作?
習慣沉默2017-05-16 17:22:56
可以用ldd和lsof找出二進位檔案nginx依賴的共享函式庫,然後複製到nginx裡的一個目錄(比如/png/pack/libs
),然後用patchelf修改二進位檔案nginx的rpath和interpreter:
patchelf --set-rpath /png/pack/libs --force-rpath /png/nginx/1.8/sbin/nginx
patchelf --set-interpreter /png/pack/libs/ld-linux-x86-64.so.2 /png/nginx/1.8/sbin/nginx
然後打包目錄/png,部署到各個伺服器即可.具體參考我如何編譯打包的適用於64位Linux發行版的PHP7.