Installation optionaler Nginx-Module mit apt-get


37

Ich habe Nginx derzeit über die Anweisungen auf der Nginx-Site installiert:

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

Ich habe Nginx konfiguriert und es läuft seit einiger Zeit großartig. Jetzt möchte ich einige benutzerdefinierte Module hinzufügen, z. B. das Upload-Fortschrittsmodul . In den Anweisungen für dieses Modul wird angegeben, dass --add-module=path/to/nginx_uploadprogress_moduleder ./configureBefehl hinzugefügt werden soll . Ich habe Nginx jedoch nicht von der Quelle installiert.

Was ist der beste Weg, um mit dieser Situation umzugehen? Ist es möglich, APT anzuweisen, aus der Quelle zu kompilieren und Optionen an zu übergeben ./configure? Kann ich über die bestehende Installation kompilieren? Was ist mit Pfaden - wie stelle ich sie zusammen? Oder muss ich die von APT verwaltete Version entfernen und neu beginnen?


Haben Sie nach dem benötigten Modul gesucht apt-cache search?
Khaled

1
Nginx Solid, es unterstützt kein dynamisches Modul.
Alvosu

Antworten:


56

Installieren Sie dpkg-dev:

sudo apt-get install dpkg-dev

Repository hinzufügen:

sudo add-apt-repository ppa:nginx/stable

Bearbeiten /etc/apt/sources.list.d/nginx-stable-lucid.list, dpkg-src hinzufügen:

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

Hinweis: (Der vorherige Schritt wurde möglicherweise bereits automatisch unter Ubuntu> = 12.04 ausgeführt. Stellen Sie außerdem sicher, dass Sie Änderungen vornehmen, lucidum Ihre Version widerzuspiegeln.)

Synchronisieren Sie die Paketindexdateien neu:

sudo apt-get update

Quellen abrufen:

apt-get source nginx

Abhängigkeiten aufbauen:

sudo apt-get build-dep nginx

Editiere nginx-0.8.54 / debian / rules:

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

Paket erstellen:

cd nginx-0.8.54 && dpkg-buildpackage -b

Pakete installieren:

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
Wunderbare, detaillierte Anleitung. Am Ende, während sudo dpkg --install nginx-full_0.8.54-4ppa4~lucid_i386.debich empfange 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.debgebe ich jedoch 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. Wie würden Sie die Lösung dieses Problems empfehlen?
Michelle Tilley

Entfernen Sie das nginx-Paket: apt-get remove nginx
alvosu

1
Hallo Alvosu, ich erhalte den folgenden Fehler: dpkg-buildpackage: Fehler: debian / rules build gab Fehler Exit-Status 2. Irgendeine Idee?
Xavi Colomer

4
@BrandonTilley Wenn Sie es auf diese Weise installieren, können Sie es über apt-get/ deinstallieren dpkg, und auch andere Pakete, die Sie über installieren apt-get, wissen, dass sie nginxinstalliert sind, und werden Sie nicht zur Installation auffordern. Wenn Sie es direkt von der Quelle installiert haben, erhalten Sie es nicht.
Carlos Campderrós

2
Wenn Sie den Fehler "dpkg-buildpackage: warning: Fehler beim Signieren der .dsc- und .changes-Datei" haben, verwenden Sie dpkg-buildpackage -uc -usanstelle von dpkg-buildpackage -b. Andernfalls werden keine .deb-Dateien erstellt.
Roman Newaza


1

Die Installation von Nginx aus dem Quellcode ist erforderlich, wenn Sie zusätzliches / (Drittanbieter-Modul) hinzufügen möchten. Wenn Nginx über die Quelle installiert wird, kann es nicht als Dienst verwendet werden, und logrotate wird nicht für Nginx eingerichtet. Befolgen Sie diese Methode , um es mit allen Funktionen zu installieren, die Sie durch die Installation über erhaltenapt-get


0

Süße Artikel , die gelesen werden können , hier werden die detaillierten Informationen zum Kompilieren Module in nginx erklären. Grundsätzlich müssen Sie den nginx jedes Mal neu kompilieren, wenn Sie ein Modul installieren möchten.

Auch ähnlich wie diese Methode wird auch funktionieren.

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

 # Hier nehmen wir an, dass Sie nginx unter / opt / nginx / installieren würden.
 ./configure --prefix = / opt / nginx \
     --add-module = / path / to / headers-more-nginx-module
 machen
 machen installieren
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.