有一批機(jī)器需要部署同樣的nginx,我想一次編譯後直接拷貝文件,但是拷貝之後提示某個(gè)依賴函式庫找不到。
有什麼辦法可以一次編譯放到每臺(tái)機(jī)器都能運(yùn)作?
光陰似箭催人老,日月如移越少年。
可以用ldd和lsof找出二進(jìn)位檔案nginx依賴的共享函式庫,然後複製到nginx裡的一個(gè)目錄(比如/png/pack/libs
),然後用patchelf修改二進(jìn)位檔案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,部署到各個(gè)伺服器即可.具體參考我如何編譯打包的適用於64位Linux發(fā)行版的PHP7.