Как обновить nginx с добавлением модуля без удаления старых файлов / конфигураций nginx?
Я установил nginx с помощью apt-get install, я попытался установить, загрузив tar.gz с сайта nginx, но это не дало никакого эффекта.
Я использую debian 6.0.2 squeeze
Буду признателен за совет.
Наилучшие пожелания
Если вам нужны новые модули, вам придется перекомпилировать 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
. Также не забудьте обновить init
-скрипт (при /etc/init.d/nginx
) для nginx. Вот, например, мой личный init
-скрипт: