如何在不删除旧 nginx 文件/配置的情况下通过添加模块来更新 nginx?
我使用 apt-get install 安装了 nginx,我尝试通过从 nginx 站点下载 tar.gz 来安装,但没有任何效果。
我正在使用 debian 6.0.2 squeeze
我将非常感激您的建议。
此致
答案1
如果您需要新模块,则必须重新编译 nginx。如果您想从源代码安装它,则必须先删除 Debian 包。这里有一个简短的教程。我以 root 用户身份执行以下所有操作:
创建配置文件的备份:
mkdir ~/nginx-config-backup && cp -r /etc/nginx/* ~/nginx-config-backup
删除以前安装的 nginx:
apt-get remove nginx*
你需要这个来从源代码构建 nginx:
apt-get install build-essentials
放置源文件的目录:
cd /usr/local/src
获取 nginx 的最新开发版本:
wget http://nginx.org/download/nginx-1.3.9.tar.gz
tar -zxvf nginx-1.3.9.tar.gz
mv nginx-1.3.9 nginx
rm -f nginx-1.3.9.tar.gz
获取最新的 PCRE 版本:
cd ../../lib
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.31.tar.gz
tar -zxvf pcre-8.31.tar.gz
mv pcre-8.31 pcre
rm -f pcre-8.31.tar.gz
获取最新的 OpenSSL 版本:
wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz
tar -zxvf openssl-1.0.1c.tar.gz
mv openssl-1.0.1c openssl
rm -f openssl-1.0.1c.tar.gz
获取最新的 zlib 版本:
git clone git://github.com/madler/zlib.git
现在我下载两个 nginx 的示例模块:
cd ../includes
git clone git://github.com/masterzen/nginx-upload-progress-module.git
git clone git://github.com/gnosek/nginx-upstream-fair.git
回到 nginx;我们配置我们的安装并编译+安装它:
cd ../src/nginx
./configure
--prefix=/usr/local
--sbin-path=/usr/local/sbin
--conf-path=/etc/nginx/nginx.conf
--pid-path=/var/run/nginx.pid
--lock-path=/var/lock/nginx.lock
--error-log-path=/var/log/nginx/error.log
--http-log-path=/var/log/nginx/access.log
--user=nginx
--group=nginx
--with-debug
--with-file-aio
--with-http_gzip_static_module
--with-http_realip_module
--with-http_ssl_module
--with-md5=/usr/local/lib/openssl
--with-md5-asm
--with-openssl=/usr/local/lib/openssl
--with-sha1=/usr/local/lib/openssl
--with-sha1-asm
--with-pcre=/usr/local/lib/pcre
--with-pcre-jit
--with-zlib=/usr/local/lib/zlib
--without-http_browser_module
--without-http_geo_module
--without-http_limit_req_module
--without-http_limit_conn_module
--without-http_memcached_module
--without-http_referer_module
--without-http_split_clients_module
--without-http_ssi_module
--without-http_upstream_ip_hash_module
--without-http_userid_module
--without-http_uwsgi_module
--add-module=/usr/local/include/nginx-upload-progress-module
--add-module=/usr/local/include/nginx-upstream-fair
make
make install
不要忘记清理一切:
cd /usr/local
rm -rf
src/nginx
include/nginx-upload-progress-module
include/nginx-upstream-fair
lib/pcre
lib/zlib
lib/openssl
现在,您将在 处获得一个可以运行的 nginx 二进制文件/usr/sbin/nginx
。另外,请确保更新 nginx 的init
-script(在 处)。以下是我的个人-script /etc/init.d/nginx
(作为示例) :init