Instalando módulos Nginx opcionais com o apt-get

37

Atualmente, tenho o Nginx instalado através das instruções no site do Nginx:

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

Eu configurei o Nginx e ele está funcionando muito bem há um tempo. Agora, quero adicionar alguns módulos personalizados - por exemplo, o Upload Progress Module . As instruções para este módulo dizem para adicionar --add-module=path/to/nginx_uploadprogress_moduleao seu ./configurecomando. No entanto, não instalei o Nginx a partir da fonte.

Qual é a melhor maneira de lidar com essa situação? É possível dizer ao APT para compilar a partir da fonte e passar as opções para ./configure? Posso compilar sobre a instalação existente? E os caminhos - como os faço corresponder? Ou tenho que remover a versão gerenciada do APT e começar de novo?

Michelle Tilley
fonte
Você procurou o módulo necessário usando apt-cache search?
Khaled
11
Nginx sólido, ele não suporta módulo dinâmico.
alvosu

Respostas:

56

Instale o dpkg-dev:

sudo apt-get install dpkg-dev

Adicionar repositório:

sudo add-apt-repository ppa:nginx/stable

Edite /etc/apt/sources.list.d/nginx-stable-lucid.list, adicione dpkg-src:

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

note: (a etapa anterior pode já ter sido executada automaticamente no Ubuntu> = 12.04 - certifique-se de mudar lucidpara refletir sua versão)

Sincronize novamente os arquivos de índice do pacote:

sudo apt-get update

Obter fontes:

apt-get source nginx

Construir dependências:

sudo apt-get build-dep nginx

Edite nginx-0.8.54 / debian / rules:

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

Pacote de compilação:

cd nginx-0.8.54 && dpkg-buildpackage -b

Instale pacotes:

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
fonte
11
Instruções maravilhosas e detalhadas. No final, enquanto sudo dpkg --install nginx-full_0.8.54-4ppa4~lucid_i386.debeu estou recebendo nginx-full depends on nginx-common (= 0.8.54-4ppa4~lucid); however: Package nginx-common is not installed., no entanto, sudo dpkg --install nginx-common_0.8.54-4ppa4~lucid_all.debestá dando 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. Como você recomendaria resolver esse problema?
precisa saber é o seguinte
Remover pacote nginx: apt-get remove nginx
alvosu
11
Oi alvosu, estou recebendo este erro: dpkg-buildpackage: error: debian / rules build deu status de saída de erro 2. Alguma idéia?
Xavi Colomer
4
@BrandonTilley, se você o instalar dessa maneira, poderá desinstalá-lo via apt-get/ dpkge também outros pacotes que você instalar via apt-getsaberão que nginxestá instalado e não solicitarão que você o instale. Se você o instalou diretamente da fonte, não o conseguirá.
Carlos Campderrós
2
Se você tiver um erro como este "dpkg-buildpackage: warning: Falha ao assinar o arquivo .dsc e .changes", use em dpkg-buildpackage -uc -usvez de dpkg-buildpackage -b. Caso contrário, os arquivos .deb não serão criados.
Roman Newaza 28/03
28

Desde o squeeze no Debian e o oneric no Ubuntu, existem alguns (como headers-more-moduleeu precisava) em

apt-get install nginx-extras
Victor Sergienko
fonte
3
O Dotdeb fornece um ótimo pacote nginx-extras: dotdeb.org/instructions
Bergius
Para a versão nginx-plus, o apt-get install nginx-extras também funciona muito bem! Graças
scaryguy
1

A instalação do Nginx a partir da fonte é necessária se você deseja adicionar / (módulo de terceiros) extra. Se instalado via fonte, o Nginx não pode ser usado como serviço e o logrotate não é configurado para o Nginx. Siga este método para instalá-lo com todas as funcionalidades que você obtém da instalação viaapt-get

Rohini Choudhary
fonte
0

Um doce artigo que pode ser lido aqui explicará as informações detalhadas sobre a compilação de módulos no nginx. Basicamente, você precisa recompilar o nginx sempre que quiser instalar um módulo.

Também semelhante a este método também funcionará.

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

 # Aqui assumimos que você instalaria o nginx em / opt / nginx /.
 ./configure --prefix = / opt / nginx \
     --add-module = / caminho / para / cabeçalhos-mais-nginx-module
 faço
 faça instalar
ElvinD
fonte