Установка дополнительных модулей Nginx с помощью apt-get

38

В настоящее время у меня установлен Nginx с помощью инструкций на сайте Nginx:

nginx=stable
sudo su -
add-apt-repository ppa:nginx/$nginx
apt-get update 
apt-get install

Я настроил Nginx, и он некоторое время работал отлично. Теперь я хочу добавить несколько пользовательских модулей - скажем, модуль Upload Upload Progress . В инструкциях к этому модулю сказано добавить --add-module=path/to/nginx_uploadprogress_moduleк вашей ./configureкоманде. Однако я не установил Nginx из исходного кода.

Каков наилучший способ справиться с этой ситуацией? Можно ли сказать, что APT компилируется из исходного кода и передает параметры ./configure? Могу ли я скомпилировать поверх существующей установки? Как насчет путей - как мне сделать их совпадающими? Или я должен удалить управляемую версию APT и начать все сначала?

Мишель Тилли
источник
Вы искали нужный модуль, используя apt-cache search?
Халед
1
Nginx твердый, он не поддерживает динамический модуль.
Alvosu

Ответы:

56

Установите dpkg-dev:

sudo apt-get install dpkg-dev

Добавить репозиторий:

sudo add-apt-repository ppa:nginx/stable

Отредактируйте /etc/apt/sources.list.d/nginx-stable-lucid.list, добавьте dpkg-src:

deb http://ppa.launchpad.net/nginx/stable/ubuntu lucid main
deb-src http://ppa.launchpad.net/nginx/stable/ubuntu lucid main

примечание: (предыдущий шаг, возможно, уже был автоматически выполнен в Ubuntu> = 12.04 - также убедитесь, что вы изменили его, lucidчтобы отразить вашу версию)

Повторно синхронизируйте файлы индекса пакета:

sudo apt-get update

Получить источники:

apt-get source nginx

Построить зависимости:

sudo apt-get build-dep nginx

Отредактируйте nginx-0.8.54 / debian / rules:

config.status.full: config.env.full config.sub config.guess
...
--add-module=path/to/nginx_uploadprogress_module

Сборка пакета:

cd nginx-0.8.54 && dpkg-buildpackage -b

Установить пакеты:

sudo dpkg --install nginx-common_1.2.4-2ubuntu0ppa1~precise_all.deb

sudo dpkg --install nginx-full_1.2.4-2ubuntu0ppa1~precise_amd64.deb
alvosu
источник
1
Замечательные, подробные инструкции. В конце, пока- sudo dpkg --install nginx-full_0.8.54-4ppa4~lucid_i386.debя, я получаю, nginx-full depends on nginx-common (= 0.8.54-4ppa4~lucid); however: Package nginx-common is not installed.однако, sudo dpkg --install nginx-common_0.8.54-4ppa4~lucid_all.debдает dpkg: error processing nginx-common_0.8.54-4ppa4~lucid_all.deb (--install): trying to overwrite '/usr/share/nginx/www/50x.html', which is also in package nginx 0:0.8.54-4ppa2~lucid. Как бы вы порекомендовали решить эту проблему?
Мишель Тилли
Удалить пакет nginx: apt-get удалить nginx
alvosu
1
Привет alvosu, я получаю эту ошибку: dpkg-buildpackage: ошибка: сборка debian / rules выдает ошибку выхода из состояния 2. Есть идеи?
Хави Коломер
4
@BrandonTilley, если вы установите его таким образом, вы можете удалить его через apt-get/ dpkg, а также другие пакеты, которые вы устанавливаете через apt-get, узнают, что nginxустановлено, и не будут просить вас установить его. Если вы установили его прямо из источника, вы не получите это.
Карлос Кампдеррос
2
Если у вас есть такая ошибка, как «dpkg-buildpackage: warning: не удалось подписать файл .dsc и .changes», используйте dpkg-buildpackage -uc -usвместо dpkg-buildpackage -b. В противном случае файлы .deb не будут созданы.
Роман Ньюаза
1

Установка Nginx из исходного кода необходима, если вы хотите добавить в него дополнительный / (сторонний модуль). При установке через исходный код Nginx не может использоваться в качестве службы, а logrotate не получает настройки для Nginx. Следуйте этому методу, чтобы установить его со всеми функциями, которые вы получаете при установке черезapt-get

Рохини Чоудхари
источник
0

Приятная статья, которую можно прочитать здесь , объяснит подробную информацию о компиляции модулей в nginx. В основном вам нужно перекомпилировать nginx каждый раз, когда вы хотите установить модуль.

Также похож на этот метод и будет работать.

 wget 'http://nginx.org/download/nginx-1.9.3.tar.gz'
 tar -xzvf nginx-1.9.3.tar.gz
 cd nginx-1.9.3 /

 # Здесь мы предполагаем, что вы установите nginx в / opt / nginx /.
 ./configure --prefix = / opt / nginx \
     --add-модуль = / путь / к / заголовкам-более-Nginx-модуль
 сделать
 сделать установку
ElvinD
источник