Heim > Fragen und Antworten > Hauptteil
Es gibt eine Reihe von Maschinen, die dasselbe Nginx bereitstellen müssen. Ich möchte die Dateien direkt nach dem Kompilieren kopieren, aber nach dem Kopieren wird angezeigt, dass eine bestimmte abhängige Bibliothek nicht gefunden werden kann.
Gibt es eine Möglichkeit, es einmal zu kompilieren und auf jedem Computer laufen zu lassen?
習慣沉默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.