【问题标题】:Recompiling nginx after using apt-get install nginx使用 apt-get install nginx 后重新编译 nginx
【发布时间】:2012-03-21 04:48:00
【问题描述】:

我最初是通过 apt-get install 安装 nginx。它工作得很好。现在,我想安装一些 3rd 方模块,我必须重新编译 nginx。所以我尝试重新编译。它经历了这些动作,然后我意识到我的原始版本仍然是正在使用的版本。

我是否需要先卸载我的 nginx 原始副本才能正确安装另一个?

我的安装标志: --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx.pid --lock- path=/var/lock/nginx.lock --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/body -- http-proxy-temp-path=/var/lib/nginx/proxy --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --with-debug --with-http_stub_status_module --with-http_flv_module - -with-http_ssl_module --with-http_dav_module --with-http_gzip_static_module --with-http_realip_module --with-mail --with-mail_ssl_module --with-ipv6 --add-module=/usr/src/gnosek-nginx-upstream -fair-5f6a3b7 --add-module=/usr/src/mod_strip

【问题讨论】:

    标签: nginx installation apt-get


    【解决方案1】:

    您不需要先卸载 apt-get 版本,但这是一个好主意,这样您就不会在将来无意中使用“apt-get update”或类似的系统更新来检查您的自定义重新编译。

    您的重新编译可能无法正常工作有几个原因。安装程序是否具有覆盖现有文件的正确权限? .configure 是否将编译后的二进制文件放在与 apt-get 相同的位置? (--sbin-path=/where-you-want-it-installed on .configure, if not /sbin/nginx) 重新编译时 nginx 是否正在运行?安装程序可能无法覆盖打开的文件。 (你已经重新启动了 nginx,对吗?)也许还有别的东西,但这就是我开始寻找的地方。

    【讨论】:

    • 我当时肯定在运行 nginx。我已经重新启动了好几次。我实际上不确定 apt-get 的 sbin-path 是什么,我该如何检查?如何授予安装程序权限?
    • 您可以使用 'whereis nginx' 来查找当前二进制文件所在的位置(但可能是 /sbin/nginx,除非发生了变化)。安装程序的权限取决于哪个用户正在运行构建以及谁拥有已安装的二进制文件。如果两者相同,那应该没关系。在大多数情况下,使用 sudo 就足够了。
    • 啊,它确实位于/usr/sbin/nginx。我也是root。
    • (对,对不起。/usr/sbin/nginx - 我的小疏忽。这应该仍然是默认路径。)检查 /etc/init.d/nginx 中的 initscript 并确保DAEMON 和/或 PATH 没有使用一些奇怪的替代路径或文件名。除非构建或安装悄然失败,否则对我来说没有太多其他事情有意义。
    • 确实如此。非常感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2017-07-22
    • 2012-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-23
    • 2015-06-11
    • 1970-01-01
    相关资源
    最近更新 更多