İsteğe bağlı Nginx modüllerini apt-get ile kurmak


37

Şu anda Nginx sitesindeki talimatları kullanarak Nginx'i yükledim:

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

Nginx'i yapılandırdım ve bir süredir harika çalışıyor. Şimdi, bazı özel modüller eklemek istiyorum - Yükleme İlerleme Modülü diyelim . Bu modül için talimatlar eklemek demek --add-module=path/to/nginx_uploadprogress_modulesizin için ./configurekomuta. Ancak, Nginx'i kaynaktan yüklemedim.

Bu durumu ele almanın en iyi yolu nedir? APT'ye kaynaktan derleme yapması ve seçenekleri geçmesi söylenebilir ./configuremi? Mevcut yüklemeyi derleyebilir miyim? Peki ya yollar - onları nasıl eşleştirebilirim? Yoksa APT tarafından yönetilen sürümü kaldırmalı ve baştan başlatmalı mıyım?


Gerekli modülü kullanarak aradınız mı apt-cache search?
Khaled

1
nginx solid, dinamik modülü desteklemiyor.
alvosu

Yanıtlar:


56

Dpkg-dev'ı kurun:

sudo apt-get install dpkg-dev

Depo ekle:

sudo add-apt-repository ppa:nginx/stable

Düzenle /etc/apt/sources.list.d/nginx-stable-lucid.list, dpkg-src ekle:

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

not: (önceki adım Ubuntu> = 12.04'te otomatik olarak gerçekleştirilmiş olabilir - lucidsürümünüzü yansıtacak şekilde değiştirdiğinizden emin olun )

Paket dizin dosyalarını yeniden senkronize edin:

sudo apt-get update

Kaynakları al:

apt-get source nginx

Bağımlılıklar oluşturun:

sudo apt-get build-dep nginx

Nginx-0.8.54 / debian / rules komutunu düzenleyin:

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

Paket oluştur:

cd nginx-0.8.54 && dpkg-buildpackage -b

Paketleri yükleyin:

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
Harika, ayrıntılı talimatlar. İse sonunda sudo dpkg --install nginx-full_0.8.54-4ppa4~lucid_i386.deb-ing, ben alıyorum nginx-full depends on nginx-common (= 0.8.54-4ppa4~lucid); however: Package nginx-common is not installed.Ancak sudo dpkg --install nginx-common_0.8.54-4ppa4~lucid_all.debveriyor 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. Bu sorunu çözmeyi nasıl önerirsiniz?
Michelle Tilley

Nginx paketini kaldır: apt-get
nginx'ü

1
Merhaba alvosu, bu hatayı alıyorum: dpkg-buildpackage: error: debian / rules build hata çıkış durumu 2 verdi. Herhangi bir fikir?
Xavi Colomer

4
@BrandonTilley, bu şekilde yüklerseniz, apt-get/ ile kaldırabilirsiniz dpkgve ayrıca yüklediğiniz diğer paketler bunun yüklü apt-getolduğunu bilecek nginxve yüklemenizi istemeyecektir. Doğrudan kaynaktan yüklediyseniz bunu alamazsınız.
Carlos Campderrós,

2
Bunun gibi bir hata varsa "dpkg-buildpackage: warning: .dsc ve .changes dosyası imzalanamadı" dpkg-buildpackage -uc -usyerine kullanın dpkg-buildpackage -b. Aksi takdirde, .deb dosyaları oluşturulmaz.
Roman Newaza


1

Ekstra / (üçüncü taraf modülü) eklemek istiyorsanız, Nginx'i kaynaktan kurmak gerekir. Kaynak aracılığıyla kurulursa Nginx bir servis olarak kullanılamaz ve logrotate Nginx için kurulum yapmaz. Üzerinden yüklediğiniz tüm işlevlerle kurulmasını sağlamak için bu yöntemi uygulayın.apt-get


0

Burada okunabilecek tatlı makale, modüllerin derlenmesiyle ilgili ayrıntılı bilgileri nginx'e açıklayacaktır. Temel olarak, her modül kurmak istediğinizde nginx'i yeniden derlemeniz gerekir.

Ayrıca bu yönteme benzer şekilde çalışacaktır.

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

 # Burada nginx'i / opt / nginx / altına yükleyeceğini varsayıyoruz.
 ./configure --prefix = / opt / nginx \
     --add modülü = / yol / / başlıkların-daha-nginx modülü
 Yapmak
 yükleme yap
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.