Installazione di moduli Nginx opzionali con apt-get


38

Al momento ho Nginx installato tramite le istruzioni sul sito Nginx:

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

Ho configurato Nginx e funziona alla grande da un po '. Ora, voglio aggiungere alcuni moduli personalizzati, ad esempio il modulo di avanzamento del caricamento . Le istruzioni per questo modulo dicono di aggiungere --add-module=path/to/nginx_uploadprogress_moduleal tuo ./configurecomando. Tuttavia, non ho installato Nginx dalla fonte.

Qual è il modo migliore per gestire questa situazione? È possibile dire ad APT di compilare da sorgente e passare le opzioni a ./configure? Posso compilare sull'installazione esistente? Che dire dei percorsi: come posso farli corrispondere? O devo rimuovere la versione gestita APT e ricominciare da capo?


Hai cercato il modulo necessario utilizzando apt-cache search?
Khaled,

1
nginx solido, non supporta il modulo dinamico.
alvosu,

Risposte:


56

Installa dpkg-dev:

sudo apt-get install dpkg-dev

Aggiungi repository:

sudo add-apt-repository ppa:nginx/stable

Modifica /etc/apt/sources.list.d/nginx-stable-lucid.list, aggiungi dpkg-src:

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

nota: (il passaggio precedente potrebbe essere già stato eseguito automaticamente su Ubuntu> = 12.04 - assicurati anche di cambiare lucidper riflettere la tua versione)

Risincronizza i file di indice del pacchetto:

sudo apt-get update

Ottieni fonti:

apt-get source nginx

Costruisci dipendenze:

sudo apt-get build-dep nginx

Modifica nginx-0.8.54 / debian / regole:

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

Pacchetto di costruzione:

cd nginx-0.8.54 && dpkg-buildpackage -b

Installa i pacchetti:

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

sudo dpkg --install nginx-full_1.2.4-2ubuntu0ppa1~precise_amd64.deb

1
Istruzioni meravigliose e dettagliate. Alla fine, mentre sudo dpkg --install nginx-full_0.8.54-4ppa4~lucid_i386.debsto ricevendo nginx-full depends on nginx-common (= 0.8.54-4ppa4~lucid); however: Package nginx-common is not installed., però, sudo dpkg --install nginx-common_0.8.54-4ppa4~lucid_all.debsta 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. Come consiglieresti di risolvere questo problema?
Michelle Tilley,

Rimuovi il pacchetto nginx: apt-get remove nginx
alvosu

1
Ciao alvosu, visualizzo questo errore: dpkg-buildpackage: errore: debian / rules build ha dato lo stato di uscita dell'errore 2. Qualche idea?
Xavi Colomer,

4
@BrandonTilley se lo installi in questo modo, puoi disinstallarlo tramite apt-get/ dpkg, e anche altri pacchetti che installerai apt-getsapranno che nginxè installato e non ti chiederanno di installarlo. Se lo hai installato direttamente dal sorgente non otterrai questo.
Carlos Campderrós,

2
Se si verifica un errore del tipo "dpkg-buildpackage: avviso: impossibile firmare .dsc e .changes file", utilizzare dpkg-buildpackage -uc -usinvece di dpkg-buildpackage -b. Altrimenti, i file .deb non verranno creati.
Roman Newaza,


1

L'installazione di Nginx dal sorgente è necessaria se si desidera aggiungere extra / (modulo di terze parti) ad esso. Se installato tramite sorgente, Nginx non può essere utilizzato come servizio e logrotate non viene configurato per Nginx. Seguire questo metodo per installarlo con tutte le funzionalità ottenute dall'installazione tramiteapt-get


0

Il dolce articolo che può essere letto qui spiegherà le informazioni dettagliate sulla compilazione dei moduli in nginx. Fondamentalmente è necessario ricompilare nginx ogni volta che si desidera installare un modulo.

Anche simile a questo metodo funzionerà.

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

 # Qui assumiamo che tu voglia installare nginx in / opt / nginx /.
 ./configure --prefix = / opt / nginx \
     --add-module = / path / to / header-più-nginx-modulo
 rendere
 fare l'installazione
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.